<?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="3a504426fb1880a5">
        <source>BodyReader</source>
        <target state="translated">消息体读取器</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="afd2fc2cacfebde9">
        <source>A [*BodyReader] provides an online algorithm to transfer a series of zero or more buffers containing parsed body octets into a message container. The __parser__ creates an instance of this type when needed, and calls into it zero or more times to transfer buffers. The interface of [*BodyReader] is intended to allow the conversion of buffers into these scenarios for representation:</source>
        <target state="translated">[*BodyReader] 提供一种在线算法，用于将包含已解析消息体八位字节的零个或多个缓冲区序列传输到消息容器中。__parser__ 在需要时创建该类型的实例，并零次或多次调用它以传输缓冲区。[*BodyReader] 的接口设计用于允许将缓冲区转换为这些表示形式的场景：</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="2f1b5fc907cd0ea4">
        <source>* Storing a body in a dynamic buffer
* Storing a body in a user defined container with a custom allocator
* Transformation of incoming body data before storage, for example</source>
        <target state="translated">* 将消息体存储在动态缓冲区中
* 将消息体存储在使用自定义分配器的用户定义容器中
* 在存储前对传入的消息体数据进行转换，例如：</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">19</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="616141b5798e2a62">
        <source>* Saving body data to a file</source>
        <target state="translated">* 将消息体数据保存到文件</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">23</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="translated">关联类型</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">25</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="b9ed8edbaac5bb60">
        <source>* [link beast.ref.boost__beast__http__is_body_reader `is_body_reader`]
* __Body__</source>
        <target state="translated">* [link beast.ref.boost__beast__http__is_body_reader `is_body_reader`]
* __Body__</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">27</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="translated">要求</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">30</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="translated">这些要求可能发生不向后兼容的变更</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">33</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="translated">在下表中：</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">37</context>
        </context-group>
        <note from="developer">type: paragraph</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="df5a66af82ad2f9e">
        <source>* `R` denotes a type meeting the requirements of [*BodyReader].
* `B` denotes a __Body__ where</source>
        <target state="translated">R 表示满足 [*BodyReader] 要求的类型。

B 表示一个 Body 类型，其中</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">39</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="864173f50f29f751">
        <source>* `a` denotes a value of type `R`.
* `b` is an object whose type meets the requirements of __ConstBufferSequence__
* `h` denotes a value of type `header&lt;isRequest, Fields&gt;&amp;`.
* `v` denotes a value of type `Body::value_type&amp;`.
* `n` is a value of type `boost::optional&lt;std::uint64_t&gt;`.
* `ec` is a value of type [link beast.ref.boost__beast__error_code `error_code&amp;`].</source>
        <target state="translated">* `a` 表示类型为 `R` 的值。
* `b` 是一个类型满足 __ConstBufferSequence__ 要求的对象。
* `h` 表示类型为 `header&lt;isRequest, Fields&gt;&amp;` 的值。
* `v` 表示类型为 `Body::value_type&amp;` 的值。
* `n` 表示类型为 `boost::optional&lt;std::uint64_t&gt;` 的值。
* `ec` 表示类型为 [link beast.ref.boost__beast__error_code `error_code&amp;`] 的值。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">42</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="translated">有效表达式</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</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="translated">表达式</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</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="translated">类型</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</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="translated">语义、前置条件与后置条件</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="ce41bc615f80f998">
        <source>`R{h,v};`</source>
        <target state="translated">`R{h,v};`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="c09078a077aaca59">
        <source>Constructible from `h` and `v`. The lifetime of `h` and `v` is guaranteed to end no earlier than after the `R` is destroyed. The reader shall not access the contents of `h` or `v` before the first call to `init`, permitting lazy construction of the message.</source>
        <target state="translated">可从 `h` 和 `v` 构造。`h` 和 `v` 的生命周期保证不早于 `R` 销毁前结束。读取器在首次调用 `init` 之前不应访问 `h` 或 `v` 的内容，以支持消息的延迟构造。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="61036687eba5afe9">
        <source>`a.init(n, ec)`</source>
        <target state="translated">`a.init(n, ec)`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="e7f87cbfb96943f9">
        <source>Called once to fully initialize the object before any calls to `put`. The message body is valid before entering this function, and remains valid until the reader is destroyed. The value of `n` will be set to the content length of the body if known, otherwise `n` will be equal to `boost::none`. Implementations of [*BodyReader] may use this information to optimize allocation.

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="translated">在调用 put 之前调用一次，以完全初始化对象。消息体在进入该函数前有效，并持续有效直到读取器销毁为止。n 的值在已知时表示消息体的内容长度，否则为 boost::none。[*BodyReader] 的实现可使用此信息优化内存分配。

