#include <webserver.hh>
Public Member Functions | |
| basic_server (int argn, char **argv, int max=20, bool ctrlC=true, int maxretry=0) | |
| virtual | ~basic_server () |
| virtual void | Listen () |
| virtual bool | Parse (int csock, struct sockaddr *caddr, int clen) |
| int | getPort () const |
| void | SetLog (std::ostream *os) |
| virtual void | Interrupt (int sig) |
Protected Member Functions | |
| virtual void | Spawn (int csock, struct sockaddr *caddr, int clen) |
| virtual bool | Request (const request_t &request, response_t &response) |
| virtual bool | RequestConnect (const request_t &request, response_t &response) |
| virtual bool | RequestGet (const request_t &request, response_t &response) |
| virtual bool | RequestHead (const request_t &request, response_t &response) |
| virtual bool | RequestPost (const request_t &request, response_t &response) |
| virtual bool | RequestPut (const request_t &request, response_t &response) |
| virtual bool | RequestDelete (const request_t &request, response_t &response) |
| virtual bool | RequestOptions (const request_t &request, response_t &response) |
| virtual bool | RequestTrace (const request_t &request, response_t &response) |
| virtual bool | CheckCache (const request_t &request, response_t &response) |
| virtual void | Close () |
Protected Attributes | |
| thread::recursivemutex | fMux |
| Server mutex. | |
| webcache | fCache |
| Web page cache (by defeault caching is disabled). | |
| std::ostream * | fLog |
| Log file. | |
brief Basic web server
| web::basic_server::basic_server | ( | int | argn, | |
| char ** | argv, | |||
| int | max = 20, |
|||
| bool | ctrlC = true, |
|||
| int | maxretry = 0 | |||
| ) |
Constructs a web server. The following command line arguments are supported: {verbatim} -p <port> Port number for listening socket {verbatim}
brief Constructor
| argn | Number of cmd line arguments | |
| argv | list of cmd line arguments | |
| max | Maximum number of allowed threads | |
| ctrlC | If true installs a ^C and SIGTERM handler | |
| maxretry | Maximum number of recover attempts |
| virtual web::basic_server::~basic_server | ( | ) | [virtual] |
Destructs the web server. Terminates all threads brief Destructor
| virtual void web::basic_server::Listen | ( | ) | [virtual] |
Starts listening at the port. This method will not return if successful. brief Listen
| virtual bool web::basic_server::Parse | ( | int | csock, | |
| struct sockaddr * | caddr, | |||
| int | clen | |||
| ) | [virtual] |
Parse a server request. brief Parse request
| csock | client socket | |
| caddr | client address | |
| clen | address length |
| int web::basic_server::getPort | ( | ) | const [inline] |
Get the port number. brief Get port number
| void web::basic_server::SetLog | ( | std::ostream * | os | ) | [inline] |
Set the output log. brief Set log
| os | Output stream |
| virtual void web::basic_server::Interrupt | ( | int | sig | ) | [virtual] |
Handles ^C and SIGTERM. By default closes the socket and exits brief Handles ^C and SIGTERM
| sig | Signal |
| virtual void web::basic_server::Spawn | ( | int | csock, | |
| struct sockaddr * | caddr, | |||
| int | clen | |||
| ) | [protected, virtual] |
Spawn a new server thread. This function is called by Listen whenever a new request is received. brief Spawn
| csock | client socket | |
| caddr | client address | |
| clen | address length |
| virtual bool web::basic_server::Request | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a request. Can be overriden by descendents. brief Process request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestConnect | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a CONNECT request. Can be overriden by descendents. Default handler will return OK. brief Process CONNECT request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestGet | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a GET request. Can be overriden by descendents. Default handler will return NOT FOUND. brief Process GET request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestHead | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a HEAD request. Can be overriden by descendents. Default handler will call RequestGet and truncate the data field. brief Process HEAD request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestPost | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a POST request. Can be overriden by descendents. Default handler will return NOT IMPLEMENTED. brief Process POST request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestPut | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a PUT request. Can be overriden by descendents. Default handler will return NOT IMPLEMENTED. brief Process PUT request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestDelete | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a DELETE request. Can be overriden by descendents. Default handler will return NOT IMPLEMENTED. brief Process DELETE request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestOptions | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a OPTIONS request. Can be overriden by descendents. Default handler will return NOT IMPLEMENTED. brief Process OPTIONS request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::RequestTrace | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Process a TRACE request. Can be overriden by descendents. Default handler will return NOT IMPLEMENTED. brief Process TRACE request
| request | requested page | |
| response | Web page (return) |
| virtual bool web::basic_server::CheckCache | ( | const request_t & | request, | |
| response_t & | response | |||
| ) | [protected, virtual] |
Check for cached entry.
| request | requested page | |
| response | Web page (return) |
| virtual void web::basic_server::Close | ( | ) | [protected, virtual] |
Close server socket. brief Close server socket
1.5.4