camcom 1.0.0-pre2
 
Loading...
Searching...
No Matches
httplib::Server Class Reference

#include <httplib.h>

Public Types

enum class  HandlerResponse { Handled , Unhandled }
 
using Handler = std::function<void(const Request &, Response &)>
 
using ExceptionHandler
 
using HandlerWithResponse
 
using HandlerWithContentReader
 
using Expect100ContinueHandler
 
using WebSocketHandler
 
using SubProtocolSelector
 

Public Member Functions

 Server ()
 
virtual ~Server ()
 
virtual bool is_valid () const
 
ServerGet (const std::string &pattern, Handler handler)
 
ServerPost (const std::string &pattern, Handler handler)
 
ServerPost (const std::string &pattern, HandlerWithContentReader handler)
 
ServerPut (const std::string &pattern, Handler handler)
 
ServerPut (const std::string &pattern, HandlerWithContentReader handler)
 
ServerPatch (const std::string &pattern, Handler handler)
 
ServerPatch (const std::string &pattern, HandlerWithContentReader handler)
 
ServerDelete (const std::string &pattern, Handler handler)
 
ServerDelete (const std::string &pattern, HandlerWithContentReader handler)
 
ServerOptions (const std::string &pattern, Handler handler)
 
ServerWebSocket (const std::string &pattern, WebSocketHandler handler)
 
ServerWebSocket (const std::string &pattern, WebSocketHandler handler, SubProtocolSelector sub_protocol_selector)
 
bool set_base_dir (const std::string &dir, const std::string &mount_point=std::string())
 
bool set_mount_point (const std::string &mount_point, const std::string &dir, Headers headers=Headers())
 
bool remove_mount_point (const std::string &mount_point)
 
Serverset_file_extension_and_mimetype_mapping (const std::string &ext, const std::string &mime)
 
Serverset_default_file_mimetype (const std::string &mime)
 
Serverset_file_request_handler (Handler handler)
 
template<class ErrorHandlerFunc>
Serverset_error_handler (ErrorHandlerFunc &&handler)
 
Serverset_exception_handler (ExceptionHandler handler)
 
Serverset_pre_routing_handler (HandlerWithResponse handler)
 
Serverset_post_routing_handler (Handler handler)
 
Serverset_pre_request_handler (HandlerWithResponse handler)
 
Serverset_expect_100_continue_handler (Expect100ContinueHandler handler)
 
Serverset_logger (Logger logger)
 
Serverset_pre_compression_logger (Logger logger)
 
Serverset_error_logger (ErrorLogger error_logger)
 
Serverset_address_family (int family)
 
Serverset_tcp_nodelay (bool on)
 
Serverset_ipv6_v6only (bool on)
 
Serverset_socket_options (SocketOptions socket_options)
 
Serverset_default_headers (Headers headers)
 
Serverset_header_writer (std::function< ssize_t(Stream &, Headers &)> const &writer)
 
Serverset_trusted_proxies (const std::vector< std::string > &proxies)
 
Serverset_keep_alive_max_count (size_t count)
 
Serverset_keep_alive_timeout (time_t sec)
 
Serverset_read_timeout (time_t sec, time_t usec=0)
 
template<class Rep, class Period>
Serverset_read_timeout (const std::chrono::duration< Rep, Period > &duration)
 
Serverset_write_timeout (time_t sec, time_t usec=0)
 
template<class Rep, class Period>
Serverset_write_timeout (const std::chrono::duration< Rep, Period > &duration)
 
Serverset_idle_interval (time_t sec, time_t usec=0)
 
template<class Rep, class Period>
Serverset_idle_interval (const std::chrono::duration< Rep, Period > &duration)
 
Serverset_payload_max_length (size_t length)
 
Serverset_websocket_ping_interval (time_t sec)
 
template<class Rep, class Period>
Serverset_websocket_ping_interval (const std::chrono::duration< Rep, Period > &duration)
 
bool bind_to_port (const std::string &host, int port, int socket_flags=0)
 
int bind_to_any_port (const std::string &host, int socket_flags=0)
 
