msgid ""
msgstr ""
"Project-Id-Version: English (Boost Beast Translation (zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-06 20:41+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-03-core-4--layers-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 "Layered Streams"
msgstr "Layered Streams"

#. type: paragraph
#: 12
#, read-only
msgid ""
"Networking's __ssl_stream__ is a class template meeting the requirements of "
"both synchronous and asynchronous read and write streams, implemented in "
"terms of a \"next layer\" object whose type is determined by a class "
"template parameter. The SSL stream constructs an instance of the next layer "
"object internally, while allowing external access through the observer "
"`net::ssl::stream::next_layer()`. This declares an SSL stream which uses a "
"regular TCP/IP socket as the next layer:"
msgstr ""
"Networking's __ssl_stream__ is a class template meeting the requirements of "
"both synchronous and asynchronous read and write streams, implemented in "
"terms of a \"next layer\" object whose type is determined by a class "
"template parameter. The SSL stream constructs an instance of the next layer "
"object internally, while allowing external access through the observer "
"`net::ssl::stream::next_layer()`. This declares an SSL stream which uses a "
"regular TCP/IP socket as the next layer:"

#. type: paragraph
#: 22
#, read-only
msgid ""
"Objects using this design pattern are referred to in networking as \"a stack "
"of stream layers\". In Beast we use the term ['layered stream], although the "
"property of having a next layer is not exclusive to streams. As with the SSL "
"stream, __websocket_stream__ is a class template parameterized on a next "
"layer object. This declares a websocket stream which uses a regular TCP/IP "
"socket as the next layer:"
msgstr ""
"Objects using this design pattern are referred to in networking as \"a stack "
"of stream layers\". In Beast we use the term ['layered stream], although the "
"property of having a next layer is not exclusive to streams. As with the SSL "
"stream, __websocket_stream__ is a class template parameterized on a next "
"layer object. This declares a websocket stream which uses a regular TCP/IP "
"socket as the next layer:"

#. type: paragraph
#: 31
#, read-only
msgid ""
"If a Secure WebSockets stream is desired, this is accomplished simply by "
"changing the type of the next layer and adjusting the constructor arguments "
"to match:"
msgstr ""
"If a Secure WebSockets stream is desired, this is accomplished simply by "
"changing the type of the next layer and adjusting the constructor arguments "
"to match:"

#. type: paragraph
#: 37
#, read-only
msgid ""
"Higher level abstractions can be developed in this fashion by nesting stream "
"layers to arbitrary degree. The stack of stream layers effectively forms a "
"compile-time singly linked list. The object at the end of this list is "
"called the ['lowest layer], and is special from the others because it "
"typically represents the underlying socket."
msgstr ""
"Higher level abstractions can be developed in this fashion by nesting stream "
"layers to arbitrary degree. The stack of stream layers effectively forms a "
"compile-time singly linked list. The object at the end of this list is "
"called the ['lowest layer], and is special from the others because it "
"typically represents the underlying socket."

#. type: paragraph
#: 43
#, read-only
msgid ""
"Beast comes with several layered stream wrappers, as well as facilities for "
"authoring and working with layered streams:"
msgstr ""
"Beast comes with several layered stream wrappers, as well as facilities for "
"authoring and working with layered streams:"

#. type: table title
#: 46
#, read-only
msgid "Layered Stream Algorithms and Types"
msgstr "Layered Stream Algorithms and Types"

#. type: table cell
#: 46
#, read-only
msgid "Name"
msgstr "Name"

#. type: table cell
#: 46
#, read-only
msgid "Description"
msgstr "Description"

#. type: table cell
#: 46
#, read-only
msgid ""
"[link beast.ref.boost__beast__basic_stream `basic_stream`] [link "
"beast.ref.boost__beast__tcp_stream `tcp_stream`]"
msgstr ""
"[link beast.ref.boost__beast__basic_stream `basic_stream`] [link "
"beast.ref.boost__beast__tcp_stream `tcp_stream`]"

#. type: table cell
#: 46
#, read-only
msgid ""
"This stream can be used for synchronous and asynchronous reading and "
"writing. It allows timeouts to be set on logical operations, and can have an "
"executor associated with the stream which is used to invoke completion "
"handlers. This lets you set a strand on the stream once, which is then used "
"for all asynchronous operations automatically."
msgstr ""
"This stream can be used for synchronous and asynchronous reading and "
"writing. It allows timeouts to be set on logical operations, and can have an "
"executor associated with the stream which is used to invoke completion "
"handlers. This lets you set a strand on the stream once, which is then used "
"for all asynchronous operations automatically."

