PHTTPResource Class Reference

#include <http.h>

Inheritance diagram for PHTTPResource:

PObject PHTTPFile PHTTPString PXMLRPCServerResource PHTTPDirectory PHTTPTailFile PServiceHTTPFile PHTTPConfigSectionList PHTTPForm PServiceHTTPString PServiceHTTPDirectory PConfigSectionsPage PHTTPConfig PConfigPage PRegisterPage List of all members.

Public Member Functions

virtual ~PHTTPResource ()
const PURLGetURL () const
const PStringGetContentType () const
PHTTPAuthorityGetAuthority () const
void SetAuthority (const PHTTPAuthority &auth)
void ClearAuthority ()
DWORD GetHitCount () const
void ClearHitCount ()
virtual PBoolean OnGET (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PHTTPConnectionInfo &conInfo)
virtual PBoolean OnGETData (PHTTPServer &server, const PURL &url, const PHTTPConnectionInfo &connectInfo, PHTTPRequest &request)
virtual PBoolean OnHEAD (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PHTTPConnectionInfo &conInfo)
virtual PBoolean OnPOST (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PStringToString &data, const PHTTPConnectionInfo &conInfo)
virtual PBoolean OnPOSTData (PHTTPRequest &request, const PStringToString &data)
virtual PBoolean IsModifiedSince (const PTime &when)
virtual PBoolean GetExpirationDate (PTime &when)
virtual PHTTPRequestCreateRequest (const PURL &url, const PMIMEInfo &inMIME, const PMultipartFormInfoArray &multipartFormInfo, PHTTPServer &socket)
virtual PBoolean LoadHeaders (PHTTPRequest &request)=0
virtual void SendData (PHTTPRequest &request)
virtual PBoolean LoadData (PHTTPRequest &request, PCharArray &data)
virtual PString LoadText (PHTTPRequest &request)
virtual void OnLoadedText (PHTTPRequest &request, PString &text)
virtual PBoolean Post (PHTTPRequest &request, const PStringToString &data, PHTML &replyMessage)

Protected Member Functions

 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 CheckAuthority (PHTTPServer &server, const PHTTPRequest &request, const PHTTPConnectionInfo &conInfo)
virtual PBoolean OnGETOrHEAD (PHTTPServer &server, const PURL &url, const PMIMEInfo &info, const PHTTPConnectionInfo &conInfo, PBoolean IsGet)

Static Protected Member Functions

static PBoolean CheckAuthority (PHTTPAuthority &authority, PHTTPServer &server, const PHTTPRequest &request, const PHTTPConnectionInfo &connectInfo)

Protected Attributes

PURL baseURL
 Base URL for the resource, may accept URLS with a longer hierarchy.
PString contentType
 MIME content type for the resource.
PHTTPAuthorityauthority
 Authorisation method for the resource.
volatile DWORD hitCount
 COunt of number of times resource was accessed.

Detailed Description

This object describes a HyperText Transport Protocol resource. A tree of these resources are available to the PHTTPSocket# class.


Constructor & Destructor Documentation

PHTTPResource::PHTTPResource ( const PURL url  )  [protected]

Parameters:
url  Name of the resource in URL space.

PHTTPResource::PHTTPResource ( const PURL url,
const PHTTPAuthority auth 
) [protected]

Parameters:
url  Name of the resource in URL space.
auth  Authorisation for the resource.

PHTTPResource::PHTTPResource ( const PURL url,
const PString contentType 
) [protected]

Parameters:
url  Name of the resource in URL space.
contentType  MIME content type for the resource.

PHTTPResource::PHTTPResource ( const PURL url,
const PString contentType,
const PHTTPAuthority auth 
) [protected]

Parameters:
url  Name of the resource in URL space.
contentType  MIME content type for the resource.
auth  Authorisation for the resource.

virtual PHTTPResource::~PHTTPResource (  )  [virtual]


Member Function Documentation

const PURL& PHTTPResource::GetURL (  )  const [inline]

Get the URL for this resource.

Returns:
The URL for this resource.

const PString& PHTTPResource::GetContentType (  )  const [inline]

Get the current content type for the resource.

Returns:
string for the current MIME content type.

