PHTTPResource Class Referenceabstract

This object describes a HyperText Transport Protocol resource. More...

`#include <http.h>`

Inheritance diagram for PHTTPResource:

## Public Member Functions

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 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)=0
| Get the headers for block of data (eg HTML) that the resource contains. More...
virtual void | SendData (PHTTPRequest &request)
| Send the data associated with a command. More...
virtual PBoolean | LoadData (PHTTPRequest &request, PCharArray &data)
| Get a block of data that the resource contains. More...
virtual PString | LoadText (PHTTPRequest &request)
| Get a block of text data (eg HTML) that the resource contains. 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

| 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)
| See if the resource is authorised given the mime info. More...
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...

## 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. 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...

## Detailed Description

This object describes a HyperText Transport Protocol resource.

A tree of these resources are available to the `PHTTPServer` 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

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

void PHTTPResource::ClearAuthority | ( |  | ) |

Set the current authority for the resource to unrestricted.

void PHTTPResource::ClearHitCount | ( |  | ) |

inline

References hitCount.

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

PHTTPAuthority* PHTTPResource::GetAuthority | ( |  | ) | const

inline

Get the current authority for the resource.

Returns
  Pointer to authority or NULL if unrestricted.

References authority.

const PString& PHTTPResource::GetContentType | ( |  | ) | const

inline

Get the current content type for the resource.

Returns
  string for the current MIME content type.

References contentType.

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 PServiceHTTPDirectory, PServiceHTTPFile, PServiceHTTPString, PConfigSectionsPage, and PConfigPage.

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.

References hitCount.

const PURL& PHTTPResource::GetURL | ( |  | ) | const

inline

Get the URL for this resource.

Returns
  The URL for this resource.

References baseURL.

virtual PBoolean PHTTPResource::IsModifiedSince | ( | const PTime & | when | ) |

virtual

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

Returns
  true if has been modified since.

Parameters

  when | Time to see if modified later than

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
  true if there is still more to load.

Parameters

  request | Information on this request.
  data | Data used in reply.

Reimplemented in PHTTPTailFile, and PHTTPFile.

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
  true if all OK, false if an error occurred.

Parameters

  request | Information on this request.

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

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 PHTTPDirectory, PHTTPFile, PHTTPString, PServiceHTTPString, and PRegisterPage.

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
  true if the connection may persist, false if the connection must close. If there is no ContentLength field in the response, this value must be false 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
  true if the connection may persist, false if the connection must close. If there is no ContentLength field in the response, this value must be false 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::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.
  conInfo | Connection information
  isGet | Flag indicating is GET or HEAD

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
  true if the connection may persist, false if the connection must close If there is no ContentLength field in the response, this value must be false 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 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 PHTTPConfigSectionList, PHTTPConfig, PHTTPForm, PServiceHTTPDirectory, PServiceHTTPFile, PRegisterPage, PConfigSectionsPage, and PConfigPage.

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
  true if the connection may persist, false if the connection must close If there is no ContentLength field in the response, this value must be false 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 PConfigSectionsPage, and PConfigPage.

virtual PBoolean PHTTPResource::OnPOSTData | ( | PHTTPRequest & | request,
|  | const PStringToString & | data
| ) |  |

virtual

Send the data associated with a POST command.

The default action calls `Post()`.

Returns
  true if the connection may persist, false if the connection must close. If there is no ContentLength field in the response, this value must be false for correct operation.

Parameters

  request | request information
  data | Variables in the POST data.

Reimplemented in PSOAPServerResource, and PXMLRPCServerResource.

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
  true if the connection may persist, false if the connection must close

Parameters

  request | Information on this request.
  data | Variables in the POST data.
  replyMessage | Reply message for post.

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

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

void PHTTPResource::SetAuthority | ( | const PHTTPAuthority & | auth | ) |

Set the current authority for the resource.

Parameters

  auth | authority to set

## Member Data Documentation

PHTTPAuthority* PHTTPResource::authority

protected

Authorisation method for the resource.

Referenced by GetAuthority().

PURL PHTTPResource::baseURL

protected

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

Referenced by GetURL().

PString PHTTPResource::contentType

protected

MIME content type for the resource.

Referenced by GetContentType().

volatile DWORD PHTTPResource::hitCount

protected

COunt of number of times resource was accessed.

Referenced by ClearHitCount(), and GetHitCount().

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

- http.h