<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
  <file original="NoName" source-language="en" datatype="plaintext" target-language="zh_Hans">
    <body>
      <trans-unit xml:space="preserve" approved="no" id="12586daef80d59db">
        <source>BodyWriter</source>
        <target state="needs-translation">BodyWriter</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">10</context>
        </context-group>
        <note from="developer">type: section title</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="813acf05b30c26dd">
        <source>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:</source>
        <target state="needs-translation">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:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">12</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="d725df9b3b9e3e8b">
        <source>* A body that does not entirely fit in memory.
* A body produced incrementally from coroutine output.
* A body represented by zero or more buffers already in memory.
* A body whose size is not known ahead of time.
* Body data generated dynamically from other threads.
* Body data computed algorithmically.</source>
        <target state="needs-translation">* A body that does not entirely fit in memory.
* A body produced incrementally from coroutine output.
* A body represented by zero or more buffers already in memory.
* A body whose size is not known ahead of time.
* Body data generated dynamically from other threads.
* Body data computed algorithmically.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">20</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="f3a497a2277c8436">
        <source>Associated Types</source>
        <target state="needs-translation">Associated Types</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">27</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e16db469b2100d7c">
        <source>* [link beast.ref.boost__beast__http__is_body_writer `is_body_writer`]
* __Body__</source>
        <target state="needs-translation">* [link beast.ref.boost__beast__http__is_body_writer `is_body_writer`]
* __Body__</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">29</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="8b11f6ce20c469c2">
        <source>Requirements</source>
        <target state="needs-translation">Requirements</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">32</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="9dbb5aa5deff0697">
        <source>These requirements may undergo non-backward compatible</source>
        <target state="needs-translation">These requirements may undergo non-backward compatible</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">35</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="3d4704df21a8f596">
        <source>In this table:</source>
        <target state="needs-translation">In this table:</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">39</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="7abc1003f857c825">
        <source>* `W` denotes a type meeting the requirements of [*BodyWriter].
* `B` denotes a __Body__ where</source>
        <target state="needs-translation">* `W` denotes a type meeting the requirements of [*BodyWriter].
* `B` denotes a __Body__ where</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">41</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="6cb7148462b1e24f">
        <source>* `a` denotes a value of type `W`.
* `h` denotes a const value of type `header&lt;isRequest, Fields&gt; const&amp;`.
* `v` denotes a possibly const value of type `Body::value_type&amp;`.
* `ec` is a value of type [link beast.ref.boost__beast__error_code `error_code&amp;`].
* `W&lt;T&gt;` is the type `boost::optional&lt;std::pair&lt;T, bool&gt;&gt;`.</source>
        <target state="needs-translation">* `a` denotes a value of type `W`.
* `h` denotes a const value of type `header&lt;isRequest, Fields&gt; const&amp;`.
* `v` denotes a possibly const value of type `Body::value_type&amp;`.
* `ec` is a value of type [link beast.ref.boost__beast__error_code `error_code&amp;`].
* `W&lt;T&gt;` is the type `boost::optional&lt;std::pair&lt;T, bool&gt;&gt;`.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">44</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="f2992975a033cf9f">
        <source>Valid expressions</source>
        <target state="needs-translation">Valid expressions</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table title</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="8d4d85b75b66a390">
        <source>Expression</source>
        <target state="needs-translation">Expression</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="4260caf7dbb163c2">
        <source>Type</source>
        <target state="needs-translation">Type</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e9c35981ac872e45">
        <source>Semantics, Pre/Post-conditions</source>
        <target state="needs-translation">Semantics, Pre/Post-conditions</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="2bf430ae2ffa90d7">
        <source>`W::const_buffers_type`</source>
        <target state="needs-translation">`W::const_buffers_type`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="6b0dad0a516486a3">
        <source>A type which meets the requirements of __ConstBufferSequence__. This is the type of buffer returned by `W::get`.</source>
        <target state="needs-translation">A type which meets the requirements of __ConstBufferSequence__. This is the type of buffer returned by `W::get`.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ef31b4faa219b8ff">
        <source>`W{h,v};`</source>
        <target state="needs-translation">`W{h,v};`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="5441ec3e51857fa4">
        <source>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.

The constructor may optionally require that `h` and `v` are `const` references, with these consequences:

* 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:

* 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.</source>
        <target state="needs-translation">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.

The constructor may optionally require that `h` and `v` are `const` references, with these consequences:

* 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:

* 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.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="3acc83e35f72010c">
        <source>`a.init(ec)`</source>
        <target state="needs-translation">`a.init(ec)`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="00091bc3d6f22fc1">
        <source>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.</source>
        <target state="needs-translation">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.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="7b83cc4b000785af">
        <source>`a.get(ec)`</source>
        <target state="needs-translation">`a.get(ec)`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="4d30275fbd9a7b27">
        <source>`W&lt;W::const_buffers_type&gt;`</source>
        <target state="needs-translation">`W&lt;W::const_buffers_type&gt;`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b3b83107fd65a517">
        <source>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.</source>
        <target state="needs-translation">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.</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">50</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="224a3e920796d4a5">
        <source>Exemplar</source>
        <target state="needs-translation">Exemplar</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">110</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="fa69553690b47eb3">
        <source>Models</source>
        <target state="needs-translation">Models</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">114</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="8ce05a17c42c9aa7">
        <source>* [link beast.ref.boost__beast__http__basic_dynamic_body.writer `basic_dynamic_body::writer`]
* [link beast.ref.boost__beast__http__basic_file_body__writer `basic_file_body::writer`]
* [link beast.ref.boost__beast__http__basic_string_body.writer `basic_string_body::writer`]
* [link beast.ref.boost__beast__http__buffer_body.writer `buffer_body::writer`]
* [link beast.ref.boost__beast__http__empty_body.writer `empty_body::writer`]
* [link beast.ref.boost__beast__http__span_body.writer `span_body::writer`]
* [link beast.ref.boost__beast__http__vector_body.writer `vector_body::writer`]</source>
        <target state="needs-translation">* [link beast.ref.boost__beast__http__basic_dynamic_body.writer `basic_dynamic_body::writer`]
* [link beast.ref.boost__beast__http__basic_file_body__writer `basic_file_body::writer`]
* [link beast.ref.boost__beast__http__basic_string_body.writer `basic_string_body::writer`]
* [link beast.ref.boost__beast__http__buffer_body.writer `buffer_body::writer`]
* [link beast.ref.boost__beast__http__empty_body.writer `empty_body::writer`]
* [link beast.ref.boost__beast__http__span_body.writer `span_body::writer`]
* [link beast.ref.boost__beast__http__vector_body.writer `vector_body::writer`]</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">116</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
    </body>
  </file>
</xliff>