bool listen_after_bind ()
 
bool listen (const std::string &host, int port, int socket_flags=0)
 
bool is_running () const
 
void wait_until_ready () const
 
void stop ()
 
void decommission ()
 

Public Attributes

std::function< TaskQueue *(void)> new_task_queue
 

Protected Member Functions

bool process_request (Stream &strm, const std::string &remote_addr, int remote_port, const std::string &local_addr, int local_port, bool close_connection, bool &connection_closed, const std::function< void(Request &)> &setup_request, bool *websocket_upgraded=nullptr)
 

Protected Attributes

std::atomic< socket_tsvr_sock_ {INVALID_SOCKET}
 
std::vector< std::string > trusted_proxies_
 
size_t keep_alive_max_count_ = CPPHTTPLIB_KEEPALIVE_MAX_COUNT
 
time_t keep_alive_timeout_sec_ = CPPHTTPLIB_KEEPALIVE_TIMEOUT_SECOND
 
time_t read_timeout_sec_ = CPPHTTPLIB_SERVER_READ_TIMEOUT_SECOND
 
time_t read_timeout_usec_ = CPPHTTPLIB_SERVER_READ_TIMEOUT_USECOND
 
time_t write_timeout_sec_ = CPPHTTPLIB_SERVER_WRITE_TIMEOUT_SECOND
 
time_t write_timeout_usec_ = CPPHTTPLIB_SERVER_WRITE_TIMEOUT_USECOND
 
time_t idle_interval_sec_ = CPPHTTPLIB_IDLE_INTERVAL_SECOND
 
time_t idle_interval_usec_ = CPPHTTPLIB_IDLE_INTERVAL_USECOND
 
size_t payload_max_length_ = CPPHTTPLIB_PAYLOAD_MAX_LENGTH
 
time_t websocket_ping_interval_sec_
 

Member Typedef Documentation

◆ ExceptionHandler

Initial value:
std::function<void(const Request &, Response &, std::exception_ptr ep)>
Definition httplib.h:1224
Definition httplib.h:1288

◆ Expect100ContinueHandler

Initial value:
std::function<int(const Request &, Response &)>

◆ Handler

using httplib::Server::Handler = std::function<void(const Request &, Response &)>

◆ HandlerWithContentReader

Initial value:
std::function<void(
const Request &, Response &, const ContentReader &content_reader)>
Definition httplib.h:1100

◆ HandlerWithResponse

Initial value:
std::function<HandlerResponse(const Request &, Response &)>
HandlerResponse
Definition httplib.h:1580

◆ SubProtocolSelector

Initial value:
std::function<std::string(const std::vector<std::string> &protocols)>

◆ WebSocketHandler

Initial value:
std::function<void(const Request &, ws::WebSocket &)>
Definition httplib.h:3743

Member Enumeration Documentation

◆ HandlerResponse

Enumerator
Handled 
Unhandled 

Constructor & Destructor Documentation

◆ Server()

httplib::Server::Server ( )
inline

◆ ~Server()

httplib::Server::~Server ( )
inlinevirtualdefault

Member Function Documentation

◆ bind_to_any_port()

int httplib::Server::bind_to_any_port ( const std::string & host,
int socket_flags = 0 )
inline

◆ bind_to_port()

bool httplib::Server::bind_to_port ( const std::string & host,
int port,
int socket_flags = 0 )
inline

◆ decommission()

void httplib::Server::decommission ( )
inline

◆ Delete() [1/2]

Server & httplib::Server::Delete ( const std::string & pattern,
Handler handler )
inline

◆ Delete() [2/2]

Server & httplib::Server::Delete ( const std::string & pattern,
HandlerWithContentReader handler )
inline

◆ Get()

Server & httplib::Server::Get ( const std::string & pattern,
Handler handler )
inline

◆ is_running()

bool httplib::Server::is_running ( ) const
inline

◆ is_valid()

bool httplib::Server::is_valid ( ) const
inlinevirtual

◆ listen()

bool httplib::Server::listen ( const std::string & host,
int port,
int socket_flags = 0 )
inline

