52template<
typename Extra_Data >
87 new(buffer.get())
data_t{};
117template<
typename Extra_Data >
124 noexcept(
noexcept(
new(buffer.get())
data_t{}) )
126 new(buffer.get())
data_t{};
130template<
typename Extra_Data >
131class generic_request_t;
136template<
typename Extra_Data >
153template<
typename Extra_Data >
156 alignas(Extra_Data) std::array<
char,
sizeof(Extra_Data)>
m_data;
159 template<
typename Factory >
178 reinterpret_cast<Extra_Data *
>(
m_data.data()) );
188 reinterpret_cast<const Extra_Data *
>(
m_data.data()) );
206template<
typename Extra_Data >
208 :
public std::enable_shared_from_this< generic_request_t< Extra_Data > >
210 template<
typename UD >
220 template<
typename Extra_Data_Factory >
227 Extra_Data_Factory & extra_data_factory )
233 std::move( connection ),
243 template<
typename Extra_Data_Factory >
251 Extra_Data_Factory & extra_data_factory )
276 template <
typename Output = restinio_controlled_output_t >
438template<
typename Extra_Data >
453template<
typename Extra_Data >
455 std::shared_ptr< generic_request_t< Extra_Data > >;
483template<
typename Extra_Data >
487 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.
Detection of compiler version and absence of various features.
#define RESTINIO_STD_LAUNDER(x)
#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.