PHTTPAuthority* PHTTPResource::GetAuthority (  )  const [inline]

Get the current authority for the resource.

Returns:
Pointer to authority or NULL if unrestricted.

void PHTTPResource::SetAuthority ( const PHTTPAuthority auth  ) 

Set the current authority for the resource.

Parameters:
auth  authority to set

void PHTTPResource::ClearAuthority (  ) 

Set the current authority for the resource to unrestricted.

DWORD PHTTPResource::GetHitCount (  )  const [inline]

Get the current hit count for the resource. This is the total number of times the resource was asked for by a remote client.

Returns:
Hit count for the resource.

void PHTTPResource::ClearHitCount (  )  [inline]

virtual PBoolean PHTTPResource::OnGET ( PHTTPServer server,
const PURL url,
const PMIMEInfo info,
const PHTTPConnectionInfo conInfo 
) [virtual]

Handle the GET command passed from the HTTP socket.

The default action is to check the authorisation for the resource and call the virtuals LoadHeaders()# and OnGETData()# to get a resource to be sent to the socket.

Returns:
PTrue if the connection may persist, PFalse if the connection must close. If there is no ContentLength field in the response, this value must be PFalse for correct operation.
Parameters:
server  HTTP server that received the request
url  Universal Resource Locator for document.
info  Extra MIME information in command.
conInfo  HTTP connection information

virtual PBoolean PHTTPResource::OnGETData ( PHTTPServer server,
const PURL url,
const PHTTPConnectionInfo connectInfo,
PHTTPRequest request 
) [virtual]

Send the data associated with a GET command.

The default action calls SendData()#.

Returns:
PTrue if the connection may persist, PFalse if the connection must close. If there is no ContentLength field in the response, this value must be PFalse for correct operation.
Parameters:
server  HTTP server that received the request
url  Universal Resource Locator for document
connectInfo  HTTP connection information
request  request state information

virtual PBoolean PHTTPResource::OnHEAD ( PHTTPServer server,
const PURL url,
const PMIMEInfo info,
const PHTTPConnectionInfo conInfo 
) [virtual]

Handle the HEAD command passed from the HTTP socket.

The default action is to check the authorisation for the resource and call the virtual LoadHeaders()# to get the header information to be sent to the socket.

Returns:
PTrue if the connection may persist, PFalse if the connection must close If there is no ContentLength field in the response, this value must be PFalse for correct operation.
Parameters:
server  HTTP server that received the request
url  Universal Resource Locator for document.
info  Extra MIME information in command.
conInfo  HTTP connection information

virtual PBoolean PHTTPResource::OnPOST ( PHTTPServer server,
const PURL url,
const PMIMEInfo info,
const PStringToString data,
const PHTTPConnectionInfo conInfo 
) [virtual]

Handle the POST command passed from the HTTP socket.

The default action is to check the authorisation for the resource and call the virtual Post()# function to handle the data being received.

Returns:
PTrue if the connection may persist, PFalse if the connection must close If there is no ContentLength field in the response, this value must be PFalse for correct operation.
Parameters:
server  HTTP server that received the request
url  Universal Resource Locator for document.
info  Extra MIME information in command.
data  Variables in the POST data.
conInfo  HTTP connection information

Reimplemented in PConfigPage, and PConfigSectionsPage.

virtual PBoolean PHTTPResource::OnPOSTData ( PHTTPRequest request,
const PStringToString data 
) [virtual]

Send the data associated with a POST command.

The default action calls Post()#.

Returns:
PTrue if the connection may persist, PFalse if the connection must close. If there is no ContentLength field in the response, this value must be PFalse for correct operation.
Parameters:
request  request information
data  Variables in the POST data.

Reimplemented in PXMLRPCServerResource.

virtual PBoolean PHTTPResource::IsModifiedSince ( const PTime when  )  [virtual]

Check to see if the resource has been modified since the date specified.

Returns:
PTrue if has been modified since.
Parameters:
when  Time to see if modified later than

virtual PBoolean PHTTPResource::GetExpirationDate ( PTime when  )  [virtual]

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

Returns:
Status of load operation.
Parameters:
when  Time that the resource expires

Reimplemented in PConfigPage, PConfigSectionsPage, PServiceHTTPString, PServiceHTTPFile, and PServiceHTTPDirectory.

