mirror of
https://github.com/boostorg/beast.git
synced 2025-07-30 12:57:31 +02:00
Add header aliases
This commit is contained in:
@ -7,6 +7,7 @@ Version 66:
|
|||||||
* Fix unused parameter warning
|
* Fix unused parameter warning
|
||||||
* Handle bad_alloc in parser
|
* Handle bad_alloc in parser
|
||||||
* Tidy up message piecewise ctors
|
* Tidy up message piecewise ctors
|
||||||
|
* Add header aliases
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
[section Message Containers]
|
[section Message Containers]
|
||||||
|
|
||||||
Beast provides a single class template __message__ which models
|
Beast provides a single class template __message__ and some aliases which
|
||||||
HTTP/1 and
|
model HTTP/1 and
|
||||||
[@https://tools.ietf.org/html/rfc7540 HTTP/2]
|
[@https://tools.ietf.org/html/rfc7540 HTTP/2]
|
||||||
messages:
|
messages:
|
||||||
```
|
```
|
||||||
@ -18,6 +18,14 @@ template<
|
|||||||
class Body, // Controls the container and algorithms used for the body
|
class Body, // Controls the container and algorithms used for the body
|
||||||
class Fields = fields> // The type of container to store the fields
|
class Fields = fields> // The type of container to store the fields
|
||||||
class message;
|
class message;
|
||||||
|
|
||||||
|
/// A typical HTTP request
|
||||||
|
template<class Body, class Fields = fields>
|
||||||
|
using request = message<true, Body, Fields>;
|
||||||
|
|
||||||
|
/// A typical HTTP response
|
||||||
|
template<class Body, class Fields = fields>
|
||||||
|
using response = message<false, Body, Fields>;
|
||||||
```
|
```
|
||||||
|
|
||||||
The container offers value semantics including move and copy if supported
|
The container offers value semantics including move and copy if supported
|
||||||
@ -33,13 +41,21 @@ the container. The library comes with a collection of common body types.
|
|||||||
As with fields, user defined body types are possible.
|
As with fields, user defined body types are possible.
|
||||||
|
|
||||||
Sometimes it is desired to only work with a header. Beast provides a single
|
Sometimes it is desired to only work with a header. Beast provides a single
|
||||||
class template __header__ to model HTTP/1 and HTTP/2 headers:
|
class template __header__ and some aliases to model HTTP/1 and HTTP/2 headers:
|
||||||
```
|
```
|
||||||
/// An HTTP header
|
/// An HTTP header
|
||||||
template<
|
template<
|
||||||
bool isRequest, // `true` for requests, `false` for responses
|
bool isRequest, // `true` for requests, `false` for responses
|
||||||
class Fields = fields> // The type of container to store the fields
|
class Fields = fields> // The type of container to store the fields
|
||||||
class header;
|
class header;
|
||||||
|
|
||||||
|
/// A typical HTTP request header
|
||||||
|
template<class Fields>
|
||||||
|
using request_header = header<true, Fields>;
|
||||||
|
|
||||||
|
/// A typical HTTP response header
|
||||||
|
template<class Fields>
|
||||||
|
using response_header = header<false, Fields>;
|
||||||
```
|
```
|
||||||
|
|
||||||
Requests and responses share the version, fields, and body but have
|
Requests and responses share the version, fields, and body but have
|
||||||
|
@ -41,9 +41,11 @@
|
|||||||
<member><link linkend="beast.ref.beast__http__parser">parser</link></member>
|
<member><link linkend="beast.ref.beast__http__parser">parser</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__no_chunk_decorator">no_chunk_decorator</link></member>
|
<member><link linkend="beast.ref.beast__http__no_chunk_decorator">no_chunk_decorator</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__request">request</link></member>
|
<member><link linkend="beast.ref.beast__http__request">request</link></member>
|
||||||
|
<member><link linkend="beast.ref.beast__http__request_header">request_header</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__request_parser">request_parser</link></member>
|
<member><link linkend="beast.ref.beast__http__request_parser">request_parser</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__request_serializer">request_serializer</link></member>
|
<member><link linkend="beast.ref.beast__http__request_serializer">request_serializer</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__response">response</link></member>
|
<member><link linkend="beast.ref.beast__http__response">response</link></member>
|
||||||
|
<member><link linkend="beast.ref.beast__http__response_header">response_header</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__response_parser">response_parser</link></member>
|
<member><link linkend="beast.ref.beast__http__response_parser">response_parser</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__response_serializer">response_serializer</link></member>
|
<member><link linkend="beast.ref.beast__http__response_serializer">response_serializer</link></member>
|
||||||
<member><link linkend="beast.ref.beast__http__serializer">serializer</link></member>
|
<member><link linkend="beast.ref.beast__http__serializer">serializer</link></member>
|
||||||
|
@ -347,6 +347,14 @@ private:
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// A typical HTTP request header
|
||||||
|
template<class Fields = fields>
|
||||||
|
using request_header = header<true, Fields>;
|
||||||
|
|
||||||
|
/// A typical HTTP response header
|
||||||
|
template<class Fields = fields>
|
||||||
|
using response_header = header<false, Fields>;
|
||||||
|
|
||||||
/** A container for a complete HTTP message.
|
/** A container for a complete HTTP message.
|
||||||
|
|
||||||
This container is derived from the `Fields` template type.
|
This container is derived from the `Fields` template type.
|
||||||
|
Reference in New Issue
Block a user