53template<
typename Extra_Data >
88 new(buffer.get())
data_t{};
118template<
typename Extra_Data >
125 noexcept(
noexcept(
new(buffer.get())
data_t{}) )
127 new(buffer.get())
data_t{};
131template<
typename Extra_Data >
137template<
typename Extra_Data >
154template<
typename Extra_Data >
157 alignas(Extra_Data) std::array<
char,
sizeof(Extra_Data)>
m_data;
160 template<
typename Factory >
179 reinterpret_cast<Extra_Data *
>(
m_data.data()) );
189 reinterpret_cast<const Extra_Data *
>(
m_data.data()) );
207template<
typename Extra_Data >
209 :
public std::enable_shared_from_this< generic_request_t< Extra_Data > >
211 template<
typename UD >
221 template<
typename Extra_Data_Factory >
228 Extra_Data_Factory & extra_data_factory )
234 std::move( connection ),
244 template<
typename Extra_Data_Factory >
252 Extra_Data_Factory & extra_data_factory )
277 template <
typename Output = restinio_controlled_output_t >
439template<
typename Extra_Data >
454template<
typename Extra_Data >
456 std::shared_ptr< generic_request_t< Extra_Data > >;
484template<
typename Extra_Data >
488 return req.m_connection;
Exception class for all exceptions thrown by RESTinio.
const http_request_header_t & header() const noexcept
const chunked_input_info_unique_ptr_t m_chunked_input_info
const std::string & body() const noexcept
auto request_id() const noexcept
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
impl::generic_request_extra_data_holder_t< no_extra_data_factory_t::data_t > m_extra_data_holder
const Extra_Data & extra_data() const noexcept
Get readonly access to extra-data object incorporated into a request object.
connection_id_t connection_id() const noexcept
const endpoint_t m_remote_endpoint
auto create_response(http_status_line_t status_line=status_ok())
nullable_pointer_t< const chunked_input_info_t > chunked_input_info() const noexcept
impl::connection_handle_t m_connection
const http_request_header_t m_header
Extra_Data & extra_data() noexcept
Get writeable access to extra-data object incorporated into a request object.
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.
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.
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.
unsigned int request_id_t
Request id in scope of single connection.
std::shared_ptr< generic_request_t< Extra_Data > > generic_request_handle_t
An alias for shared-pointer to incoming request.
std::shared_ptr< request_t > request_handle_t
An alias for handle for incoming request without additional extra-data.
std::ostream & operator<<(std::ostream &o, response_parts_attr_t attr)
T * nullable_pointer_t
Type for pointer that can be nullptr.
http_status_line_t status_ok()
request_handling_status_t
Request handling status.
std::unique_ptr< chunked_input_info_t > chunked_input_info_unique_ptr_t
Alias of unique_ptr for chunked_input_info.
std::uint64_t connection_id_t
Type for ID of connection.
generic_request_t< no_extra_data_factory_t::data_t > request_t
An alias for incoming request without additional extra-data.