virtual PHTTPRequest* PHTTPResource::CreateRequest ( const PURL url,
const PMIMEInfo inMIME,
const PMultipartFormInfoArray &  multipartFormInfo,
PHTTPServer socket 
) [virtual]

Create a new request block for this type of resource.

The default behaviour is to create a new PHTTPRequest instance.

Returns:
Pointer to instance of PHTTPRequest descendant class.
Parameters:
url  Universal Resource Locator for document.
inMIME  Extra MIME information in command.
multipartFormInfo  additional information for multi-part posts
socket  socket used for request

Reimplemented in PHTTPFile, and PHTTPDirectory.

virtual PBoolean PHTTPResource::LoadHeaders ( PHTTPRequest request  )  [pure 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.

Implemented in PHTTPString, PHTTPFile, PHTTPTailFile, PHTTPDirectory, and PXMLRPCServerResource.

virtual void PHTTPResource::SendData ( PHTTPRequest request  )  [virtual]

Send the data associated with a command.

The default action is to call the virtual LoadData()# to get a resource to be sent to the socket.

Parameters:
request  information for this request

virtual PBoolean PHTTPResource::LoadData ( PHTTPRequest request,
PCharArray data 
) [virtual]

Get a block of data that the resource contains.

The default behaviour is to call the LoadText()# function and if successful, call the OnLoadedText()# function.

Returns:
PTrue if there is still more to load.
Parameters:
request  Information on this request.
data  Data used in reply.

Reimplemented in PHTTPFile, and PHTTPTailFile.

virtual PString PHTTPResource::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 in PHTTPString, PHTTPFile, PHTTPDirectory, PRegisterPage, and PServiceHTTPString.

virtual void PHTTPResource::OnLoadedText ( PHTTPRequest request,
PString text 
) [virtual]

This is called after the text has been loaded and may be used to customise or otherwise mangle a loaded piece of text. Typically this is used with HTML responses.

The default action for this function is to do nothing.

Parameters:
request  Information on this request.
text  Data used in reply.

Reimplemented in PHTTPForm, PHTTPConfig, PHTTPConfigSectionList, PConfigPage, PConfigSectionsPage, PRegisterPage, PServiceHTTPFile, and PServiceHTTPDirectory.

virtual PBoolean PHTTPResource::Post ( PHTTPRequest request,
const PStringToString data,
PHTML replyMessage 
) [virtual]

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

The default action for this function is to do nothing and return success.

Returns:
PTrue if the connection may persist, PFalse if the connection must close
Parameters:
request  Information on this request.
data  Variables in the POST data.
replyMessage  Reply message for post.

Reimplemented in PHTTPForm, PHTTPConfig, PHTTPConfigSectionList, PConfigPage, PConfigSectionsPage, and PRegisterPage.

virtual PBoolean PHTTPResource::CheckAuthority ( PHTTPServer server,
const PHTTPRequest request,
const PHTTPConnectionInfo conInfo 
) [protected, virtual]

See if the resource is authorised given the mime info

Parameters:
server  Server to send response to.
request  Information on this request.
conInfo  Information on the connection

Reimplemented in PHTTPDirectory.

static PBoolean PHTTPResource::CheckAuthority ( PHTTPAuthority authority,
PHTTPServer server,
const PHTTPRequest request,
const PHTTPConnectionInfo connectInfo 
) [static, protected]

virtual PBoolean PHTTPResource::OnGETOrHEAD ( PHTTPServer server,
const PURL url,
const PMIMEInfo info,
const PHTTPConnectionInfo conInfo,
PBoolean  IsGet 
) [protected, virtual]

common code for GET and HEAD commands

Parameters:
server  HTTP server that received the request
url  Universal Resource Locator for document.
info  Extra MIME information in command.


Member Data Documentation

PURL PHTTPResource::baseURL [protected]

Base URL for the resource, may accept URLS with a longer hierarchy.

PString PHTTPResource::contentType [protected]

MIME content type for the resource.

PHTTPAuthority* PHTTPResource::authority [protected]

Authorisation method for the resource.

volatile DWORD PHTTPResource::hitCount [protected]

COunt of number of times resource was accessed.


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