All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PHTTPDirectory Class Reference

This object describes a HyperText Transport Protocol resource which is a set of files in a directory. More...

`#include <http.h>`

Inheritance diagram for PHTTPDirectory:

## Public Member Functions

| PHTTPDirectory (const PURL &url, const PDirectory &dir)
| PHTTPDirectory (const PURL &url, const PDirectory &dir, const PHTTPAuthority &auth)
virtual PHTTPRequest * | CreateRequest (const PURL &url, const PMIMEInfo &inMIME, const PMultiPartList &multipartFormInfo, PHTTPServer &socket)
| Create a new request block for this type of resource. More...
virtual PBoolean | LoadHeaders (PHTTPRequest &request)
| Get the headers for block of data (eg HTML) that the resource contains. More...
virtual PString | LoadText (PHTTPRequest &request)
| Get a block of text data (eg HTML) that the resource contains. More...
void | EnableAuthorisation (const PString &realm)
| Enable or disable access control using .access files. More...
void | AllowDirectories (PBoolean enable=true)
| Enable or disable directory listings when a default directory file does not exist. More...
Public Member Functions inherited from PHTTPFile
| PHTTPFile (const PString &filename)
| Contruct a new simple file resource for the HTTP space. More...
| PHTTPFile (const PString &filename, const PHTTPAuthority &auth)
| PHTTPFile (const PURL &url, const PFilePath &file)
| PHTTPFile (const PURL &url, const PFilePath &file, const PString &contentType)
| PHTTPFile (const PURL &url, const PFilePath &file, const PHTTPAuthority &auth)
| PHTTPFile (const PURL &url, const PFilePath &file, const PString &contentType, const PHTTPAuthority &auth)
virtual PBoolean | LoadData (PHTTPRequest &request, PCharArray &data)
| Get a block of data that the resource contains. More...
Public Member Functions inherited from PHTTPResource
virtual | ~PHTTPResource ()
const PURL & | GetURL () const
| Get the URL for this resource. More...
const PString & | GetContentType () const
| Get the current content type for the resource. More...
PHTTPAuthority * | GetAuthority () const
| Get the current authority for the resource. More...
void | SetAuthority (const PHTTPAuthority &auth)
| Set the current authority for the resource. More...
void | ClearAuthority ()
| Set the current authority for the resource to unrestricted. More...
DWORD | GetHitCount () const
| Get the current hit count for the resource. More...
void | ClearHitCount ()
virtual PBoolean | OnGET (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PHTTPConnectionInfo &conInfo)
| Handle the GET command passed from the HTTP socket. More...
virtual PBoolean | OnGETData (PHTTPServer &server, const PURL &url, const PHTTPConnectionInfo &connectInfo, PHTTPRequest &request)
| Send the data associated with a GET command. More...
virtual PBoolean | OnHEAD (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PHTTPConnectionInfo &conInfo)
| Handle the HEAD command passed from the HTTP socket. More...
virtual PBoolean | OnPOST (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PStringToString &data, const PHTTPConnectionInfo &conInfo)
| Handle the POST command passed from the HTTP socket. More...
virtual PBoolean | OnPOSTData (PHTTPRequest &request, const PStringToString &data)
| Send the data associated with a POST command. More...
virtual PBoolean | IsModifiedSince (const PTime &when)
| Check to see if the resource has been modified since the date specified. More...
virtual PBoolean | GetExpirationDate (PTime &when)
| Get a block of data (eg HTML) that the resource contains. More...
virtual void | SendData (PHTTPRequest &request)
| Send the data associated with a command. More...
virtual void | OnLoadedText (PHTTPRequest &request, PString &text)
| This is called after the text has been loaded and may be used to customise or otherwise mangle a loaded piece of text. More...
virtual PBoolean | Post (PHTTPRequest &request, const PStringToString &data, PHTML &replyMessage)
| Get a block of data (eg HTML) that the resource contains. More...
Public Member Functions inherited from PObject
virtual | ~PObject ()
virtual PObject * | Clone () const
| Create a copy of the class on the heap. More...
virtual PINDEX | HashFunction () const
| This function yields a hash value required by the `PDictionary` class. More...
virtual Comparison | Compare (const PObject &obj) const
| Compare the two objects and return their relative rank. More...
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const
| Determine the byte wise comparison of two objects. More...
bool | operator== (const PObject &obj) const
| Compare the two objects. More...
bool | operator!= (const PObject &obj) const
| Compare the two objects. More...
bool | operator< (const PObject &obj) const
| Compare the two objects. More...
bool | operator> (const PObject &obj) const
| Compare the two objects. More...
bool | operator<= (const PObject &obj) const
| Compare the two objects. More...
bool | operator>= (const PObject &obj) const
| Compare the two objects. More...
virtual const char * | GetClass (unsigned ancestor=0) const
| Get the current dynamic type of the object instance. More...
PBoolean | IsClass (const char *cls) const
virtual PBoolean | InternalIsDescendant (const char *clsName) const
| Determine if the dynamic type of the current instance is a descendent of the specified class. More...
virtual void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream. More...
virtual void | ReadFrom (istream &strm)
| Input the contents of the object from the stream. More...

## Protected Member Functions

