Fawkes API
Fawkes Development Version
|
#include <>>
Public Member Functions | |
WebServer (unsigned short int port, WebRequestDispatcher *dispatcher, fawkes::Logger *logger=0) | |
Constructor. More... | |
~WebServer () | |
Destructor. More... | |
WebServer & | setup_tls (const char *key_pem_filepath, const char *cert_pem_filepath, const char *cipher_suite=WEBVIEW_DEFAULT_CIPHERS) |
Setup Transport Layer Security (encryption),. More... | |
WebServer & | setup_ipv (bool enable_ipv4, bool enable_ipv6) |
Setup protocols, i.e., IPv4 and/or IPv6. More... | |
WebServer & | setup_thread_pool (unsigned int num_threads) |
Setup thread pool. More... | |
WebServer & | setup_cors (bool allow_all, std::vector< std::string > &&origins, unsigned int max_age) |
Setup cross-origin resource sharing. More... | |
WebServer & | setup_basic_auth (const char *realm, WebUserVerifier *verifier) |
Setup basic authentication. More... | |
WebServer & | setup_request_manager (WebRequestManager *request_manager) |
Setup this server as request manager. More... | |
WebServer & | setup_access_log (const char *filename) |
Setup access log. More... | |
void | start () |
Start daemon and enable processing requests. More... | |
void | process () |
Process requests. 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... | |
Encapsulation of the libmicrohttpd webserver. This class opens a port serving websites and calls the supplied dispatcher for requests.
fawkes::WebServer::WebServer | ( | unsigned short int | port, |
WebRequestDispatcher * | dispatcher, | ||
fawkes::Logger * | logger = 0 |
||
) |
Constructor.
port | TCP port to listen on |
dispatcher | dispatcher to call for requests |
logger | optional logger, used to output possible run-time problems |
Definition at line 57 of file server.cpp.
fawkes::WebServer::~WebServer | ( | ) |
Destructor.
Definition at line 211 of file server.cpp.
unsigned int fawkes::WebServer::active_requests | ( | ) | const |
Get number of active requests.
Definition at line 303 of file server.cpp.
References fawkes::WebRequestDispatcher::last_request_completion_time().
Time fawkes::WebServer::last_request_completion_time | ( | ) | const |
Get time when last request was completed.
Definition at line 312 of file server.cpp.
void fawkes::WebServer::process | ( | ) |
Process requests.
This method waits for new requests and processes them when received. It is necessary to call this function if running the server in single thread mode, i.e., setup_thread_pool() has not been called or only for a single thread. The function may always be called safely, even in thread pool mode. However, when called in thread pool mode, the function will always return immediately.
Definition at line 326 of file server.cpp.
Referenced by WebviewThread::loop(), and XmlRpcThread::loop().
WebServer & fawkes::WebServer::setup_access_log | ( | const char * | filename | ) |
Setup access log.
filename | access log file name |
Definition at line 280 of file server.cpp.
Referenced by WebviewThread::init().
WebServer & fawkes::WebServer::setup_basic_auth | ( | const char * | realm, |
WebUserVerifier * | verifier | ||
) |
Setup basic authentication.
realm | authentication realm to display to the user |
verifier | verifier to use for checking credentials |
Definition at line 269 of file server.cpp.
References fawkes::WebRequestDispatcher::setup_access_log().
Referenced by WebviewThread::init().
WebServer & fawkes::WebServer::setup_cors | ( | bool | allow_all, |
std::vector< std::string > && | origins, | ||
unsigned int | max_age | ||
) |
Setup cross-origin resource sharing.
allow_all | allow access to all hosts |
origins | allow access from these specific origins |
max_age | maximum cache time to send to the client, zero to disable |
Definition at line 117 of file server.cpp.
WebServer & fawkes::WebServer::setup_ipv | ( | bool | enable_ipv4, |
bool | enable_ipv6 | ||
) |
Setup protocols, i.e., IPv4 and/or IPv6.
enable_ipv4 | enable IPv4 support |
enable_ipv6 | enable IPv6 support |
Definition at line 102 of file server.cpp.
WebServer & fawkes::WebServer::setup_request_manager | ( | WebRequestManager * | request_manager | ) |
Setup this server as request manager.
The registration will be cancelled automatically on destruction.
request_manager | request manager to register with |
Definition at line 292 of file server.cpp.
Referenced by WebviewThread::init().
WebServer & fawkes::WebServer::setup_thread_pool | ( | unsigned int | num_threads | ) |
Setup thread pool.
This also enables epoll on Linux.
num_threads | number of threads in thread pool. If this equals one, thread pooling will be disabled and will process requests from within webview thread. |
Definition at line 134 of file server.cpp.
Referenced by WebviewThread::init().
WebServer & fawkes::WebServer::setup_tls | ( | const char * | key_pem_filepath, |
const char * | cert_pem_filepath, | ||
const char * | cipher_suite = WEBVIEW_DEFAULT_CIPHERS |
||
) |
Setup Transport Layer Security (encryption),.
key_pem_filepath | path to PEM formatted file containing the key |
cert_pem_filepath | path to PEM formatted file containing the certificate |
cipher_suite | which cipers to use for SSL/TLS connections |
Definition at line 80 of file server.cpp.
Referenced by WebviewThread::init().
void fawkes::WebServer::start | ( | ) |
Start daemon and enable processing requests.
Definition at line 144 of file server.cpp.
Referenced by WebviewThread::init().