#. type: table cell
#: 46
#, read-only
msgid ""
"[link beast.ref.boost__beast__buffered_read_stream `buffered_read_stream`]"
msgstr ""
"[link beast.ref.boost__beast__buffered_read_stream `buffered_read_stream`]"

#. type: table cell
#: 46
#, read-only
msgid ""
"A buffered read stream meets the requirements for synchronous and "
"asynchronous read and write streams, and additionally implements "
"configurable buffering for reads."
msgstr ""
"A buffered read stream meets the requirements for synchronous and "
"asynchronous read and write streams, and additionally implements "
"configurable buffering for reads."

#. type: table cell
#: 46
#, read-only
msgid "[link beast.ref.boost__beast__close_socket `close_socket`]"
msgstr "[link beast.ref.boost__beast__close_socket `close_socket`]"

#. type: table cell
#: 46
#, read-only
msgid ""
"This function closes a socket by performing an unqualified call to the [link "
"beast.ref.boost__beast__beast_close_socket `beast_close_socket`] "
"customization point, allowing sockets to be closed in generic contexts in an "
"extensible fashion."
msgstr ""
"This function closes a socket by performing an unqualified call to the [link "
"beast.ref.boost__beast__beast_close_socket `beast_close_socket`] "
"customization point, allowing sockets to be closed in generic contexts in an "
"extensible fashion."

#. type: table cell
#: 46
#, read-only
msgid "[link beast.ref.boost__beast__get_lowest_layer `get_lowest_layer`]"
msgstr "[link beast.ref.boost__beast__get_lowest_layer `get_lowest_layer`]"

#. type: table cell
#: 46
#, read-only
msgid ""
"Returns the lowest layer in a stack of stream layers by recursively calling "
"the `next_layer` member function on each object until reaching an object "
"which lacks the member. This example puts a layered stream into non-blocking "
"mode by retrieving the TCP/IP socket in the lowest layer and changing the "
"socket option:\n"
"\n"
"[code_core_4_layers_4]"
msgstr ""
"Returns the lowest layer in a stack of stream layers by recursively calling "
"the `next_layer` member function on each object until reaching an object "
"which lacks the member. This example puts a layered stream into non-blocking "
"mode by retrieving the TCP/IP socket in the lowest layer and changing the "
"socket option:\n"
"\n"
"[code_core_4_layers_4]"

#. type: table cell
#: 46
#, read-only
msgid "[link beast.ref.boost__beast__http__icy_stream `http::icy_stream`]"
msgstr "[link beast.ref.boost__beast__http__icy_stream `http::icy_stream`]"

#. type: table cell
#: 46
#, read-only
msgid ""
"An ICY stream transparently converts the non-standard \"ICY 200 OK\" HTTP "
"response from Shoutcast servers into a conforming 200 level HTTP response."
msgstr ""
"An ICY stream transparently converts the non-standard \"ICY 200 OK\" HTTP "
"response from Shoutcast servers into a conforming 200 level HTTP response."

#. type: table cell
#: 46
#, read-only
msgid "[link beast.ref.boost__beast__lowest_layer_type `lowest_layer_type`]"
msgstr "[link beast.ref.boost__beast__lowest_layer_type `lowest_layer_type`]"

#. type: table cell
#: 46
#, read-only
msgid ""
"A metafunction to return the type of the lowest layer used in a type "
"representing a stack of stream layers. This is the type of reference "
"returned by [link beast.ref.boost__beast__get_lowest_layer "
"`get_lowest_layer`]"
msgstr ""
"A metafunction to return the type of the lowest layer used in a type "
"representing a stack of stream layers. This is the type of reference "
"returned by [link beast.ref.boost__beast__get_lowest_layer "
"`get_lowest_layer`]"

#. type: section title
#: 105
#, read-only
msgid "Counted Stream __example__"
msgstr "Counted Stream __example__"

#. type: paragraph
#: 107
#, read-only
msgid ""
"This example shows the definition of a layered stream which keeps individual "
"counts of the total number of bytes read from and written to the next layer. "
"It meets the requirements for synchronous and asynchronous read and write "
"streams:"
msgstr ""
"This example shows the definition of a layered stream which keeps individual "
"counts of the total number of bytes read from and written to the next layer. "
"It meets the requirements for synchronous and asynchronous read and write "
"streams:"