PBoolean | CheckAuthority (PHTTPServer &server, const PHTTPRequest &request, const PHTTPConnectionInfo &conInfo)
| See if the resource is authorised given the mime info. More...
PBoolean | FindAuthorisations (const PDirectory &dir, PString &realm, PStringToString &authorisations)
Protected Member Functions inherited from PHTTPFile
| PHTTPFile (const PURL &url, int dummy)
Protected Member Functions inherited from PHTTPResource
| PHTTPResource (const PURL &url)
| PHTTPResource (const PURL &url, const PHTTPAuthority &auth)
| PHTTPResource (const PURL &url, const PString &contentType)
| PHTTPResource (const PURL &url, const PString &contentType, const PHTTPAuthority &auth)
virtual PBoolean | OnGETOrHEAD (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PHTTPConnectionInfo &conInfo, PBoolean isGet)
| common code for GET and HEAD commands More...
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...

## Protected Attributes

PDirectory | basePath
PString | authorisationRealm
PBoolean | allowDirectoryListing
Protected Attributes inherited from PHTTPFile
PFilePath | filePath
Protected Attributes inherited from PHTTPResource
PURL | baseURL
| Base URL for the resource, may accept URLS with a longer hierarchy. More...
PString | contentType
| MIME content type for the resource. More...
PHTTPAuthority * | authority
| Authorisation method for the resource. More...
volatile DWORD | hitCount
| COunt of number of times resource was accessed. More...

## Additional Inherited Members

Public Types inherited from PObject
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
| Result of the comparison operation performed by the `Compare()` function. More...
Static Public Member Functions inherited from PObject
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
| Internal function caled from CompareObjectMemoryDirect() More...
static const char * | Class ()
| Get the name of the class as a C string. More...
Static Protected Member Functions inherited from PHTTPResource
static PBoolean | CheckAuthority (PHTTPAuthority &authority, PHTTPServer &server, const PHTTPRequest &request, const PHTTPConnectionInfo &connectInfo)

## Detailed Description

This object describes a HyperText Transport Protocol resource which is a set of files in a directory.

The directory can be anywhere in the file system and is mapped to the specified URL location in the HTTP name space defined by the `PHTTPSpace` class.

All subdirectories and files are available as URL names in the HTTP name space. This effectively grafts a file system directory tree onto the URL name space tree.

See the `PMIMEInfo` class for more information on the mappings between file types and MIME types.

## Constructor & Destructor Documentation

PHTTPDirectory::PHTTPDirectory | ( | const PURL & | url,
|  | const PDirectory & | dir
| ) |  |

Parameters

  url | Name of the resource in URL space.
  dir | Location of file in file system.

PHTTPDirectory::PHTTPDirectory | ( | const PURL & | url,
|  | const PDirectory & | dir,
|  | const PHTTPAuthority & | auth
| ) |  |

Parameters

  url | Name of the resource in URL space.
  dir | Location of file in file system.
  auth | Authorisation for the resource.

## Member Function Documentation

void PHTTPDirectory::AllowDirectories | ( | PBoolean | enable = `true` | ) |

Enable or disable directory listings when a default directory file does not exist.

PBoolean PHTTPDirectory::CheckAuthority | ( | PHTTPServer & | server,
|  | const PHTTPRequest & | request,
|  | const PHTTPConnectionInfo & | conInfo
| ) |  |

protected virtual

See if the resource is authorised given the mime info.

Reimplemented from PHTTPResource.

virtual PHTTPRequest* PHTTPDirectory::CreateRequest | ( | const PURL & | url,
|  | const PMIMEInfo & | inMIME,
|  | const PMultiPartList & | multipartFormInfo,
|  | PHTTPServer & | socket
| ) |  |

virtual

Create a new request block for this type of resource.

Returns
  Pointer to instance of PHTTPRequest descendant class.

Reimplemented from PHTTPFile.

void PHTTPDirectory::EnableAuthorisation | ( | const PString & | realm | ) |

Enable or disable access control using .access files.

A directory tree containing a _access file will require authorisation to allow access. This file has contains one or more lines, each containing a username and password seperated by a ":" character.

The parameter sets the realm used for authorisation requests. An empty realm disables auhtorisation.

PBoolean PHTTPDirectory::FindAuthorisations | ( | const PDirectory & | dir,
|  | PString & | realm,
|  | PStringToString & | authorisations
| ) |  |

protected

virtual PBoolean PHTTPDirectory::LoadHeaders | ( | PHTTPRequest & | request | ) |

virtual

Get the headers for block of data (eg HTML) that the resource contains.

This will fill in all the fields of the `outMIME` parameter required by the resource and return the status for the load.

Returns
  true if all OK, false if an error occurred.

Parameters

  request | Information on this request.

Reimplemented from PHTTPFile.

virtual PString PHTTPDirectory::LoadText | ( | PHTTPRequest & | request | ) |

virtual

Get a block of text data (eg HTML) that the resource contains.

The default behaviour is to assert, one of `LoadText()` or `LoadData()` functions must be overridden for correct operation.

Returns
  String for loaded text.

Parameters

  request | Information on this request.

Reimplemented from PHTTPFile.

## Member Data Documentation

PBoolean PHTTPDirectory::allowDirectoryListing

protected

PString PHTTPDirectory::authorisationRealm

protected

PDirectory PHTTPDirectory::basePath

protected

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

- http.h