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

This object describes a HyperText Transport Protocol resource which is a single file. More...

`#include <http.h>`

Inheritance diagram for PHTTPFile:

## Public Member Functions

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

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

## Protected Attributes

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 single file.

The file 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.

## Constructor & Destructor Documentation

PHTTPFile::PHTTPFile | ( | const PString & | filename | ) |

Contruct a new simple file resource for the HTTP space.

If no MIME content type is specified then a default type is used depending on the file type. For example, "text/html" is used of the file type is ".html" or ".htm". The default for an unknown type is "application/octet-stream".

PHTTPFile::PHTTPFile | ( | const PString & | filename,
|  | const PHTTPAuthority & | auth
| ) |  |

PHTTPFile::PHTTPFile | ( | const PURL & | url,
|  | const PFilePath & | file
| ) |  |

PHTTPFile::PHTTPFile | ( | const PURL & | url,
|  | const PFilePath & | file,
|  | const PString & | contentType
| ) |  |

PHTTPFile::PHTTPFile | ( | const PURL & | url,
|  | const PFilePath & | file,
|  | const PHTTPAuthority & | auth
| ) |  |

PHTTPFile::PHTTPFile | ( | const PURL & | url,
|  | const PFilePath & | file,
|  | const PString & | contentType,
|  | const PHTTPAuthority & | auth
| ) |  |

PHTTPFile::PHTTPFile | ( | const PURL & | url,
|  | int | dummy
| ) |  |

protected

## Member Function Documentation

virtual PHTTPRequest* PHTTPFile::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 PHTTPResource.

Reimplemented in PHTTPDirectory.

virtual PBoolean PHTTPFile::LoadData | ( | PHTTPRequest & | request,
|  | PCharArray & | data
| ) |  |

virtual

Get a block of data that the resource contains.

Returns
  true if more to load.

Reimplemented from PHTTPResource.

Reimplemented in PHTTPTailFile.

virtual PBoolean PHTTPFile::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.

Implements PHTTPResource.

Reimplemented in PHTTPDirectory, and PHTTPTailFile.

virtual PString PHTTPFile::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.

Reimplemented from PHTTPResource.

Reimplemented in PHTTPDirectory.

## Member Data Documentation

PFilePath PHTTPFile::filePath

protected

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

- http.h