123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- [/
- Copyright (c) 2016-2019 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)
- Official repository: https://github.com/boostorg/beast
- ]
- [section:Body Body]
- A [*Body] type is supplied as a template argument to the __message__ class. It
- controls both the type of the data member of the resulting message object, and
- the algorithms used during parsing and serialization.
- [heading Associated Types]
- * [link beast.ref.boost__beast__http__is_body `is_body`]
- * __BodyReader__
- * __BodyWriter__
- [heading Requirements]
- In this table:
- * `B` is a type meeting the requirements of [*Body].
- * `m` is a value of type `message<b,B,F>` where `b` is a `bool` value
- and `F` is a type meeting the requirements of __Fields__.
- [table Valid expressions
- [[Expression] [Type] [Semantics, Pre/Post-conditions]]
- [
- [`B::value_type`]
- []
- [
- The return type of the `message::body` member function.
- If this is not movable or not copyable, the containing message
- will be not movable or not copyable.
- ]
- ][
- [`B::reader`]
- []
- [
- If present, indicates that the body can be parsed. The type
- must meet the requirements of __BodyReader__. The implementation
- constructs an object of this type to obtain buffers into which
- parsed body octets are placed.
- ]
- ][
- [`B::writer`]
- []
- [
- If present, indicates that the body is serializable. The type
- must meet the requirements of __BodyWriter__. The implementation
- constructs an object of this type to obtain buffers representing
- the message body for serialization.
- ]
- ][
- [
- ```
- B::size(
- B::value_type body)
- ```
- ]
- [`std::uint64_t`]
- [
- This static member function is optional. It returns the payload
- size of `body` in bytes not including any chunked transfer encoding.
- The return value may be zero, to indicate that the message is known
- to have no payload. The function shall not exit via an exception.
- When this function is present:
- * The function shall not fail
- * A call to
- [link beast.ref.boost__beast__http__message.payload_size `message::payload_size`]
- will return the same value as `size`.
- * A call to
- [link beast.ref.boost__beast__http__message.prepare_payload `message::prepare_payload`]
- will remove "chunked" from the Transfer-Encoding field if it appears
- as the last encoding, and will set the Content-Length field to the
- returned value.
- Otherwise, when the function is omitted:
- * A call to
- [link beast.ref.boost__beast__http__message.payload_size `message::payload_size`]
- will return `boost::none`.
- * A call to
- [link beast.ref.boost__beast__http__message.prepare_payload `message::prepare_payload`]
- will erase the Content-Length field, and add "chunked" as the last
- encoding in the Transfer-Encoding field if it is not already present.
- ]
- ]]
- [heading Exemplar]
- [concept_Body]
- [heading Models]
- * [link beast.ref.boost__beast__http__basic_dynamic_body `basic_dynamic_body`]
- * [link beast.ref.boost__beast__http__basic_file_body `basic_file_body`]
- * [link beast.ref.boost__beast__http__basic_string_body `basic_string_body`]
- * [link beast.ref.boost__beast__http__buffer_body `buffer_body`]
- * [link beast.ref.boost__beast__http__empty_body `empty_body`]
- * [link beast.ref.boost__beast__http__span_body `span_body`]
- * [link beast.ref.boost__beast__http__vector_body `vector_body`]
- [endsect]
|