该函数在无错误时确保 !ec 为 true，否则将 ec 设置为对应的错误码。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="602917ec376b0890">
        <source>`a.put(b,ec)`</source>
        <target state="translated">`a.put(b,ec)`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="f5841895aee27bd6">
        <source>`std::size_t`</source>
        <target state="translated">`std::size_t`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="d2c064b3b702927e">
        <source>This function is called to append some or all of the buffers specified by `b` into the body representation. The number of bytes inserted from `b` is returned. If the number of bytes inserted is less than the total input, the remainder of the input will be presented in the next call to `put`. 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="translated">调用此函数以将 `b` 指定的部分或全部缓冲区追加到消息体表示中。返回从 `b` 插入的字节数。如果插入的字节数少于输入总量，剩余部分将在下一次调用 `put` 时传入。该函数在无错误时确保 `!ec` 为 `true`，否则将 `ec` 设置为对应的错误码。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="dc67d01347d11fee">
        <source>`a.finish(ec)`</source>
        <target state="translated">`a.finish(ec)`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a52245b6f13cb875">
        <source>This function is called when no more body octets are remaining. 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="translated">该函数在无更多消息体八位字节时调用。该函数在无错误时确保 `!ec` 为 `true`，否则将 `ec` 设置为对应的错误码。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="a2eacc2227126512">
        <source>`is_body_reader&lt;B&gt;`</source>
        <target state="translated">`is_body_reader&lt;B&gt;`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="31d48605e99012d6">
        <source>`std::true_type`</source>
        <target state="translated">`std::true_type`</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</context>
        </context-group>
        <note from="developer">type: table cell</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="6907d300888c752a">
        <source>An alias for `std::true_type` for `B`, otherwise an alias for `std::false_type`.</source>
        <target state="translated">若 `B` 存在，则为 `std::true_type` 的别名，否则为 `std::false_type` 的别名。</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">49</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="translated">示例</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">105</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="translated">模型</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">109</context>
        </context-group>
        <note from="developer">type: heading</note>
      </trans-unit>
      <trans-unit xml:space="preserve" approved="no" id="88de56244f756ab7">
        <source>* [link beast.ref.boost__beast__http__basic_dynamic_body.reader `basic_dynamic_body::reader`]
* [link beast.ref.boost__beast__http__basic_file_body__reader `basic_file_body::reader`]
* [link beast.ref.boost__beast__http__basic_string_body.reader `basic_string_body::reader`]
* [link beast.ref.boost__beast__http__buffer_body.reader `buffer_body::reader`]
* [link beast.ref.boost__beast__http__empty_body.reader `empty_body::reader`]
* [link beast.ref.boost__beast__http__span_body.reader `span_body::reader`]
* [link beast.ref.boost__beast__http__vector_body.reader `vector_body::reader`]</source>
        <target state="translated">* [link beast.ref.boost__beast__http__basic_dynamic_body.reader `basic_dynamic_body::reader`]
* [link beast.ref.boost__beast__http__basic_file_body__reader `basic_file_body::reader`]
* [link beast.ref.boost__beast__http__basic_string_body.reader `basic_string_body::reader`]
* [link beast.ref.boost__beast__http__buffer_body.reader `buffer_body::reader`]
* [link beast.ref.boost__beast__http__empty_body.reader `empty_body::reader`]
* [link beast.ref.boost__beast__http__span_body.reader `span_body::reader`]
* [link beast.ref.boost__beast__http__vector_body.reader `vector_body::reader`]</target>
        <context-group name="" purpose="location">
          <context context-type="sourcefile">111</context>
        </context-group>
        <note from="developer">type: list</note>
      </trans-unit>
    </body>
  </file>
</xliff>
