RESTinio
|
Basic container for http_server settings. More...
#include <settings.hpp>
Public Member Functions | |
basic_server_settings_t (std::uint16_t port=8080, asio_ns::ip::tcp protocol=asio_ns::ip::tcp::v4()) | |
Derived & | buffer_size (std::size_t s) & |
Size of buffer for io operations. | |
Derived && | buffer_size (std::size_t s) && |
std::size_t | buffer_size () const |
Derived & | connection_state_listener (std::shared_ptr< typename Traits::connection_state_listener_t > listener) & |
Setter for connection state listener. | |
Derived && | connection_state_listener (std::shared_ptr< typename Traits::connection_state_listener_t > listener) && |
Setter for connection state listener. | |
const std::shared_ptr< typename Traits::connection_state_listener_t > & | connection_state_listener () const noexcept |
Get reference to connection state listener. | |
void | ensure_valid_connection_state_listener () |
Internal method for checking presence of state listener object. | |
Derived & | ip_blocker (std::shared_ptr< typename Traits::ip_blocker_t > blocker) & |
Setter for IP-blocker. | |
Derived && | ip_blocker (std::shared_ptr< typename Traits::ip_blocker_t > blocker) && |
Setter for IP-blocker. | |
const std::shared_ptr< typename Traits::ip_blocker_t > & | ip_blocker () const noexcept |
Get reference to IP-blocker. | |
void | ensure_valid_ip_blocker () |
Internal method for checking presence of IP-blocker object. | |
Derived & | acceptor_post_bind_hook (acceptor_post_bind_hook_t hook) & |
A setter for post-bind callback. | |
Derived && | acceptor_post_bind_hook (acceptor_post_bind_hook_t hook) && |
A setter for post-bind callback. | |
acceptor_post_bind_hook_t | giveaway_acceptor_post_bind_hook () |
A getter for post-bind callback. | |
const incoming_http_msg_limits_t & | incoming_http_msg_limits () const noexcept |
Getter of optional limits for incoming HTTP messages. | |
Derived & | incoming_http_msg_limits (const incoming_http_msg_limits_t &limits) &noexcept |
Setter of optional limits for incoming HTTP messages. | |
Derived && | incoming_http_msg_limits (const incoming_http_msg_limits_t &limits) &&noexcept |
Setter of optional limits for incoming HTTP messages. | |
Derived & | max_parallel_connections (std::size_t value) &noexcept |
Setter for connection count limit. | |
Derived && | max_parallel_connections (std::size_t value) &&noexcept |
Setter for connection count limit. | |
std::size_t | max_parallel_connections () const noexcept |
Derived & | port (std::uint16_t p) & |
Server endpoint. | |
Derived && | port (std::uint16_t p) && |
std::uint16_t | port () const |
Derived & | protocol (asio_ns::ip::tcp p) & |
Derived && | protocol (asio_ns::ip::tcp p) && |
asio_ns::ip::tcp | protocol () const |
Derived & | address (std::string addr) & |
Derived && | address (std::string addr) && |
Derived & | address (asio_ns::ip::address addr) & |
Derived && | address (asio_ns::ip::address addr) && |
const details::address_variant_t & | address () const |
Derived & | read_next_http_message_timelimit (std::chrono::steady_clock::duration d) & |
} | |
Derived && | read_next_http_message_timelimit (std::chrono::steady_clock::duration d) && |
std::chrono::steady_clock::duration | read_next_http_message_timelimit () const |
Derived & | write_http_response_timelimit (std::chrono::steady_clock::duration d) & |
A period of time wait for response to be written to socket. | |
Derived && | write_http_response_timelimit (std::chrono::steady_clock::duration d) && |
std::chrono::steady_clock::duration | write_http_response_timelimit () const |
Derived & | handle_request_timeout (std::chrono::steady_clock::duration d) & |
A period of time that is given for a handler to create response. | |
Derived && | handle_request_timeout (std::chrono::steady_clock::duration d) && |
std::chrono::steady_clock::duration | handle_request_timeout () const |
Derived & | max_pipelined_requests (std::size_t mpr) & |
Max pipelined requests able to receive on single connection. | |
Derived && | max_pipelined_requests (std::size_t mpr) && |
std::size_t | max_pipelined_requests () const |
Acceptor options setter. | |
Derived & | acceptor_options_setter (acceptor_options_setter_t aos) & |
Derived && | acceptor_options_setter (acceptor_options_setter_t aos) && |
std::unique_ptr< acceptor_options_setter_t > | acceptor_options_setter () |
Socket options setter. | |
Derived & | socket_options_setter (socket_options_setter_t sos) & |
Derived && | socket_options_setter (socket_options_setter_t sos) && |
std::unique_ptr< socket_options_setter_t > | socket_options_setter () |
Derived & | concurrent_accepts_count (std::size_t n) & |
Max number of running concurrent accepts. | |
Derived && | concurrent_accepts_count (std::size_t n) && |
std::size_t | concurrent_accepts_count () const |
Derived & | separate_accept_and_create_connect (bool do_separate) &noexcept |
Do separate an accept operation and connection instantiation. | |
Derived && | separate_accept_and_create_connect (bool do_separate) &&noexcept |
bool | separate_accept_and_create_connect () const noexcept |
Cleanup function. | |
template<typename Func > | |
Derived & | cleanup_func (Func &&func) & |
template<typename Func > | |
Derived && | cleanup_func (Func &&func) && |
cleanup_functor_t | giveaway_cleanup_func () |
![]() | |
socket_type_dependent_settings_t () noexcept=default | |
socket_type_dependent_settings_t (const socket_type_dependent_settings_t &) noexcept=default | |
socket_type_dependent_settings_t (socket_type_dependent_settings_t &&) noexcept=default | |
socket_type_dependent_settings_t & | operator= (const socket_type_dependent_settings_t &) noexcept=default |
socket_type_dependent_settings_t & | operator= (socket_type_dependent_settings_t &&) noexcept=delete |
Private Types | |
using | base_type_t |
using | max_parallel_connections_holder_base_t |
Private Member Functions | |
Derived & | reference_to_derived () |
template<typename Target , typename... Params> | |
Derived & | set_unique_instance (std::unique_ptr< Target > &t, Params &&... params) |
template<typename Target , typename... Params> | |
Derived & | set_shared_instance (std::shared_ptr< Target > &t, Params &&... params) |
Private Attributes | |
std::size_t | m_buffer_size { 4 * 1024 } |
Size of buffer for io operations. | |
std::size_t | m_max_pipelined_requests { 1 } |
Max pipelined requests to receive on single connection. | |
std::unique_ptr< request_handler_t > | m_request_handler |
Request handler. | |
std::unique_ptr< timer_factory_t > | m_timer_factory |
Timers factory. | |
std::unique_ptr< logger_t > | m_logger |
Logger. | |
std::unique_ptr< acceptor_options_setter_t > | m_acceptor_options_setter |
Acceptor options setter. | |
acceptor_post_bind_hook_t | m_acceptor_post_bind_hook |
A hook to be called just after a successful call to bind for acceptor. | |
std::unique_ptr< socket_options_setter_t > | m_socket_options_setter |
Socket options setter. | |
std::size_t | m_concurrent_accepts_count { 1 } |
bool | m_separate_accept_and_create_connect { false } |
Do separate an accept operation and connection instantiation. | |
cleanup_functor_t | m_cleanup_functor |
Optional cleanup functor. | |
incoming_http_msg_limits_t | m_incoming_http_msg_limits |
Limits for incoming HTTP messages. | |
extra_data_factory_handle_t | m_extra_data_factory |
User-data-factory for server. | |
std::uint16_t | m_port |
Server endpoint. | |
asio_ns::ip::tcp | m_protocol |
details::address_variant_t | m_address |
std::chrono::steady_clock::duration | m_read_next_http_message_timelimit { std::chrono::seconds( 60 ) } |
Operations timeouts. | |
std::chrono::steady_clock::duration | m_write_http_response_timelimit { std::chrono::seconds( 5 ) } |
std::chrono::steady_clock::duration | m_handle_request_timeout { std::chrono::seconds( 10 ) } |
Static Private Attributes | |
static constexpr bool | has_actual_max_parallel_connections |
using | request_handler_t = request_handler_type_from_traits_t< Traits > |
Request handler. | |
Derived & | request_handler (std::unique_ptr< request_handler_t > handler) & |
template<typename... Params> | |
Derived & | request_handler (Params &&... params) & |
template<typename... Params> | |
Derived && | request_handler (Params &&... params) && |
std::unique_ptr< request_handler_t > | request_handler () |
Timers manager. | |
using | timer_manager_t = typename Traits::timer_manager_t |
Short alias for timer_manager type. | |
using | timer_factory_t = typename timer_manager_t::factory_t |
Short alias for type of a factory that creates instances of timer_manager. | |
template<typename... Params> | |
Derived & | timer_manager (Params &&... params) & |
Creates a factory object that will be used for creation of an actual timer_manager instance. | |
template<typename... Params> | |
Derived && | timer_manager (Params &&... params) && |
Creates a factory object that will be used for creation of an actual timer_manager instance. | |
std::unique_ptr< timer_factory_t > | timer_factory () |
Logger. | |
using | logger_t = typename Traits::logger_t |
template<typename... Params> | |
Derived & | logger (Params &&... params) & |
template<typename... Params> | |
Derived && | logger (Params &&... params) && |
std::unique_ptr< logger_t > | logger () |
User-data factory. | |
using | extra_data_factory_t = typename Traits::extra_data_factory_t |
The actual type of extra-data-factory. | |
using | extra_data_factory_handle_t = std::shared_ptr< extra_data_factory_t > |
Type of shared-pointer to extra-data-factory. | |
Derived & | extra_data_factory (extra_data_factory_handle_t factory) & |
Setter for extra-data-factory. | |
Derived && | extra_data_factory (extra_data_factory_handle_t factory) && |
Setter for extra-data-factory. | |
extra_data_factory_handle_t | giveaway_extra_data_factory () const noexcept |
Extractor for extra-data-factory. | |
Basic container for http_server settings.
It exists to provide ablity to create various derived classes like server_settings_t, run_on_this_thread_settings_t, run_on_this_thread_settings_t and so on.
Derived | A drived type. Reference to this derived type will be returned by setters. |
Traits | A type with traits for http_server. |
Definition at line 548 of file settings.hpp.
|
private |
Definition at line 556 of file settings.hpp.
using restinio::basic_server_settings_t< Derived, Traits >::extra_data_factory_handle_t = std::shared_ptr< extra_data_factory_t > |
Type of shared-pointer to extra-data-factory.
Definition at line 1594 of file settings.hpp.
using restinio::basic_server_settings_t< Derived, Traits >::extra_data_factory_t = typename Traits::extra_data_factory_t |
using restinio::basic_server_settings_t< Derived, Traits >::logger_t = typename Traits::logger_t |
Definition at line 950 of file settings.hpp.
|
private |
Definition at line 559 of file settings.hpp.
using restinio::basic_server_settings_t< Derived, Traits >::request_handler_t = request_handler_type_from_traits_t< Traits > |
Request handler.
Definition at line 844 of file settings.hpp.
using restinio::basic_server_settings_t< Derived, Traits >::timer_factory_t = typename timer_manager_t::factory_t |
Short alias for type of a factory that creates instances of timer_manager.
Definition at line 890 of file settings.hpp.
using restinio::basic_server_settings_t< Derived, Traits >::timer_manager_t = typename Traits::timer_manager_t |
Short alias for timer_manager type.
Definition at line 885 of file settings.hpp.
|
inline |
Definition at line 574 of file settings.hpp.
|
inline |
Definition at line 997 of file settings.hpp.
|
inline |
Definition at line 980 of file settings.hpp.
|
inline |
Definition at line 991 of file settings.hpp.
|
inline |
A setter for post-bind callback.
Usage example:
Definition at line 1384 of file settings.hpp.
|
inline |
A setter for post-bind callback.
Usage example:
Definition at line 1413 of file settings.hpp.
|
inline |
Definition at line 716 of file settings.hpp.
|
inline |
Sets the IP address for a server in binary form.
Usage example:
Definition at line 687 of file settings.hpp.
|
inline |
Sets the IP address for a server in binary form.
Usage example:
Definition at line 709 of file settings.hpp.
|
inline |
Sets the IP address for a server in textual form.
Usage example:
Definition at line 642 of file settings.hpp.
|
inline |
Sets the IP address for a server in textual form.
Usage example:
Definition at line 662 of file settings.hpp.
|
inline |
Definition at line 742 of file settings.hpp.
|
inline |
Size of buffer for io operations.
It limits a size of chunk that can be read from socket in a single read operattion (async read). {
Definition at line 729 of file settings.hpp.
|
inline |
Definition at line 736 of file settings.hpp.
|
inline |
Definition at line 1100 of file settings.hpp.
|
inline |
Definition at line 1108 of file settings.hpp.
|
inline |
Definition at line 1060 of file settings.hpp.
|
inline |
Max number of running concurrent accepts.
When running server on N threads then up to N accepts can be handled concurrently.
Definition at line 1040 of file settings.hpp.
|
inline |
Definition at line 1054 of file settings.hpp.
|
inlinenoexcept |
Get reference to connection state listener.
Definition at line 1218 of file settings.hpp.
|
inline |
Setter for connection state listener.
Definition at line 1158 of file settings.hpp.
|
inline |
Setter for connection state listener.
Definition at line 1202 of file settings.hpp.
|
inline |
Internal method for checking presence of state listener object.
If a user specifies custom state listener type but doesn't set a pointer to listener object that method throws an exception.
Definition at line 1238 of file settings.hpp.
|
inline |
Internal method for checking presence of IP-blocker object.
If a user specifies custom IP-blocker type but doesn't set a pointer to blocker object that method throws an exception.
Definition at line 1354 of file settings.hpp.
|
inline |
Setter for extra-data-factory.
Usage example:
Definition at line 1630 of file settings.hpp.
|
inline |
Setter for extra-data-factory.
Usage example:
Definition at line 1670 of file settings.hpp.
|
inline |
A getter for post-bind callback.
Definition at line 1430 of file settings.hpp.
|
inline |
Definition at line 1121 of file settings.hpp.
|
inlinenoexcept |
|
inline |
Definition at line 813 of file settings.hpp.
|
inline |
A period of time that is given for a handler to create response.
Definition at line 800 of file settings.hpp.
|
inline |
Definition at line 807 of file settings.hpp.
|
inlinenoexcept |
Getter of optional limits for incoming HTTP messages.
In v.0.6.12 if the limits for incoming HTTP messages are not set explicitely then a defaultly constructed instance of incoming_http_msg_limits_t is used. This means the absence of any limits.
But if the limits were set by using appropriate setters then a reference to an instance with user-defined limits is returned.
Definition at line 1450 of file settings.hpp.
|
inlinenoexcept |
Setter of optional limits for incoming HTTP messages.
Usage example:
Definition at line 1508 of file settings.hpp.
|
inlinenoexcept |
Setter of optional limits for incoming HTTP messages.
Usage example:
Definition at line 1478 of file settings.hpp.
|
inlinenoexcept |
Get reference to IP-blocker.
Definition at line 1335 of file settings.hpp.
|
inline |
Setter for IP-blocker.
Definition at line 1275 of file settings.hpp.
|
inline |
Setter for IP-blocker.
Definition at line 1320 of file settings.hpp.
|
inline |
Definition at line 969 of file settings.hpp.
|
inline |
Definition at line 954 of file settings.hpp.
|
inline |
Definition at line 963 of file settings.hpp.
|
inlinenoexcept |
Definition at line 494 of file settings.hpp.
|
inlinenoexcept |
Setter for connection count limit.
Usage example:
Definition at line 1574 of file settings.hpp.
|
inlinenoexcept |
Setter for connection count limit.
Usage example:
Definition at line 1539 of file settings.hpp.
|
inline |
Definition at line 835 of file settings.hpp.
|
inline |
Max pipelined requests able to receive on single connection.
Definition at line 822 of file settings.hpp.
|
inline |
Definition at line 829 of file settings.hpp.
|
inline |
Definition at line 599 of file settings.hpp.
|
inline |
Server endpoint.
Definition at line 585 of file settings.hpp.
|
inline |
Definition at line 592 of file settings.hpp.
|
inline |
Definition at line 619 of file settings.hpp.
|
inline |
Definition at line 605 of file settings.hpp.
|
inline |
Definition at line 612 of file settings.hpp.
|
inline |
Definition at line 769 of file settings.hpp.
|
inline |
}
A period for holding connection before completely receiving new http-request. Starts counting since connection is establised or a previous request was responsed.
Generaly it defines timeout for keep-alive connections.
Definition at line 756 of file settings.hpp.
|
inline |
Definition at line 763 of file settings.hpp.
|
inlineprivate |
Definition at line 1694 of file settings.hpp.
|
inline |
Definition at line 871 of file settings.hpp.
|
inline |
Definition at line 855 of file settings.hpp.
|
inline |
Definition at line 865 of file settings.hpp.
|
inline |
Definition at line 847 of file settings.hpp.
|
inlinenoexcept |
Definition at line 1090 of file settings.hpp.
|
inlinenoexcept |
Definition at line 1084 of file settings.hpp.
|
inlinenoexcept |
Do separate an accept operation and connection instantiation.
For the cases when a lot of connection can be fired by clients in a short time interval, it is vital to accept connections and initiate new accept operations as quick as possible. So creating connection instance that involves allocations and initialization can be done in a context that is independent to acceptors one.
Definition at line 1077 of file settings.hpp.
|
inlineprivate |
Definition at line 1712 of file settings.hpp.
|
inlineprivate |
Definition at line 1701 of file settings.hpp.
|
inline |
Definition at line 1025 of file settings.hpp.
|
inline |
Definition at line 1008 of file settings.hpp.
|
inline |
Definition at line 1019 of file settings.hpp.
|
inline |
Definition at line 940 of file settings.hpp.
|
inline |
Creates a factory object that will be used for creation of an actual timer_manager instance.
An instance of Traits::timer_manager_t::factory_t is created dynamically. All params are passed to std::make_unique call and will be forwarded to the constructor of timer_factory_t.
Usage example:
Definition at line 918 of file settings.hpp.
|
inline |
Creates a factory object that will be used for creation of an actual timer_manager instance.
For more information and usage example see the documentation for another overload.
Definition at line 934 of file settings.hpp.
|
inline |
Definition at line 791 of file settings.hpp.
|
inline |
A period of time wait for response to be written to socket.
Definition at line 778 of file settings.hpp.
|
inline |
Definition at line 785 of file settings.hpp.
|
staticconstexprprivate |
Definition at line 482 of file settings.hpp.
|
private |
Acceptor options setter.
Definition at line 1760 of file settings.hpp.
|
private |
A hook to be called just after a successful call to bind for acceptor.
An empty lambda is used by default.
Definition at line 1768 of file settings.hpp.
|
private |
Definition at line 1729 of file settings.hpp.
|
private |
Size of buffer for io operations.
Definition at line 1733 of file settings.hpp.
|
private |
Optional cleanup functor.
Definition at line 1781 of file settings.hpp.
|
private |
Definition at line 1775 of file settings.hpp.
|
private |
|
private |
Definition at line 1744 of file settings.hpp.
|
private |
|
private |
Logger.
Definition at line 1757 of file settings.hpp.
|
private |
Max pipelined requests to receive on single connection.
Definition at line 1748 of file settings.hpp.
|
private |
Server endpoint.
Definition at line 1723 of file settings.hpp.
|
private |
Definition at line 1724 of file settings.hpp.
|
private |
Operations timeouts.
Definition at line 1738 of file settings.hpp.
|
private |
Request handler.
Definition at line 1751 of file settings.hpp.
|
private |
Do separate an accept operation and connection instantiation.
Definition at line 1778 of file settings.hpp.
|
private |
Socket options setter.
Definition at line 1773 of file settings.hpp.
|
private |
Timers factory.
Definition at line 1754 of file settings.hpp.
|
private |
Definition at line 1741 of file settings.hpp.