...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A FieldsWriter provides a algorithm to obtain a sequence of buffers representing the complete serialized HTTP/1 header for a set of fields. The implementation constructs an instance of this type when needed, and calls into it once to retrieve the buffers.
Warning | |
---|---|
These requirements may undergo non-backward compatible changes in subsequent versions. |
In this table:
W
denotes a type that
meets the requirements of FieldsWriter.
F
denotes a Fields
where std::is_same<W, F::writer>::value ==
true
.
a
is a value of type
W
.
f
is a value of type
F
.
v
is an unsigned
value representing the HTTP version.
c
is an unsigned
representing the HTTP status-code.
m
is a value of type
verb
.
Table 1.44. Valid expressions
expression |
type |
semantics, pre/post-conditions |
---|---|---|
|
A type which meets the requirements of ConstBufferSequence.
This is the type of buffer returned by |
|
|
The implementation calls this constructor to indicate that the
fields being serialized form part of an HTTP request. The lifetime
of |
|
|
The implementation calls this constructor to indicate that the
fields being serialized form part of an HTTP response. The lifetime
of |
|
|
The implementation calls this constructor to indicate that the
fields being serialized form part of a chunked encoding final-chunk
trailer. The lifetime of |
|
|
|
Called once after construction, this function returns a constant
buffer sequence containing the serialized representation of the
HTTP request or response including the final carriage return linefeed
sequence (
Copies may be made of the returned sequence, but the underlying
memory is still owned by the writer. The implementation will destroy
all copies of the buffer sequence before destroying |
struct FieldsWriter { // The type of buffers returned by `get` struct const_buffers_type; // Constructor for requests FieldsWriter(Fields const& f, unsigned version, verb method); // Constructor for responses FieldsWriter(Fields const& f, unsigned version, unsigned status); // Returns the serialized header buffers const_buffers_type get(); };