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. More... | |
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. More... | |
Derived && | connection_state_listener (std::shared_ptr< typename Traits::connection_state_listener_t > listener) && |
Setter for connection state listener. More... | |
const std::shared_ptr< typename Traits::connection_state_listener_t > & | connection_state_listener () const noexcept |
Get reference to connection state listener. More... | |
void | ensure_valid_connection_state_listener () |
Internal method for checking presence of state listener object. More... | |
Derived & | ip_blocker (std::shared_ptr< typename Traits::ip_blocker_t > blocker) & |
Setter for IP-blocker. More... | |
Derived && | ip_blocker (std::shared_ptr< typename Traits::ip_blocker_t > blocker) && |
Setter for IP-blocker. More... | |
const std::shared_ptr< typename Traits::ip_blocker_t > & | ip_blocker () const noexcept |
Get reference to IP-blocker. More... | |
void | ensure_valid_ip_blocker () |
Internal method for checking presence of IP-blocker object. More... | |
Derived & | acceptor_post_bind_hook (acceptor_post_bind_hook_t hook) & |
A setter for post-bind callback. More... | |
Derived && | acceptor_post_bind_hook (acceptor_post_bind_hook_t hook) && |
A setter for post-bind callback. More... | |
RESTINIO_NODISCARD acceptor_post_bind_hook_t | giveaway_acceptor_post_bind_hook () |
A getter for post-bind callback. More... | |
RESTINIO_NODISCARD const incoming_http_msg_limits_t & | incoming_http_msg_limits () const noexcept |
Getter of optional limits for incoming HTTP messages. More... | |
Derived & | incoming_http_msg_limits (const incoming_http_msg_limits_t &limits) &noexcept |
Setter of optional limits for incoming HTTP messages. More... | |
Derived && | incoming_http_msg_limits (const incoming_http_msg_limits_t &limits) &&noexcept |
Setter of optional limits for incoming HTTP messages. More... | |
Derived & | max_parallel_connections (std::size_t value) &noexcept |
Setter for connection count limit. More... | |
Derived && | max_parallel_connections (std::size_t value) &&noexcept |
Setter for connection count limit. More... | |
std::size_t | max_parallel_connections () const noexcept |
Derived & | port (std::uint16_t p) & |
Server endpoint. More... | |
Derived && | port (std::uint16_t p) && |
RESTINIO_NODISCARD std::uint16_t | port () const |
Derived & | protocol (asio_ns::ip::tcp p) & |
Derived && | protocol (asio_ns::ip::tcp p) && |
RESTINIO_NODISCARD 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) && |
RESTINIO_NODISCARD const details::address_variant_t & | address () const |
Derived & | read_next_http_message_timelimit (std::chrono::steady_clock::duration d) & |
} More... | |
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. More... | |
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. More... | |
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. More... | |
Derived && | max_pipelined_requests (std::size_t mpr) && |
std::size_t | max_pipelined_requests () const |
Derived & | acceptor_options_setter (acceptor_options_setter_t aos) & |
Acceptor options setter. More... | |
Derived && | acceptor_options_setter (acceptor_options_setter_t aos) && |
std::unique_ptr< acceptor_options_setter_t > | acceptor_options_setter () |
Derived & | socket_options_setter (socket_options_setter_t sos) & |
Socket options setter. More... | |
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. More... | |
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. More... | |
Derived && | separate_accept_and_create_connect (bool do_separate) &&noexcept |
bool | separate_accept_and_create_connect () const noexcept |
template<typename Func > | |
Derived & | cleanup_func (Func &&func) & |
Cleanup function. More... | |
template<typename Func > | |
Derived && | cleanup_func (Func &&func) && |
RESTINIO_NODISCARD 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 = socket_type_dependent_settings_t< Derived, typename Traits::stream_socket_t > |
using | max_parallel_connections_holder_base_t = details::max_parallel_connections_holder_t< typename connection_count_limit_types< Traits >::limiter_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. More... | |
std::size_t | m_max_pipelined_requests { 1 } |
Max pipelined requests to receive on single connection. More... | |
std::unique_ptr< request_handler_t > | m_request_handler |
Request handler. More... | |
std::unique_ptr< timer_factory_t > | m_timer_factory |
Timers factory. More... | |
std::unique_ptr< logger_t > | m_logger |
Logger. More... | |
std::unique_ptr< acceptor_options_setter_t > | m_acceptor_options_setter |
Acceptor options setter. More... | |
acceptor_post_bind_hook_t | m_acceptor_post_bind_hook |
A hook to be called just after a successful call to bind for acceptor. More... | |
std::unique_ptr< socket_options_setter_t > | m_socket_options_setter |
Socket options setter. More... | |
std::size_t | m_concurrent_accepts_count { 1 } |
bool | m_separate_accept_and_create_connect { false } |
Do separate an accept operation and connection instantiation. More... | |
cleanup_functor_t | m_cleanup_functor |
Optional cleanup functor. More... | |
incoming_http_msg_limits_t | m_incoming_http_msg_limits |
Limits for incoming HTTP messages. More... | |
extra_data_factory_handle_t | m_extra_data_factory |
User-data-factory for server. More... | |
std::uint16_t | m_port |
Server endpoint. More... | |
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. More... | |
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. More... | |
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 () |
using | timer_manager_t = typename Traits::timer_manager_t |
Timers manager. More... | |
using | timer_factory_t = typename timer_manager_t::factory_t |
template<typename... Params> | |
Derived & | timer_manager (Params &&... params) & |
template<typename... Params> | |
Derived && | timer_manager (Params &&... params) && |
std::unique_ptr< timer_factory_t > | timer_factory () |
using | logger_t = typename Traits::logger_t |
Logger. More... | |
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. More... | |
using | extra_data_factory_handle_t = std::shared_ptr< extra_data_factory_t > |
Type of shared-pointer to extra-data-factory. More... | |
Derived & | extra_data_factory (extra_data_factory_handle_t factory) & |
Setter for extra-data-factory. More... | |
Derived && | extra_data_factory (extra_data_factory_handle_t factory) && |
Setter for extra-data-factory. More... | |
RESTINIO_NODISCARD extra_data_factory_handle_t | giveaway_extra_data_factory () const noexcept |
Extractor for extra-data-factory. More... | |
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 549 of file settings.hpp.
|
private |
Definition at line 557 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 1556 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 |
Logger.
Definition at line 913 of file settings.hpp.
|
private |
Definition at line 560 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 845 of file settings.hpp.
using restinio::basic_server_settings_t< Derived, Traits >::timer_factory_t = typename timer_manager_t::factory_t |
Definition at line 884 of file settings.hpp.
using restinio::basic_server_settings_t< Derived, Traits >::timer_manager_t = typename Traits::timer_manager_t |
Timers manager.
Definition at line 883 of file settings.hpp.
|
inline |
Definition at line 575 of file settings.hpp.
|
inline |
Definition at line 960 of file settings.hpp.
|
inline |
Acceptor options setter.
Definition at line 943 of file settings.hpp.
|
inline |
Definition at line 954 of file settings.hpp.
|
inline |
A setter for post-bind callback.
Usage example:
Definition at line 1346 of file settings.hpp.
|
inline |
A setter for post-bind callback.
Usage example:
Definition at line 1375 of file settings.hpp.
|
inline |
Definition at line 717 of file settings.hpp.
|
inline |
Sets the IP address for a server in binary form.
Usage example:
Definition at line 688 of file settings.hpp.
|
inline |
Sets the IP address for a server in binary form.
Usage example:
Definition at line 710 of file settings.hpp.
|
inline |
Sets the IP address for a server in textual form.
Usage example:
Definition at line 643 of file settings.hpp.
|
inline |
Sets the IP address for a server in textual form.
Usage example:
Definition at line 663 of file settings.hpp.
|
inline |
Definition at line 743 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 730 of file settings.hpp.
|
inline |
Definition at line 737 of file settings.hpp.
|
inline |
Cleanup function.
Definition at line 1062 of file settings.hpp.
|
inline |
Definition at line 1070 of file settings.hpp.
|
inline |
Definition at line 1022 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 1003 of file settings.hpp.
|
inline |
Definition at line 1016 of file settings.hpp.
|
inlinenoexcept |
Get reference to connection state listener.
Definition at line 1180 of file settings.hpp.
|
inline |
Setter for connection state listener.
Definition at line 1120 of file settings.hpp.
|
inline |
Setter for connection state listener.
Definition at line 1164 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 1200 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 1316 of file settings.hpp.
|
inline |
Setter for extra-data-factory.
Usage example:
Definition at line 1592 of file settings.hpp.
|
inline |
Setter for extra-data-factory.
Usage example:
Definition at line 1632 of file settings.hpp.
|
inline |
A getter for post-bind callback.
Definition at line 1392 of file settings.hpp.
|
inline |
Definition at line 1083 of file settings.hpp.
|
inlinenoexcept |
|
inline |
Definition at line 814 of file settings.hpp.
|
inline |
A period of time that is given for a handler to create response.
Definition at line 801 of file settings.hpp.
|
inline |
Definition at line 808 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 1412 of file settings.hpp.
|
inlinenoexcept |
Setter of optional limits for incoming HTTP messages.
Usage example:
Definition at line 1470 of file settings.hpp.
|
inlinenoexcept |
Setter of optional limits for incoming HTTP messages.
Usage example:
Definition at line 1440 of file settings.hpp.
|
inlinenoexcept |
Get reference to IP-blocker.
Definition at line 1297 of file settings.hpp.
|
inline |
Setter for IP-blocker.
Definition at line 1237 of file settings.hpp.
|
inline |
Setter for IP-blocker.
Definition at line 1282 of file settings.hpp.
|
inline |
Definition at line 932 of file settings.hpp.
|
inline |
Definition at line 917 of file settings.hpp.
|
inline |
Definition at line 926 of file settings.hpp.
|
inlinenoexcept |
Definition at line 495 of file settings.hpp.
|
inlinenoexcept |
Setter for connection count limit.
Usage example:
Definition at line 1536 of file settings.hpp.
|
inlinenoexcept |
Setter for connection count limit.
Usage example:
Definition at line 1501 of file settings.hpp.
|
inline |
Definition at line 836 of file settings.hpp.
|
inline |
Max pipelined requests able to receive on single connection.
Definition at line 823 of file settings.hpp.
|
inline |
Definition at line 830 of file settings.hpp.
|
inline |
Definition at line 600 of file settings.hpp.
|
inline |
Server endpoint.
Definition at line 586 of file settings.hpp.
|
inline |
Definition at line 593 of file settings.hpp.
|
inline |
Definition at line 620 of file settings.hpp.
|
inline |
Definition at line 606 of file settings.hpp.
|
inline |
Definition at line 613 of file settings.hpp.
|
inline |
Definition at line 770 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 757 of file settings.hpp.
|
inline |
Definition at line 764 of file settings.hpp.
|
inlineprivate |
Definition at line 1656 of file settings.hpp.
|
inline |
Definition at line 872 of file settings.hpp.
|
inline |
Definition at line 856 of file settings.hpp.
|
inline |
Definition at line 866 of file settings.hpp.
|
inline |
Definition at line 848 of file settings.hpp.
|
inlinenoexcept |
Definition at line 1052 of file settings.hpp.
|
inlinenoexcept |
Definition at line 1046 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 1039 of file settings.hpp.
|
inlineprivate |
Definition at line 1674 of file settings.hpp.
|
inlineprivate |
Definition at line 1663 of file settings.hpp.
|
inline |
Definition at line 988 of file settings.hpp.
|
inline |
Socket options setter.
Definition at line 971 of file settings.hpp.
|
inline |
Definition at line 982 of file settings.hpp.
|
inline |
Definition at line 903 of file settings.hpp.
|
inline |
Definition at line 888 of file settings.hpp.
|
inline |
Definition at line 897 of file settings.hpp.
|
inline |
Definition at line 792 of file settings.hpp.
|
inline |
A period of time wait for response to be written to socket.
Definition at line 779 of file settings.hpp.
|
inline |
Definition at line 786 of file settings.hpp.
|
staticconstexprprivate |
Definition at line 483 of file settings.hpp.
|
private |
Acceptor options setter.
Definition at line 1722 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 1730 of file settings.hpp.
|
private |
Definition at line 1691 of file settings.hpp.
|
private |
Size of buffer for io operations.
Definition at line 1695 of file settings.hpp.
|
private |
Optional cleanup functor.
Definition at line 1743 of file settings.hpp.
|
private |
Definition at line 1737 of file settings.hpp.
|
private |
|
private |
Definition at line 1706 of file settings.hpp.
|
private |
|
private |
Logger.
Definition at line 1719 of file settings.hpp.
|
private |
Max pipelined requests to receive on single connection.
Definition at line 1710 of file settings.hpp.
|
private |
Server endpoint.
Definition at line 1685 of file settings.hpp.
|
private |
Definition at line 1686 of file settings.hpp.
|
private |
Operations timeouts.
Definition at line 1700 of file settings.hpp.
|
private |
Request handler.
Definition at line 1713 of file settings.hpp.
|
private |
Do separate an accept operation and connection instantiation.
Definition at line 1740 of file settings.hpp.
|
private |
Socket options setter.
Definition at line 1735 of file settings.hpp.
|
private |
Timers factory.
Definition at line 1716 of file settings.hpp.
|
private |
Definition at line 1703 of file settings.hpp.