◆ listen_after_bind()

bool httplib::Server::listen_after_bind ( )
inline

◆ Options()

Server & httplib::Server::Options ( const std::string & pattern,
Handler handler )
inline

◆ Patch() [1/2]

Server & httplib::Server::Patch ( const std::string & pattern,
Handler handler )
inline

◆ Patch() [2/2]

Server & httplib::Server::Patch ( const std::string & pattern,
HandlerWithContentReader handler )
inline

◆ Post() [1/2]

Server & httplib::Server::Post ( const std::string & pattern,
Handler handler )
inline

◆ Post() [2/2]

Server & httplib::Server::Post ( const std::string & pattern,
HandlerWithContentReader handler )
inline

◆ process_request()

bool httplib::Server::process_request ( Stream & strm,
const std::string & remote_addr,
int remote_port,
const std::string & local_addr,
int local_port,
bool close_connection,
bool & connection_closed,
const std::function< void(Request &)> & setup_request,
bool * websocket_upgraded = nullptr )
inlineprotected

◆ Put() [1/2]

Server & httplib::Server::Put ( const std::string & pattern,
Handler handler )
inline

◆ Put() [2/2]

Server & httplib::Server::Put ( const std::string & pattern,
HandlerWithContentReader handler )
inline

◆ remove_mount_point()

bool httplib::Server::remove_mount_point ( const std::string & mount_point)
inline

◆ set_address_family()

Server & httplib::Server::set_address_family ( int family)
inline

◆ set_base_dir()

bool httplib::Server::set_base_dir ( const std::string & dir,
const std::string & mount_point = std::string() )
inline

◆ set_default_file_mimetype()

Server & httplib::Server::set_default_file_mimetype ( const std::string & mime)
inline

◆ set_default_headers()

Server & httplib::Server::set_default_headers ( Headers headers)
inline

◆ set_error_handler()

template<class ErrorHandlerFunc>
Server & httplib::Server::set_error_handler ( ErrorHandlerFunc && handler)
inline

◆ set_error_logger()

Server & httplib::Server::set_error_logger ( ErrorLogger error_logger)
inline

◆ set_exception_handler()

Server & httplib::Server::set_exception_handler ( ExceptionHandler handler)
inline

◆ set_expect_100_continue_handler()

Server & httplib::Server::set_expect_100_continue_handler ( Expect100ContinueHandler handler)
inline

◆ set_file_extension_and_mimetype_mapping()

Server & httplib::Server::set_file_extension_and_mimetype_mapping ( const std::string & ext,
const std::string & mime )
inline

◆ set_file_request_handler()

Server & httplib::Server::set_file_request_handler ( Handler handler)
inline

◆ set_header_writer()

Server & httplib::Server::set_header_writer ( std::function< ssize_t(Stream &, Headers &)> const & writer)
inline

◆ set_idle_interval() [1/2]

template<class Rep, class Period>
Server & httplib::Server::set_idle_interval ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_idle_interval() [2/2]

Server & httplib::Server::set_idle_interval ( time_t sec,
time_t usec = 0 )
inline

◆ set_ipv6_v6only()

Server & httplib::Server::set_ipv6_v6only ( bool on)
inline

◆ set_keep_alive_max_count()

Server & httplib::Server::set_keep_alive_max_count ( size_t count)
inline

◆ set_keep_alive_timeout()

Server & httplib::Server::set_keep_alive_timeout ( time_t sec)
inline

◆ set_logger()

Server & httplib::Server::set_logger ( Logger logger)
inline

◆ set_mount_point()

bool httplib::Server::set_mount_point ( const std::string & mount_point,
const std::string & dir,
Headers headers = Headers() )
inline

◆ set_payload_max_length()

Server & httplib::Server::set_payload_max_length ( size_t length)
inline

◆ set_post_routing_handler()

Server & httplib::Server::set_post_routing_handler ( Handler handler)
inline

◆ set_pre_compression_logger()

Server & httplib::Server::set_pre_compression_logger ( Logger logger)
inline

◆ set_pre_request_handler()

