# PHTTPSpace Class Reference

This class describes a name space that a Universal Resource Locator operates in. More...

`#include <http.h>`

Inheritance diagram for PHTTPSpace:

List of all members.

## Public Types

| ErrorOnExist
| Generate error if resource already exists.
| Overwrite
| Overwrite the existing resource at URL location.
enum | AddOptions { ErrorOnExist, Overwrite }

## Public Member Functions

| PHTTPSpace ()
| Constructor for HTTP URL Name Space.
PBoolean | AddResource (PHTTPResource *resource, AddOptions overwrite=ErrorOnExist)
| Add a new resource to the URL space.
PBoolean | DelResource (const PURL &url)
| Delete an existing resource to the URL space.
PHTTPResource * | FindResource (const PURL &url)
| Locate the resource specified by the URL in the URL name space.
void | StartRead () const
| This function attempts to acquire the mutex for reading.
void | EndRead () const
| This function attempts to release the mutex for reading.
void | StartWrite () const
| This function attempts to acquire the mutex for writing.
void | EndWrite () const
| This function attempts to release the mutex for writing.

## Protected Member Functions

| PSORTED_LIST (ChildList, Node)

## Protected Attributes

PReadWriteMutex * | mutex
PHTTPSpace::Node * | root

## Classes

class | Node

## Detailed Description

This class describes a name space that a Universal Resource Locator operates in.

Each section of the hierarchy field of the URL points to a leg in the tree specified by this class.

## Member Enumeration Documentation

enum PHTTPSpace::AddOptions

Enumerator:

  ErrorOnExist | Generate error if resource already exists.
  Overwrite | Overwrite the existing resource at URL location.

## Constructor & Destructor Documentation

PHTTPSpace::PHTTPSpace | ( |  | ) |

Constructor for HTTP URL Name Space.

## Member Function Documentation

PBoolean PHTTPSpace::AddResource | ( | PHTTPResource * | resource,
|  | AddOptions | overwrite = `ErrorOnExist` |
| ) |  |  |

Add a new resource to the URL space.

If there is already a resource at the location in the tree, or that location in the tree is already in the path to another resource then the function will fail.

The `overwrite` flag can be used to replace an existing resource. The function will still fail if the resource is on a partial path to another resource but not if it is a leaf node.

Returns:
  true if resource added, false if failed.

Parameters:

  resource | Resource to add to the name space.
  overwrite | Flag to overwrite an existing resource if it already exists.

PBoolean PHTTPSpace::DelResource | ( | const PURL & | url | ) |

Delete an existing resource to the URL space.

If there is not a resource at the location in the tree, or that location in the tree is in the path to another resource then the function will fail.

Returns:
  true if resource deleted, false if failed.

Parameters:

  url | URL to search for in the name space.

void PHTTPSpace::EndRead | ( |  | ) | const`[inline]`

This function attempts to release the mutex for reading.

void PHTTPSpace::EndWrite | ( |  | ) | const`[inline]`

This function attempts to release the mutex for writing.

PHTTPResource* PHTTPSpace::FindResource | ( | const PURL & | url | ) |

Locate the resource specified by the URL in the URL name space.

Returns:
  The resource found or NULL if no resource at that position in hiearchy.

Parameters:

  url | URL to search for in the name space.

PHTTPSpace::PSORTED_LIST | ( | ChildList | ,
|  | Node |  |
| ) |  |  | `[protected]`

void PHTTPSpace::StartRead | ( |  | ) | const`[inline]`

This function attempts to acquire the mutex for reading.

void PHTTPSpace::StartWrite | ( |  | ) | const`[inline]`

This function attempts to acquire the mutex for writing.

## Member Data Documentation

PReadWriteMutex* PHTTPSpace::mutex `[protected]`

PHTTPSpace::Node * PHTTPSpace::root `[protected]`

The documentation for this class was generated from the following file:

- http.h