PHTTPDirectory Class Reference

#include <http.h>

Inheritance diagram for PHTTPDirectory:

PHTTPFile PHTTPResource PObject PServiceHTTPDirectory List of all members.

Public Member Functions

 PHTTPDirectory (const PURL &url, const PDirectory &dir)
 PHTTPDirectory (const PURL &url, const PDirectory &dir, const PHTTPAuthority &auth)
virtual PHTTPRequestCreateRequest (const PURL &url, const PMIMEInfo &inMIME, const PMultipartFormInfoArray &multipartFormInfo, PHTTPServer &socket)
virtual PBoolean LoadHeaders (PHTTPRequest &request)
virtual PString LoadText (PHTTPRequest &request)
void EnableAuthorisation (const PString &realm)
void AllowDirectories (PBoolean enable=PTrue)

Protected Member Functions

PBoolean CheckAuthority (PHTTPServer &server, const PHTTPRequest &request, const PHTTPConnectionInfo &conInfo)
PBoolean FindAuthorisations (const PDirectory &dir, PString &realm, PStringToString &authorisations)

Protected Attributes

PDirectory basePath
PString authorisationRealm
PBoolean allowDirectoryListing

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:
dir  Name of the resource in URL space. Location of file in file system.

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

Parameters:
dir  Name of the resource in URL space.
auth  Location of file in file system. Authorisation for the resource.


Member Function Documentation

virtual PHTTPRequest* PHTTPDirectory::CreateRequest ( const PURL url,
const PMIMEInfo inMIME,
const PMultipartFormInfoArray &  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.

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:
PTrue if all OK, PFalse 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.

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.

void PHTTPDirectory::AllowDirectories ( PBoolean  enable = PTrue  ) 

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.

PBoolean PHTTPDirectory::FindAuthorisations ( const PDirectory dir,
PString realm,
PStringToString authorisations 
) [protected]


Member Data Documentation

PDirectory PHTTPDirectory::basePath [protected]

PString PHTTPDirectory::authorisationRealm [protected]

PBoolean PHTTPDirectory::allowDirectoryListing [protected]


The documentation for this class was generated from the following file:
Generated on Mon Dec 10 11:18:59 2007 for PTLib by  doxygen 1.5.1