|
RESTinio
|
Context for handling http connections. More...
#include <connection.hpp>
Classes | |
| struct | upgrade_internals_t |
| Internals that are necessary for upgrade. More... | |
Public Types | |
| using | timer_manager_t = typename Traits::timer_manager_t |
| using | timer_guard_t = typename timer_manager_t::timer_guard_t |
| using | request_handler_t = request_handler_type_from_traits_t< Traits > |
| using | generic_request_t = generic_request_type_from_traits_t< Traits > |
| using | logger_t = typename Traits::logger_t |
| using | strand_t = typename Traits::strand_t |
| using | stream_socket_t = typename Traits::stream_socket_t |
| using | lifetime_monitor_t = typename connection_count_limit_types< Traits >::lifetime_monitor_t |
Private Member Functions | |
| void | consume_message () |
| Start (continue) a chain of read-parse-read-... operations. | |
| void | after_read (const asio_ns::error_code &ec, std::size_t length) noexcept |
| Handle read operation result. | |
| void | consume_data (const char *data, std::size_t length) |
| Parse some data. | |
| void | on_request_message_complete () |
| Handle a given request message. | |
| void | handle_upgrade_request () |
| Calls handler for upgrade request. | |
| virtual void | write_response_parts (request_id_t request_id, response_output_flags_t response_output_flags, write_group_t wg) override |
| Write parts for specified request. | |
| void | write_response_parts_impl (request_id_t request_id, response_output_flags_t response_output_flags, write_group_t wg) |
| Write parts for specified request. | |
| void | init_write_if_necessary () |
| void | init_write () |
| Initiate write operation. | |
| void | handle_current_write_ctx () noexcept |
| Start/continue/continue handling output data of current write group. | |
| void | handle_trivial_write_operation (const trivial_write_operation_t &op) |
| Run trivial buffers write operation. | |
| void | handle_file_write_operation (file_write_operation_t &op) |
| Run sendfile write operation. | |
| void | finish_handling_current_write_ctx () |
| Do post write actions for current write group. | |
| void | handle_nothing_to_write () |
| void | after_write (const asio_ns::error_code &ec) noexcept |
| Handle write response finished. | |
| void | close () noexcept |
| Close connection functions. | |
| template<typename Message_Builder > | |
| void | trigger_error_and_close (Message_Builder msg_builder) noexcept |
| Trigger an error. | |
Private Attributes | |
| stream_socket_t | m_socket |
| Connection. | |
| connection_settings_handle_t< Traits > | m_settings |
| Common paramaters of a connection. | |
| const endpoint_t | m_remote_endpoint |
| Remote endpoint for this connection. | |
| connection_input_t | m_input |
| Input routine. | |
| write_group_output_ctx_t | m_write_output_ctx |
| Write to socket operation context. | |
| bool | m_init_read_after_this_write { false } |
| response_coordinator_t | m_response_coordinator |
| Response coordinator. | |
| request_handler_t & | m_request_handler |
| Request handler. | |
| logger_t & | m_logger |
| Logger for operation. | |
| lifetime_monitor_t | m_lifetime_monitor |
| Monitor of the connection lifetime. | |
| using | timout_cb_t = void(connection_t::*)(void) |
| Callback type for timedout operations. | |
| timout_cb_t | m_current_timeout_cb { nullptr } |
| Callback to all if timeout happened. | |
| std::chrono::steady_clock::time_point | m_current_timeout_after |
| Timeout point of a current guarded operation. | |
| timer_guard_t | m_timer_guard |
| Timer guard. | |
| tcp_connection_ctx_weak_handle_t | m_prepared_weak_ctx |
| A prepared weak handle for passing it to timer guard. | |
| virtual void | check_timeout (tcp_connection_ctx_handle_t &self) override |
| Schedules real timedout operations check on the executer of a connection. | |
| void | check_timeout_impl () |
| Check timed out operation. | |
| void | init_next_timeout_checking () |
| Schedule next timeout checking. | |
| void | cancel_timeout_checking () noexcept |
| Stop timout guarding. | |
| void | schedule_operation_timeout_callback (std::chrono::steady_clock::time_point timeout_after, timout_cb_t timout_cb) |
| Helper function to work with timer guard. | |
| void | schedule_operation_timeout_callback (std::chrono::steady_clock::duration timeout, timout_cb_t timout_cb) |
| void | handle_xxx_timeout (const char *operation_name) |
| void | handle_read_timeout () |
| void | guard_read_operation () |
| Statr guard read operation if necessary. | |
| void | handle_request_handling_timeout () |
| void | guard_request_handling_operation () |
| Start guard request handling operation if necessary. | |
| void | handle_write_response_timeout () |
| void | guard_write_operation () |
| Start guard write operation if necessary. | |
| void | handle_sendfile_timeout () |
| void | guard_sendfile_operation (std::chrono::steady_clock::duration timelimit) |
| static connection_t & | cast_to_self (tcp_connection_ctx_base_t &base) |
| Timer to controll operations. | |
Additional Inherited Members | |
Protected Member Functions inherited from restinio::tcp_connection_ctx_base_t | |
| template<typename Derived > | |
| std::shared_ptr< Derived > | shared_from_concrete () |
| Cast self to derived class. | |
Context for handling http connections.
Definition at line 303 of file connection.hpp.
|
private |
Definition at line 307 of file connection.hpp.
|
private |
Definition at line 1061 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::generic_request_t = generic_request_type_from_traits_t< Traits > |
Definition at line 313 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::lifetime_monitor_t = typename connection_count_limit_types<Traits>::lifetime_monitor_t |
Definition at line 317 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::logger_t = typename Traits::logger_t |
Definition at line 314 of file connection.hpp.
|
private |
Definition at line 1059 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::request_handler_t = request_handler_type_from_traits_t< Traits > |
Definition at line 312 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::strand_t = typename Traits::strand_t |
Definition at line 315 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::stream_socket_t = typename Traits::stream_socket_t |
Definition at line 316 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::timer_guard_t = typename timer_manager_t::timer_guard_t |
Definition at line 311 of file connection.hpp.
| using restinio::impl::connection_t< Traits >::timer_manager_t = typename Traits::timer_manager_t |
Definition at line 310 of file connection.hpp.
|
private |
Callback type for timedout operations.
Definition at line 1541 of file connection.hpp.
|
private |
Definition at line 1060 of file connection.hpp.
|
inline |
| conn_id | Connection id. |
| socket | Connection socket. |
| settings | Settings that are common for connections. |
| remote_endpoint | Remote endpoint for that connection. |
| lifetime_monitor | Lifetime monitor to be used for handling connection count. |
Definition at line 320 of file connection.hpp.
|
delete |
|
delete |
|
inlineoverride |
Definition at line 361 of file connection.hpp.
|
inlineprivatenoexcept |
Handle read operation result.
Definition at line 510 of file connection.hpp.
|
inlineprivatenoexcept |
Handle write response finished.
Definition at line 1357 of file connection.hpp.
|
inlineprivatenoexcept |
Stop timout guarding.
Definition at line 1577 of file connection.hpp.
|
inlinestaticprivate |
Timer to controll operations.
Check timeouts for all activities.
Definition at line 1506 of file connection.hpp.
|
inlineoverrideprivatevirtual |
Schedules real timedout operations check on the executer of a connection.
Definition at line 1514 of file connection.hpp.
|
inlineprivate |
Check timed out operation.
Definition at line 1555 of file connection.hpp.
|
inlineprivatenoexcept |
|
inlineprivate |
Parse some data.
Definition at line 579 of file connection.hpp.
|
inlineprivate |
Start (continue) a chain of read-parse-read-... operations.
Definition at line 474 of file connection.hpp.
|
inlineprivate |
Do post write actions for current write group.
Definition at line 1252 of file connection.hpp.
|
inlineprivate |
Statr guard read operation if necessary.
Definition at line 1624 of file connection.hpp.
|
inlineprivate |
Start guard request handling operation if necessary.
Definition at line 1642 of file connection.hpp.
|
inlineprivate |
Definition at line 1674 of file connection.hpp.
|
inlineprivate |
Start guard write operation if necessary.
Definition at line 1660 of file connection.hpp.
|
inlineprivatenoexcept |
Start/continue/continue handling output data of current write group.
This function is a starting point of a loop process of sending data from a given write group. It extracts the next bunch of trivial buffers or a sendfile-runner and starts an appropriate write operation. In data of a given write group finishes, finish_handling_current_write_ctx() is invoked thus breaking the loop.
Definition at line 1076 of file connection.hpp.
|
inlineprivate |
Run sendfile write operation.
Definition at line 1172 of file connection.hpp.
|
inlineprivate |
Definition at line 1311 of file connection.hpp.
|
inlineprivate |
Definition at line 1617 of file connection.hpp.
|
inlineprivate |
Definition at line 1635 of file connection.hpp.
|
inlineprivate |
Definition at line 1668 of file connection.hpp.
|
inlineprivate |
Run trivial buffers write operation.
Definition at line 1109 of file connection.hpp.
|
inlineprivate |
Calls handler for upgrade request.
Request data must be in input context (m_input).
Definition at line 757 of file connection.hpp.
|
inlineprivate |
Definition at line 1653 of file connection.hpp.
|
inlineprivate |
Definition at line 1604 of file connection.hpp.
|
inline |
Definition at line 372 of file connection.hpp.
|
inlineprivate |
Schedule next timeout checking.
Definition at line 1570 of file connection.hpp.
|
inlineprivate |
Initiate write operation.
Definition at line 990 of file connection.hpp.
|
inlineprivate |
Definition at line 978 of file connection.hpp.
|
inline |
Move socket out of connection.
Definition at line 462 of file connection.hpp.
|
inlineprivate |
Handle a given request message.
Definition at line 626 of file connection.hpp.
|
delete |
|
delete |
|
inlineprivate |
Definition at line 1594 of file connection.hpp.
|
inlineprivate |
Helper function to work with timer guard.
Definition at line 1585 of file connection.hpp.
|
inlineprivatenoexcept |
Trigger an error.
Closes the connection and write to log an error message.
Definition at line 1469 of file connection.hpp.
|
inline |
Start reading next htttp-message.
Definition at line 409 of file connection.hpp.
|
inlineoverrideprivatevirtual |
Write parts for specified request.
Run write message on io_context loop if possible.
| request_id | Request id. |
| response_output_flags | Resp output flag. |
| wg | Part of the response data. |
Implements restinio::impl::connection_base_t.
Definition at line 846 of file connection.hpp.
|
inlineprivate |
Write parts for specified request.
| request_id | Request id. |
| response_output_flags | Resp output flag. |
| wg | Part of the response data. |
Definition at line 886 of file connection.hpp.
|
private |
Timeout point of a current guarded operation.
Definition at line 1547 of file connection.hpp.
|
private |
Callback to all if timeout happened.
Definition at line 1544 of file connection.hpp.
|
private |
Definition at line 1496 of file connection.hpp.
|
private |
Input routine.
Definition at line 1490 of file connection.hpp.
|
private |
Monitor of the connection lifetime.
It's required for controlling the count of active parallel connections.
Definition at line 1699 of file connection.hpp.
|
private |
Logger for operation.
Definition at line 1689 of file connection.hpp.
|
private |
A prepared weak handle for passing it to timer guard.
Definition at line 1551 of file connection.hpp.
|
private |
Remote endpoint for this connection.
Definition at line 1487 of file connection.hpp.
|
private |
Request handler.
Definition at line 1686 of file connection.hpp.
|
private |
Response coordinator.
Definition at line 1499 of file connection.hpp.
|
private |
Common paramaters of a connection.
Definition at line 1484 of file connection.hpp.
|
private |
Connection.
Definition at line 1481 of file connection.hpp.
|
private |
Timer guard.
Definition at line 1549 of file connection.hpp.
|
private |
Write to socket operation context.
Definition at line 1493 of file connection.hpp.