basic_stream subsumes stranded_stream:

* All functionality of stranded_stream is folded into basic_stream
* tcp_stream is an alias for basic_stream with tcp
* The tests are expanded to produce full coverage
* Timeout implementation is simplified
This commit is contained in:
Vinnie Falco
2019-02-10 11:42:01 -08:00
parent 0ce8ebbefd
commit 9b14774ada
20 changed files with 3151 additions and 3920 deletions
+8 -15
View File
@@ -46,12 +46,15 @@ facilities for authoring and working with layered streams:
[table Layered Stream Algorithms and Types
[[Name][Description]]
[[
[link beast.ref.boost__beast__timeout_stream `timeout_stream`]
[link beast.ref.boost__beast__basic_timeout_stream `basic_timeout_stream`]
[link beast.ref.boost__beast__basic_stream `basic_stream`]
[link beast.ref.boost__beast__tcp_stream `tcp_stream`]
][
A timeout stream meets the requirements for synchronous and asynchronous
read and write streams, and additionally provides configurable timeouts
for logical operations that include reading, writing, and/or connecting.
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.
]]
[[
[link beast.ref.boost__beast__buffered_read_stream `buffered_read_stream`]
@@ -109,16 +112,6 @@ facilities for authoring and working with layered streams:
allows for move-construction and move-assignment, and also implements
a work-around for a performance limitation in the original SSL stream.
]]
[[
[link beast.ref.boost__beast__stranded_socket `stranded_socket`]
][
A timeout stream meets the requirements for synchronous and asynchronous
read and write streams by passing I/O through to an underlying
`net::basic_stream_socket`, and additionally supports
[@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1322r0.html [P1322R0] "Networking TS enhancement to enable custom I/O executors"],
allowing a custom executor (such a strand) to be used for all
asynchronous operations.
]]
]
[heading Example]
+2 -3
View File
@@ -24,7 +24,7 @@
<bridgehead renderas="sect3">Classes&nbsp;<emphasis role="normal">(1 of 2)</emphasis></bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="beast.ref.boost__beast__async_op_base">async_op_base</link>&nbsp;<emphasis role="green">&#128946;</emphasis></member>
<member><link linkend="beast.ref.boost__beast__basic_timeout_stream">basic_timeout_stream</link>&nbsp;<emphasis role="green">&#128946;</emphasis></member>
<member><link linkend="beast.ref.boost__beast__basic_stream">basic_stream</link>&nbsp;<emphasis role="green">&#128946;</emphasis></member>
<member><link linkend="beast.ref.boost__beast__file">file</link></member>
<member><link linkend="beast.ref.boost__beast__file_mode">file_mode</link></member>
<member><link linkend="beast.ref.boost__beast__file_posix">file_posix</link></member>
@@ -46,10 +46,9 @@
<member><link linkend="beast.ref.boost__beast__span">span</link></member>
<member><link linkend="beast.ref.boost__beast__static_string">static_string</link></member>
<member><link linkend="beast.ref.boost__beast__stable_async_op_base">stable_async_op_base</link>&nbsp;<emphasis role="green">&#128946;</emphasis></member>
<member><link linkend="beast.ref.boost__beast__stranded_socket">stranded_socket</link>&nbsp;<emphasis role="green">&#128946;</emphasis></member>
<member><link linkend="beast.ref.boost__beast__string_param">string_param</link></member>
<member><link linkend="beast.ref.boost__beast__string_view">string_view</link></member>
<member><link linkend="beast.ref.boost__beast__timeout_stream">timeout_stream</link>&nbsp;<emphasis role="green">&#128946;</emphasis></member>
<member><link linkend="beast.ref.boost__beast__tcp_stream">tcp_stream</link>&nbsp;<emphasis role="green">&#128946;</emphasis></member>
</simplelist>
<bridgehead renderas="sect3">Constants</bridgehead>
<simplelist type="vert" columns="1">
+10 -5
View File
@@ -14,14 +14,19 @@
[heading Boost 1.70]
[/ includes up to version 209]
[/
* Use `beast::tcp_socket` instead of `boost::asio::ip::tcp::socket`!
* subscribe to this GitHub issue to be informed!
* we need testers!
* star the repo!
Exposition:
Enlarged scope
New quality of life features:
timed stream
- `net` is a namespace alias for `boost::asio`
- New quality of life features:
tcp_socket
async_op_base, stable_async_op_base
New Networking refresher
New websocket-chat-multi example
* `net` is a namespace alias for `boost::asio`
- New Networking refresher
- New websocket-chat-multi example
]
[tip