msgid ""
msgstr ""
"Project-Id-Version: English (Boost Beast Translation (zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-07 13:57+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English <https://insights.cppalliance.org/weblate/projects/"
"boost-beast-documentation-zh_Hans/doc-qbk-07-concepts-bodywriter-qbk/en/>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.5\n"

#. type: section title
#: 10
#, read-only
msgid "BodyWriter"
msgstr "BodyWriter"

#. type: paragraph
#: 12
#, read-only
msgid ""
"A [*BodyWriter] provides an [@https://en.wikipedia.org/wiki/Online_algorithm "
"online algorithm] to obtain a sequence of zero or more buffers from a body "
"during serialization. The implementation creates an instance of this type "
"when needed, and calls into it one or more times to retrieve buffers holding "
"body octets. The interface of [*BodyWriter] is intended to obtain buffers "
"for these scenarios:"
msgstr ""
"A [*BodyWriter] provides an [@https://en.wikipedia.org/wiki/Online_algorithm "
"online algorithm] to obtain a sequence of zero or more buffers from a body "
"during serialization. The implementation creates an instance of this type "
"when needed, and calls into it one or more times to retrieve buffers holding "
"body octets. The interface of [*BodyWriter] is intended to obtain buffers "
"for these scenarios:"

#. type: list
#: 20
#, read-only
msgid ""
"* A body that does not entirely fit in memory.\n"
"* A body produced incrementally from coroutine output.\n"
"* A body represented by zero or more buffers already in memory.\n"
"* A body whose size is not known ahead of time.\n"
"* Body data generated dynamically from other threads.\n"
"* Body data computed algorithmically."
msgstr ""
"* A body that does not entirely fit in memory.\n"
"* A body produced incrementally from coroutine output.\n"
"* A body represented by zero or more buffers already in memory.\n"
"* A body whose size is not known ahead of time.\n"
"* Body data generated dynamically from other threads.\n"
"* Body data computed algorithmically."

#. type: heading
#: 27
#, read-only
msgid "Associated Types"
msgstr "Associated Types"

#. type: list
#: 29
#, read-only
msgid ""
"* [link beast.ref.boost__beast__http__is_body_writer `is_body_writer`]\n"
"* __Body__"
msgstr ""
"* [link beast.ref.boost__beast__http__is_body_writer `is_body_writer`]\n"
"* __Body__"

#. type: heading
#: 32
#, read-only
msgid "Requirements"
msgstr "Requirements"

#. type: paragraph
#: 35
#, read-only
msgid "These requirements may undergo non-backward compatible"
msgstr "These requirements may undergo non-backward compatible"

#. type: paragraph
#: 39
#, read-only
msgid "In this table:"
msgstr "In this table:"

#. type: list
#: 41
#, read-only
msgid ""
"* `W` denotes a type meeting the requirements of [*BodyWriter].\n"
"* `B` denotes a __Body__ where"
msgstr ""
"* `W` denotes a type meeting the requirements of [*BodyWriter].\n"
"* `B` denotes a __Body__ where"

#. type: list
#: 44
#, read-only
msgid ""
"* `a` denotes a value of type `W`.\n"
"* `h` denotes a const value of type `header<isRequest, Fields> const&`.\n"
"* `v` denotes a possibly const value of type `Body::value_type&`.\n"
"* `ec` is a value of type [link beast.ref.boost__beast__error_code "
"`error_code&`].\n"
"* `W<T>` is the type `boost::optional<std::pair<T, bool>>`."
msgstr ""
"* `a` denotes a value of type `W`.\n"
"* `h` denotes a const value of type `header<isRequest, Fields> const&`.\n"
"* `v` denotes a possibly const value of type `Body::value_type&`.\n"
"* `ec` is a value of type [link beast.ref.boost__beast__error_code "
"`error_code&`].\n"
"* `W<T>` is the type `boost::optional<std::pair<T, bool>>`."

#. type: table title
#: 50
#, read-only
msgid "Valid expressions"
msgstr "Valid expressions"

#. type: table cell
#: 50
#, read-only
msgid "Expression"
msgstr "Expression"

#. type: table cell
#: 50
#, read-only
msgid "Type"
msgstr "Type"

#. type: table cell
#: 50
#, read-only
msgid "Semantics, Pre/Post-conditions"
msgstr "Semantics, Pre/Post-conditions"

#. type: table cell
#: 50
#, read-only
msgid "`W::const_buffers_type`"
msgstr "`W::const_buffers_type`"

#. type: table cell
#: 50
#, read-only
msgid ""
"A type which meets the requirements of __ConstBufferSequence__. This is the "
"type of buffer returned by `W::get`."
msgstr ""
"A type which meets the requirements of __ConstBufferSequence__. This is the "
"type of buffer returned by `W::get`."

#. type: table cell
#: 50
#, read-only
msgid "`W{h,v};`"
msgstr "`W{h,v};`"

