50template<
typename Extra_Data >
85 new(buffer.get())
data_t{};
115template<
typename Extra_Data >
122 noexcept(
noexcept(
new(buffer.get())
data_t{}) )
124 new(buffer.get())
data_t{};
128template<
typename Extra_Data >
129class generic_request_t;
134template<
typename Extra_Data >
151template<
typename Extra_Data >
154 alignas(Extra_Data) std::array<
char,
sizeof(Extra_Data)>
m_data;
157 template<
typename Factory >
173 return reinterpret_cast<Extra_Data *
>(
m_data.data());
180 return reinterpret_cast<const Extra_Data *
>(
m_data.data());
198template<
typename Extra_Data >
200 :
public std::enable_shared_from_this< generic_request_t< Extra_Data > >
202 template<
typename UD >
212 template<
typename Extra_Data_Factory >
219 Extra_Data_Factory & extra_data_factory )
235 template<
typename Extra_Data_Factory >
243 Extra_Data_Factory & extra_data_factory )
268 template <
typename Output = restinio_controlled_output_t >
430template<
typename Extra_Data >
445template<
typename Extra_Data >
447 std::shared_ptr< generic_request_t< Extra_Data > >;
475template<
typename Extra_Data >
479 return req.m_connection;
Exception class for all exceptions thrown by RESTinio.
const http_request_header_t & header() const noexcept
Get request header.
const chunked_input_info_unique_ptr_t m_chunked_input_info
Optional description for chunked-encoding.
const std::string & body() const noexcept
Get request body.
auto request_id() const noexcept
Get request id.
generic_request_t(request_id_t request_id, http_request_header_t header, std::string body, impl::connection_handle_t connection, endpoint_t remote_endpoint, Extra_Data_Factory &extra_data_factory)
Old-format initializing constructor.
generic_request_t(request_id_t request_id, http_request_header_t header, std::string body, chunked_input_info_unique_ptr_t chunked_input_info, impl::connection_handle_t connection, endpoint_t remote_endpoint, Extra_Data_Factory &extra_data_factory)
New-format initializing constructor.
const endpoint_t & remote_endpoint() const noexcept
Get the remote endpoint of the underlying connection.
impl::generic_request_extra_data_holder_t< Extra_Data > m_extra_data_holder
An instance of extra-data that is incorporated into a request object.
RESTINIO_NODISCARD Extra_Data & extra_data() noexcept
Get writeable access to extra-data object incorporated into a request object.
connection_id_t connection_id() const noexcept
Get connection id.
RESTINIO_NODISCARD const Extra_Data & extra_data() const noexcept
Get readonly access to extra-data object incorporated into a request object.
const endpoint_t m_remote_endpoint
Remote endpoint for underlying connection.
auto create_response(http_status_line_t status_line=status_ok())
nullable_pointer_t< const chunked_input_info_t > chunked_input_info() const noexcept
Get optional info about chunked input.
impl::connection_handle_t m_connection
const http_request_header_t m_header
const request_id_t m_request_id
const connection_id_t m_connection_id
HTTP response header status line.
Forbid arbitrary response_builder_t instantiations.
#define RESTINIO_NODISCARD
connection_handle_t & access_req_connection(generic_request_t< Extra_Data > &) noexcept
std::shared_ptr< connection_base_t > connection_handle_t
Alias for http connection handle.
T * nullable_pointer_t
Type for pointer that can be nullptr.
std::unique_ptr< chunked_input_info_t > chunked_input_info_unique_ptr_t
Alias of unique_ptr for chunked_input_info.
std::shared_ptr< generic_request_t< Extra_Data > > generic_request_handle_t
An alias for shared-pointer to incoming request.
std::ostream & operator<<(std::ostream &o, response_parts_attr_t attr)
unsigned int request_id_t
Request id in scope of single connection.
http_status_line_t status_ok()
request_handling_status_t
Request handling status.
std::function< request_handling_status_t(request_handle_t) > default_request_handler_t
asio_ns::ip::tcp::endpoint endpoint_t
An alias for endpoint type from Asio.
std::shared_ptr< request_t > request_handle_t
An alias for handle for incoming request without additional extra-data.
std::uint64_t connection_id_t
Type for ID of connection.