Fawkes API  Fawkes Development Version
fawkes::WebRequestDispatcher Class Reference

Web request dispatcher. More...

#include "request_dispatcher.h"

Public Member Functions

 WebRequestDispatcher (WebUrlManager *url_manager, WebPageHeaderGenerator *headergen=0, WebPageFooterGenerator *footergen=0)
 Constructor. More...
 
 ~WebRequestDispatcher ()
 Destructor. More...
 
void setup_basic_auth (const char *realm, WebUserVerifier *verifier)
 Setup basic authentication. More...
 
void setup_access_log (const char *filename)
 Setup access log. More...
 
unsigned int active_requests () const
 Get number of active requests. More...
 
Time last_request_completion_time () const
 Get time when last request was completed. More...
 

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. More...
 
static void request_completed_cb (void *cls, struct MHD_Connection *connection, void **con_cls, enum MHD_RequestTerminationCode toe)
 Process request completion. More...
 
static void * uri_log_cb (void *cls, const char *uri)
 Callback for new requests. More...
 

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.

Author
Tim Niemueller

Definition at line 50 of file request_dispatcher.h.

Constructor & Destructor Documentation

◆ WebRequestDispatcher()

fawkes::WebRequestDispatcher::WebRequestDispatcher ( WebUrlManager url_manager,
WebPageHeaderGenerator headergen = 0,
WebPageFooterGenerator footergen = 0 
)

Constructor.

Parameters
url_managerURL manager to use for URL to processor mapping
headergenpage header generator
footergenpage footer generator

Definition at line 72 of file request_dispatcher.cpp.

◆ ~WebRequestDispatcher()

fawkes::WebRequestDispatcher::~WebRequestDispatcher ( )

Destructor.

Definition at line 88 of file request_dispatcher.cpp.

Member Function Documentation

◆ active_requests()

unsigned int fawkes::WebRequestDispatcher::active_requests ( ) const

Get number of active requests.

Returns
number of ongoing requests.

Definition at line 497 of file request_dispatcher.cpp.

Referenced by fawkes::WebServer::active_requests().

◆ last_request_completion_time()

Time fawkes::WebRequestDispatcher::last_request_completion_time ( ) const

Get time when last request was completed.

Returns
Time when last request was completed

Definition at line 507 of file request_dispatcher.cpp.

Referenced by fawkes::WebServer::last_request_completion_time().

◆ process_request_cb()

int fawkes::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_datainstance of WebRequestDispatcher to call
connectionlibmicrohttpd connection instance
urlURL, may contain escape sequences
methodHTTP method
versionHTTP version
upload_datauploaded data
upload_data_sizesize of upload_data parameter
session_datasession data pointer
Returns
appropriate return code for libmicrohttpd

Definition at line 157 of file request_dispatcher.cpp.

Referenced by fawkes::WebServer::WebServer().

◆ request_completed_cb()

void fawkes::WebRequestDispatcher::request_completed_cb ( void *  cls,
struct MHD_Connection *  connection,
void **  con_cls,
enum MHD_RequestTerminationCode  toe 
)
static

Process request completion.

Parameters
clsclosure which is a pointer to the request dispatcher
connectionconnection on which the request completed
con_clsconnection specific data, for us the request
toetermination code

Definition at line 179 of file request_dispatcher.cpp.

Referenced by fawkes::WebServer::WebServer().

◆ setup_access_log()

void fawkes::WebRequestDispatcher::setup_access_log ( const char *  filename)

Setup access log.

Parameters
filenameaccess log file name

Definition at line 126 of file request_dispatcher.cpp.

Referenced by fawkes::WebServer::setup_access_log().

◆ setup_basic_auth()

void fawkes::WebRequestDispatcher::setup_basic_auth ( const char *  realm,
WebUserVerifier verifier 
)

Setup basic authentication.

Parameters
realmauthentication realm to display to the user. If NULL basic authentication will be disabled.
verifierverifier to use for checking credentials. If NULL basic authentication will be disabled.

Definition at line 104 of file request_dispatcher.cpp.

Referenced by fawkes::WebServer::setup_basic_auth().

◆ uri_log_cb()

void * fawkes::WebRequestDispatcher::uri_log_cb ( void *  cls,
const char *  uri 
)
static

Callback for new requests.

Parameters
clsclosure, must be WebRequestDispatcher
urirequested URI
Returns
returns output of WebRequestDispatcher::log_uri()

Definition at line 139 of file request_dispatcher.cpp.

Referenced by fawkes::WebServer::WebServer().


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