The base HTTP Server.
This is a simple HTTP Server built around libmicrohttpd. It runs in a separate thread.
- Example
options.port = ...;
server.Init();
server.Run();
server.Stop();
The base HTTP Server.
Definition HTTPServer.h:157
Definition HTTPServer.h:162
|
| HTTPServer (const HTTPServerOptions &options) |
| Setup the HTTP server.
|
|
virtual | ~HTTPServer () |
| Destroy this object.
|
|
bool | Init () |
| Setup the HTTP server.
|
|
void * | Run () |
| The entry point into the new thread.
|
|
void | Stop () |
| Stop the HTTP server.
|
|
void | UpdateSockets () |
| This is run every loop iteration to update the list of sockets in the SelectServer from MHD.
|
|
void | HandleHTTPIO () |
|
int | DispatchRequest (const HTTPRequest *request, HTTPResponse *response) |
| Call the appropriate handler.
|
|
bool | RegisterHandler (const std::string &path, BaseHTTPCallback *handler) |
| Register a handler.
|
|
bool | RegisterFile (const std::string &path, const std::string &content_type) |
| Register a static file. The root of the URL corresponds to the data dir.
|
|
bool | RegisterFile (const std::string &path, const std::string &file, const std::string &content_type) |
| Register a static file.
|
|
void | RegisterDefaultHandler (BaseHTTPCallback *handler) |
| Set the default handler.
|
|
void | Handlers (std::vector< std::string > *handlers) const |
| Return a list of all handlers registered.
|
|
const std::string | DataDir () const |
|
int | ServeError (HTTPResponse *response, const std::string &details="") |
| Serve an error.
|
|
int | ServeNotFound (HTTPResponse *response) |
| Serve a 404.
|
|
int | ServeStaticContent (const std::string &path, const std::string &content_type, HTTPResponse *response) |
| Return the contents of a file.
|
|
ola::io::SelectServer * | SelectServer () |
|
| Thread (const Options &options=Options()) |
| Create a new thread with the specified thread options.
|
|
virtual | ~Thread () |
| Destructor.
|
|
virtual bool | Start () |
| Start the thread and wait for the thread to be running.
|
|
virtual bool | FastStart () |
| Start the thread and return immediately.
|
|
virtual bool | Join (void *ptr=NULL) |
| Join this thread.
|
|
bool | IsRunning () |
| Check if the thread is running.
|
|
ThreadId | Id () const |
| Return the thread id.
|
|
std::string | Name () const |
| Return the thread name.
|
|
|
static int | ServeRedirect (HTTPResponse *response, const std::string &location) |
| Serve a redirect.
|
|
static struct MHD_Response * | BuildResponse (void *data, size_t size) |
|
static ThreadId | Self () |
| Returns the current thread's id.
|
|
|
static const char | CONTENT_TYPE_PLAIN [] = "text/plain" |
|
static const char | CONTENT_TYPE_HTML [] = "text/html" |
|
static const char | CONTENT_TYPE_GIF [] = "image/gif" |
|
static const char | CONTENT_TYPE_PNG [] = "image/png" |
|
static const char | CONTENT_TYPE_CSS [] = "text/css" |
|
static const char | CONTENT_TYPE_JS [] = "text/javascript" |
|
static const char | CONTENT_TYPE_OCT [] = "application/octet-stream" |
|
◆ HTTPServer()
Setup the HTTP server.
- Parameters
-
options | the configuration options for the server |
◆ HandleHTTPIO()
void ola::http::HTTPServer::HandleHTTPIO |
( |
| ) |
|
|
inline |
Called when there is HTTP IO activity to deal with. This is a noop as MHD_run is called in UpdateSockets above.
◆ Init()
bool ola::http::HTTPServer::Init |
( |
| ) |
|
Setup the HTTP server.
- Returns
- true on success, false on failure
◆ RegisterDefaultHandler()
void ola::http::HTTPServer::RegisterDefaultHandler |
( |
BaseHTTPCallback * | handler | ) |
|
Set the default handler.
- Parameters
-
handler | the default handler to call. This will be freed when the HTTPServer is destroyed. |
◆ RegisterFile() [1/2]
bool ola::http::HTTPServer::RegisterFile |
( |
const std::string & | path, |
|
|
const std::string & | content_type ) |
Register a static file. The root of the URL corresponds to the data dir.
- Parameters
-
path | the URL path for the file e.g. '/foo.png' |
content_type | the content type. |
◆ RegisterFile() [2/2]
bool ola::http::HTTPServer::RegisterFile |
( |
const std::string & | path, |
|
|
const std::string & | file, |
|
|
const std::string & | content_type ) |
Register a static file.
- Parameters
-
path | the path to serve on e.g. /foo.png |
file | the path to the file to serve relative to the data dir e.g. images/foo.png |
content_type | the content type. |
◆ RegisterHandler()
bool ola::http::HTTPServer::RegisterHandler |
( |
const std::string & | path, |
|
|
BaseHTTPCallback * | handler ) |
Register a handler.
- Parameters
-
path | the url to respond on |
handler | the Closure to call for this request. These will be freed once the HTTPServer is destroyed. |
◆ Run()
void * ola::http::HTTPServer::Run |
( |
| ) |
|
|
virtual |
◆ ServeError()
int ola::http::HTTPServer::ServeError |
( |
HTTPResponse * | response, |
|
|
const std::string & | details = "" ) |
Serve an error.
- Parameters
-
response | the response to use. |
details | the error description |
◆ ServeNotFound()
int ola::http::HTTPServer::ServeNotFound |
( |
HTTPResponse * | response | ) |
|
Serve a 404.
- Parameters
-
response | the response to use |
◆ ServeRedirect()
int ola::http::HTTPServer::ServeRedirect |
( |
HTTPResponse * | response, |
|
|
const std::string & | location ) |
|
static |
Serve a redirect.
- Parameters
-
response | the response to use |
location | the location to redirect to |
The documentation for this class was generated from the following files: