2
3
6
7
11#include <restinio/compiler_features.hpp>
13#include <restinio/exception.hpp>
14#include <restinio/http_headers.hpp>
15#include <restinio/message_builders.hpp>
16#include <restinio/chunked_input_info.hpp>
17#include <restinio/impl/connection_base.hpp>
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53template<
typename Extra_Data >
70
71
72
73
74
75
76
80
81
82
88 new(buffer.get())
data_t{};
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118template<
typename Extra_Data >
127 new(buffer.get())
data_t{};
131template<
typename Extra_Data >
137template<
typename Extra_Data >
145
146
147
148
149
150
151
152
153
154template<
typename Extra_Data >
160 template<
typename Factory >
169 get_ptr()->~Extra_Data();
179 reinterpret_cast<Extra_Data *>(
m_data.data()) );
189 reinterpret_cast<
const Extra_Data *>(
m_data.data()) );
201
202
203
204
205
206
207template<
typename Extra_Data >
211 template<
typename UD >
218
219
220
221 template<
typename Extra_Data_Factory >
224 http_request_header_t header,
228 Extra_Data_Factory & extra_data_factory )
242
243
244 template<
typename Extra_Data_Factory >
247 http_request_header_t header,
249 chunked_input_info_unique_ptr_t chunked_input_info,
252 Extra_Data_Factory & extra_data_factory )
264 const http_request_header_t &
283 return response_builder_t< Output >{
285 std::move( m_connection ),
287 m_header.should_keep_alive() };
301
302
303
304
305
306
310 return m_chunked_input_info.get();
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
417
418
419
420
421
431
432
433
434
435
439template<
typename Extra_Data >
445 o <<
"{req_id: " << req.request_id() <<
", "
446 "conn_id: " << req.connection_id() <<
", "
447 "path: " << req.header().path() <<
", "
448 "query: " << req.header().query() <<
"}";
454template<
typename Extra_Data >
460
461
462
463
468
469
470
471
484template<
typename Extra_Data >
488 return req.m_connection;
Exception class for all exceptions thrown by RESTinio.
exception_t(const char *err)
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.
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
Get connection id.
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
friend impl::connection_handle_t & impl::access_req_connection(generic_request_t< UD > &) noexcept
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.
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.
http_status_line_t status_ok()
request_handling_status_t
Request handling status.
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.
Tag type for RESTinio controlled output response builder.