Server & httplib::Server::set_pre_request_handler ( HandlerWithResponse handler)
inline

◆ set_pre_routing_handler()

Server & httplib::Server::set_pre_routing_handler ( HandlerWithResponse handler)
inline

◆ set_read_timeout() [1/2]

template<class Rep, class Period>
Server & httplib::Server::set_read_timeout ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_read_timeout() [2/2]

Server & httplib::Server::set_read_timeout ( time_t sec,
time_t usec = 0 )
inline

◆ set_socket_options()

Server & httplib::Server::set_socket_options ( SocketOptions socket_options)
inline

◆ set_tcp_nodelay()

Server & httplib::Server::set_tcp_nodelay ( bool on)
inline

◆ set_trusted_proxies()

Server & httplib::Server::set_trusted_proxies ( const std::vector< std::string > & proxies)
inline

◆ set_websocket_ping_interval() [1/2]

template<class Rep, class Period>
Server & httplib::Server::set_websocket_ping_interval ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_websocket_ping_interval() [2/2]

Server & httplib::Server::set_websocket_ping_interval ( time_t sec)
inline

◆ set_write_timeout() [1/2]

template<class Rep, class Period>
Server & httplib::Server::set_write_timeout ( const std::chrono::duration< Rep, Period > & duration)
inline

◆ set_write_timeout() [2/2]

Server & httplib::Server::set_write_timeout ( time_t sec,
time_t usec = 0 )
inline

◆ stop()

void httplib::Server::stop ( )
inline

◆ wait_until_ready()

void httplib::Server::wait_until_ready ( ) const
inline

◆ WebSocket() [1/2]

Server & httplib::Server::WebSocket ( const std::string & pattern,
WebSocketHandler handler )
inline

◆ WebSocket() [2/2]

Server & httplib::Server::WebSocket ( const std::string & pattern,
WebSocketHandler handler,
SubProtocolSelector sub_protocol_selector )
inline

Member Data Documentation

◆ idle_interval_sec_

time_t httplib::Server::idle_interval_sec_ = CPPHTTPLIB_IDLE_INTERVAL_SECOND
protected

◆ idle_interval_usec_

time_t httplib::Server::idle_interval_usec_ = CPPHTTPLIB_IDLE_INTERVAL_USECOND
protected

◆ keep_alive_max_count_

size_t httplib::Server::keep_alive_max_count_ = CPPHTTPLIB_KEEPALIVE_MAX_COUNT
protected

◆ keep_alive_timeout_sec_

time_t httplib::Server::keep_alive_timeout_sec_ = CPPHTTPLIB_KEEPALIVE_TIMEOUT_SECOND
protected

◆ new_task_queue

std::function<TaskQueue *(void)> httplib::Server::new_task_queue

◆ payload_max_length_

size_t httplib::Server::payload_max_length_ = CPPHTTPLIB_PAYLOAD_MAX_LENGTH
protected

◆ read_timeout_sec_

time_t httplib::Server::read_timeout_sec_ = CPPHTTPLIB_SERVER_READ_TIMEOUT_SECOND
protected

◆ read_timeout_usec_

time_t httplib::Server::read_timeout_usec_ = CPPHTTPLIB_SERVER_READ_TIMEOUT_USECOND
protected

◆ svr_sock_

std::atomic<socket_t> httplib::Server::svr_sock_ {INVALID_SOCKET}
protected

◆ trusted_proxies_

std::vector<std::string> httplib::Server::trusted_proxies_
protected

◆ websocket_ping_interval_sec_

time_t httplib::Server::websocket_ping_interval_sec_
protected
Initial value:
=
#define CPPHTTPLIB_WEBSOCKET_PING_INTERVAL_SECOND
Definition httplib.h:205

◆ write_timeout_sec_

time_t httplib::Server::write_timeout_sec_ = CPPHTTPLIB_SERVER_WRITE_TIMEOUT_SECOND
protected

◆ write_timeout_usec_

time_t httplib::Server::write_timeout_usec_ = CPPHTTPLIB_SERVER_WRITE_TIMEOUT_USECOND
protected

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