WebRequestDispatcher Class Reference
Web request dispatcher. More...
#include <request_dispatcher.h>
Public Member Functions | |
| void | add_processor (const char *url_prefix, WebRequestProcessor *processor) |
| Add a request processor. | |
| void | remove_processor (const char *url_prefix) |
| Remove a request processor. | |
| int | queue_static_reply (struct MHD_Connection *connection, StaticWebReply *sreply) |
| Queue a static web reply. | |
| int | process_request (struct MHD_Connection *connection, const char *url, const char *method, const char *version, const char *upload_data, size_t *upload_data_size, void **session_data) |
| Process request callback for libmicrohttpd. | |
Static Public Member Functions | |
| static int | process_request_cb (void *callback_data, struct MHD_Connection *connection, const char *url, const char *method, const char *version, const char *upload_data, size_t *upload_data_size, void **session_data) |
| Process request callback for libmicrohttpd. | |
| static int | dynamic_reply_data_cb (void *reply, uint64_t pos, char *buf, int max) |
| Callback based chunk-wise data. | |
| static void | dynamic_reply_free_cb (void *reply) |
| Callback to free dynamic web reply. | |
Detailed Description
Web request dispatcher.Takes web request received via a webserver run by libmicrohttpd and dispatches pages to registered WebRequestProcessor instances or gives a 404 error if no processor was registered for the given base url.
Definition at line 38 of file request_dispatcher.h.
Member Function Documentation
| void WebRequestDispatcher::add_processor | ( | const char * | url_prefix, | |
| WebRequestProcessor * | processor | |||
| ) |
Add a request processor.
- Parameters:
-
url_prefix baseurl this processor should handle processor processor for baseurl
Definition at line 228 of file request_dispatcher.cpp.
| int WebRequestDispatcher::dynamic_reply_data_cb | ( | void * | reply, | |
| uint64_t | pos, | |||
| char * | buf, | |||
| int | max | |||
| ) | [static] |
Callback based chunk-wise data.
Supplies data chunk based.
- Parameters:
-
reply instance of DynamicWebReply pos position in stream buf buffer to put data in max maximum number of bytes that can be put in buf
- Returns:
- suitable libmicrohttpd return code
Definition at line 79 of file request_dispatcher.cpp.
References DynamicWebReply::next_chunk().
Referenced by process_request().
| void WebRequestDispatcher::dynamic_reply_free_cb | ( | void * | reply | ) | [static] |
Callback to free dynamic web reply.
- Parameters:
-
reply Instance of DynamicWebReply to free.
Definition at line 91 of file request_dispatcher.cpp.
Referenced by process_request().
| int WebRequestDispatcher::process_request | ( | struct MHD_Connection * | connection, | |
| const char * | url, | |||
| const char * | method, | |||
| const char * | version, | |||
| const char * | upload_data, | |||
| size_t * | upload_data_size, | |||
| void ** | session_data | |||
| ) |
Process request callback for libmicrohttpd.
- Parameters:
-
connection libmicrohttpd connection instance url URL, may contain escape sequences method HTTP method version HTTP version upload_data uploaded data upload_data_size size of upload_data parameter session_data session data pointer
- Returns:
- appropriate return code for libmicrohttpd
Definition at line 142 of file request_dispatcher.cpp.
References DynamicWebReply::chunk_size(), dynamic_reply_data_cb(), dynamic_reply_free_cb(), fawkes::hex_unescape(), WebReply::HTTP_INTERNAL_SERVER_ERROR, WebReply::HTTP_NOT_FOUND, WebRequestProcessor::process_request(), queue_static_reply(), and DynamicWebReply::size().
Referenced by process_request_cb().
| int WebRequestDispatcher::process_request_cb | ( | void * | callback_data, | |
| struct MHD_Connection * | connection, | |||
| const char * | url, | |||
| const char * | method, | |||
| const char * | version, | |||
| const char * | upload_data, | |||
| size_t * | upload_data_size, | |||
| void ** | session_data | |||
| ) | [static] |
Process request callback for libmicrohttpd.
- Parameters:
-
callback_data instance of WebRequestDispatcher to call connection libmicrohttpd connection instance url URL, may contain escape sequences method HTTP method version HTTP version upload_data uploaded data upload_data_size size of upload_data parameter session_data session data pointer
- Returns:
- appropriate return code for libmicrohttpd
Definition at line 55 of file request_dispatcher.cpp.
References process_request().
Referenced by WebviewThread::init().
| int WebRequestDispatcher::queue_static_reply | ( | struct MHD_Connection * | connection, | |
| StaticWebReply * | sreply | |||
| ) |
Queue a static web reply.
- Parameters:
-
connection libmicrohttpd connection to queue response to sreply static web reply to queue
- Returns:
- suitable libmicrohttpd return code
Definition at line 104 of file request_dispatcher.cpp.
References StaticWebReply::body(), StaticWebReply::body_length(), WebReply::code(), WebReply::headers(), and StaticWebReply::pack().
Referenced by process_request().
| void WebRequestDispatcher::remove_processor | ( | const char * | url_prefix | ) |
Remove a request processor.
- Parameters:
-
url_prefix baseurl the processor handled
Definition at line 243 of file request_dispatcher.cpp.
The documentation for this class was generated from the following files:
- src/plugins/webview/request_dispatcher.h
- src/plugins/webview/request_dispatcher.cpp

