22 #ifndef _LIBS_WEBVIEW_REQUEST_DISPATCHER_H_
23 #define _LIBS_WEBVIEW_REQUEST_DISPATCHER_H_
25 #include "microhttpd_compat.h"
27 #include <utils/time/time.h>
31 #include <microhttpd.h>
37 class WebRequestProcessor;
39 class WebPageHeaderGenerator;
40 class WebPageFooterGenerator;
42 class DynamicWebReply;
43 class WebUserVerifier;
45 class WebviewAccessLog;
57 struct MHD_Connection *connection,
61 const char * upload_data,
62 size_t * upload_data_size,
63 void ** session_data);
66 struct MHD_Connection * connection,
68 enum MHD_RequestTerminationCode toe);
70 static void *
uri_log_cb(
void *cls,
const char *uri);
74 void setup_cors(
bool allow_all, std::vector<std::string> &&origins,
unsigned int max_age);
80 struct MHD_Response *prepare_static_response(
StaticWebReply *sreply);
81 MHD_RESULT queue_static_reply(
struct MHD_Connection *connection,
84 MHD_RESULT queue_dynamic_reply(
struct MHD_Connection *connection,
87 MHD_RESULT queue_basic_auth_fail(
struct MHD_Connection *connection,
WebRequest *request);
88 MHD_RESULT process_request(
struct MHD_Connection *connection,
92 const char * upload_data,
93 size_t * upload_data_size,
94 void ** session_data);
95 void * log_uri(
const char *uri);
97 void request_completed(
WebRequest *request, MHD_RequestTerminationCode term_code);
103 std::string active_baseurl_;
110 unsigned int active_requests_;
114 bool cors_allow_all_;
115 std::vector<std::string> cors_origins_;
116 unsigned int cors_max_age_;
Mutex mutual exclusion lock.
A class for handling time.
unsigned int active_requests() const
Get number of active requests.
void setup_cors(bool allow_all, std::vector< std::string > &&origins, unsigned int max_age)
Setup cross-origin resource sharing.
void setup_basic_auth(const char *realm, WebUserVerifier *verifier)
Setup basic authentication.
static void * uri_log_cb(void *cls, const char *uri)
Callback for new requests.
~WebRequestDispatcher()
Destructor.
static void request_completed_cb(void *cls, struct MHD_Connection *connection, void **con_cls, enum MHD_RequestTerminationCode toe)
Process request completion.
static MHD_RESULT 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.
void setup_access_log(const char *filename)
Setup access log.
Time last_request_completion_time() const
Get time when last request was completed.
WebRequestDispatcher(WebUrlManager *url_manager, WebPageHeaderGenerator *headergen=0, WebPageFooterGenerator *footergen=0)
Constructor.
Web request meta data carrier.
Interface for user verification.
Webview access_log writer.
Fawkes library namespace.