[/ Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com) Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ] [section:FieldsReader FieldsReader] A [*FieldsReader] 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. In this table: * `X` denotes a type that meets the requirements of [*FieldsReader]. * `F` denotes a __Fields__ where `std::is_same::value == true`. * `a` is a value of type `X`. * `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 [link beast.ref.beast__http__verb `verb`]. [table FieldsReader requirements [[expression][type][semantics, pre/post-conditions]] [ [`X::const_buffers_type`] [] [ A type which meets the requirements of __ConstBufferSequence__. This is the type of buffer returned by `X::get`. ] ][ [`X(f,v,m)`] [] [ The implementation calls this constructor to indicate that the fields being serialized form part of an HTTP request. The lifetime of `f` is guaranteed to end no earlier than after the `X` is destroyed. ] ][ [`X(f,v,c)`] [] [ The implementation calls this constructor to indicate that the fields being serialized form part of an HTTP response. The lifetime of `f` is guaranteed to end no earlier than after the `X` is destroyed. ] ][ [`a.chunked()`] [`bool`] [ Called once after construction, this function returns `true` if the [*Transfer-Encoding] field is present, and the last token in its value is "chunked". ] ][ [`a.keep_alive()`] [`bool`] [ Called once after construction, this function returns `true` if the semantics of the mesage indicate that the connection should remain open after processing the message. When the HTTP version is below 1.1, the function returns `true` only if the [*Connection] field is present, and its value contains the "keep-alive" token. For HTTP versions 1.1 and above, the function returns `true` if the [*Connection] field is absent, or if the field value does not contain the "close" token. ] ][ [`a.get()`] [`X::const_buffers_type`] [ 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 (`"\r\n"`). ] ][ [`is_fields_reader`] [`std::true_type`] [ An alias for `std::true_type` for `F`, otherwise an alias for `std::false_type`. ] ] ] [heading Exemplar] [concept_FieldsReader] [endsect]