<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="10">解析器流操作</string>
    <string name="">非平凡算法需要执行的操作不仅限于一次性接收完整消息，该算法需要做更多事，例如：</string>
    <string name="">* 先接收头部，再接收消息体。</string>
    <string name="">* 使用固定大小缓冲区接收大型消息体。</string>
    <string name="">* 逐步接收消息：每个 I/O 周期内只处理有限的数据量。</string>
    <string name="">* 在读取头部之后，再确定 __Body__ 类型。</string>
    <string name="">这类操作要求调用方管理相关状态的生命周期，具体方式为构造一个派生自 __basic_parser__ 的类。Beast 提供派生类 __parser__，该类型使用 __basic_fields__ 字段容器来创建完整的 __message__ 对象。</string>
    <string name="">解析器</string>
    <string name="29">名称</string>
    <string name="29">描述</string>
    <string name="">__解析器__</string>
    <string name="">"/// 用于生成消息的 HTTP/1 解析器\ntemplate&lt;\nbool isRequest,                         // 若为 true 则解析 HTTP 请求\nclass Body,                             // 结果消息的消息体\nclass Allocator = std::allocator&lt;char&gt;&gt; // 头部所使用的分配器\nclass parser\n: public basic_parser&lt;...&gt;;"</string>
    <string name="">[link beast.ref.boost__beast__http__request_parser `request_parser`]</string>
    <string name="">/// 用于生成请求消息的 HTTP/1 解析器\ntemplate&lt;class Body, class Allocator = std::allocator&lt;char&gt;&gt;\nusing request_parser = parser&lt;true, Body, Allocator&gt;;</string>
    <string name="">[link beast.ref.boost__beast__http__response_parser `response_parser`]</string>
    <string name="">/// 用于生成响应消息的 HTTP/1 解析器\ntemplate&lt;class Body, class Allocator = std::allocator&lt;char&gt;&gt;\nusing response_parser = parser&lt;false, Body, Allocator&gt;;</string>
    <string name="">__basic_parser__ 及其派生类用于处理八位字节流。</string>
    <string name="">用于操作解析器的流操作如下：</string>
    <string name="71">解析器流操作</string>
    <string name="71">名称</string>
    <string name="71">描述</string>
    <string name="">[link beast.ref.boost__beast__http__read.overload1 [*read]]</string>
    <string name="">从 __SyncReadStream__ 读取所有数据到解析器。</string>
    <string name="">[link beast.ref.boost__beast__http__async_read.overload1 [*async_read]]</string>
    <string name="">从 __AsyncReadStream__ 异步读取所有数据到解析器。</string>
    <string name="">[link beast.ref.boost__beast__http__read_header.overload1 [*read_header]]</string>
    <string name="">从 __SyncReadStream__ 仅读取头部八位字节到解析器。</string>
    <string name="">[link beast.ref.boost__beast__http__async_read_header [*async_read_header]]</string>
    <string name="">从 __AsyncReadStream__ 异步仅读取头部八位字节到解析器。</string>
    <string name="">[link beast.ref.boost__beast__http__read_some.overload1 [*read_some]]</string>
    <string name="">从 __SyncReadStream__ 读取部分八位字节到解析器。</string>
    <string name="">[link beast.ref.boost__beast__http__async_read_some [*async_read_some]]</string>
    <string name="">从 __AsyncReadStream__ 异步读取部分八位字节到解析器。</string>
    <string name="">与消息流操作类似，解析器流操作也需要一个持久的 DynamicBuffer 来保存流中未使用的八位字节。当动态缓冲区使用单个连续内存块存储输入序列时，基本解析器实现能达到最优性能。因此，建议使用 flat_buffer、flat_static_buffer 或 flat_static_buffer_base 的实例；当然，用户自定义的 DynamicBuffer 实现，只要它能生成长度为 1 的输入序列，也同样适用。</string>
    <string name="">解析器内部包含一个已构造的消息对象。传入解析器构造函数的参数会转发到消息容器中。调用方可通过 [link beast.ref.boost__beast__http__parser.get `parser::get`] 访问该消息。若 `Fields` 和 `Body` 类型支持移动构造，调用方还可通过 [link beast.ref.boost__beast__http__parser.release `parser::release`] 获取消息的所有权。以下示例使用解析器读取一个包含字符串消息体的 HTTP 响应，并将其打印出来：</string>
    <string name="">增量读取 __示例__</string>
    <string name="">该函数使用 [link beast.ref.boost__beast__http__buffer_body `buffer_body`] 和解析器流操作，通过一个固定大小的小缓冲区逐步读取消息体：</string>
    <string name="">读取大型响应消息体 __示例__</string>
    <string name="">本示例展示如何提高响应消息体大小的默认限制，以便读取超过默认 8MB 大小的内容。</string>
</resources>