#. type: table cell
#: 50
#, read-only
msgid ""
"Constructible from `h` and `v`. The lifetime of `h` and `v` are guaranteed "
"to end no earlier than after the `W` is destroyed. The writer shall not "
"access the contents of `h` or `v` before the first call to `init`, "
"permitting lazy construction of the message.\n"
"\n"
"The constructor may optionally require that `h` and `v` are `const` "
"references, with these consequences:\n"
"\n"
"* If `W` requires that `h` and `v` are const references, then the "
"corresponding serializer constructors for messages with this body type will "
"will accept a const reference to a message, otherwise:\n"
"\n"
"* If `W` requires that `h` and `v` are non-const references, then the "
"corresponding serializer constructors for messages with this body type will "
"require a non-const reference to a message."
msgstr ""
"Constructible from `h` and `v`. The lifetime of `h` and `v` are guaranteed "
"to end no earlier than after the `W` is destroyed. The writer shall not "
"access the contents of `h` or `v` before the first call to `init`, "
"permitting lazy construction of the message.\n"
"\n"
"The constructor may optionally require that `h` and `v` are `const` "
"references, with these consequences:\n"
"\n"
"* If `W` requires that `h` and `v` are const references, then the "
"corresponding serializer constructors for messages with this body type will "
"will accept a const reference to a message, otherwise:\n"
"\n"
"* If `W` requires that `h` and `v` are non-const references, then the "
"corresponding serializer constructors for messages with this body type will "
"require a non-const reference to a message."

#. type: table cell
#: 50
#, read-only
msgid "`a.init(ec)`"
msgstr "`a.init(ec)`"

#. type: table cell
#: 50
#, read-only
msgid ""
"Called once to fully initialize the object before any calls to `get`. The "
"message body becomes valid before entering this function, and remains valid "
"until the writer is destroyed. The function will ensure that `!ec` is `true` "
"if there was no error or set to the appropriate error code if there was one."
msgstr ""
"Called once to fully initialize the object before any calls to `get`. The "
"message body becomes valid before entering this function, and remains valid "
"until the writer is destroyed. The function will ensure that `!ec` is `true` "
"if there was no error or set to the appropriate error code if there was one."

#. type: table cell
#: 50
#, read-only
msgid "`a.get(ec)`"
msgstr "`a.get(ec)`"

#. type: table cell
#: 50
#, read-only
msgid "`W<W::const_buffers_type>`"
msgstr "`W<W::const_buffers_type>`"

#. type: table cell
#: 50
#, read-only
msgid ""
"Called one or more times after `init` succeeds. This function returns "
"`boost::none` if all buffers representing the body have been returned in "
"previous calls or if it sets `ec` to indicate an error. Otherwise, if there "
"are buffers remaining the function should return a pair with the first "
"element containing a non-zero length buffer sequence representing the next "
"set of octets in the body, while the second element is a `bool` meaning "
"`true` if there may be additional buffers returned on a subsequent call, or "
"`false` if the buffer returned on this call is the last buffer representing "
"the body. The function will ensure that `!ec` is `true` if there was no "
"error or set to the appropriate error code if there was one."
msgstr ""
"Called one or more times after `init` succeeds. This function returns "
"`boost::none` if all buffers representing the body have been returned in "
"previous calls or if it sets `ec` to indicate an error. Otherwise, if there "
"are buffers remaining the function should return a pair with the first "
"element containing a non-zero length buffer sequence representing the next "
"set of octets in the body, while the second element is a `bool` meaning "
"`true` if there may be additional buffers returned on a subsequent call, or "
"`false` if the buffer returned on this call is the last buffer representing "
"the body. The function will ensure that `!ec` is `true` if there was no "
"error or set to the appropriate error code if there was one."

#. type: heading
#: 110
#, read-only
msgid "Exemplar"
msgstr "Exemplar"

#. type: heading
#: 114
#, read-only
msgid "Models"
msgstr "Models"

#. type: list
#: 116
#, read-only
msgid ""
"* [link beast.ref.boost__beast__http__basic_dynamic_body.writer "
"`basic_dynamic_body::writer`]\n"
"* [link beast.ref.boost__beast__http__basic_file_body__writer "
"`basic_file_body::writer`]\n"
"* [link beast.ref.boost__beast__http__basic_string_body.writer "
"`basic_string_body::writer`]\n"
"* [link beast.ref.boost__beast__http__buffer_body.writer "
"`buffer_body::writer`]\n"
"* [link beast.ref.boost__beast__http__empty_body.writer "
"`empty_body::writer`]\n"
"* [link beast.ref.boost__beast__http__span_body.writer `span_body::writer`]\n"
"* [link beast.ref.boost__beast__http__vector_body.writer "
"`vector_body::writer`]"
msgstr ""
"* [link beast.ref.boost__beast__http__basic_dynamic_body.writer "
"`basic_dynamic_body::writer`]\n"
"* [link beast.ref.boost__beast__http__basic_file_body__writer "
"`basic_file_body::writer`]\n"
"* [link beast.ref.boost__beast__http__basic_string_body.writer "
"`basic_string_body::writer`]\n"
"* [link beast.ref.boost__beast__http__buffer_body.writer "
"`buffer_body::writer`]\n"
"* [link beast.ref.boost__beast__http__empty_body.writer "
"`empty_body::writer`]\n"
"* [link beast.ref.boost__beast__http__span_body.writer `span_body::writer`]\n"
"* [link beast.ref.boost__beast__http__vector_body.writer "
"`vector_body::writer`]"
