Commit Graph
18 Commits
Author SHA1 Message Date
Vinnie Falco 27a6f57200 Add flat_stream:
flat_stream, previously in _experimental, is now a public API.
2019-02-07 17:37:18 -08:00
Vinnie Falco 812a19706a Improvements to test::stream:
The behavior of the test stream when either
end is destroyed or closed is well-defined.
2019-02-06 21:21:25 -08:00
Vinnie Falco 6caca92f0e New stream_socket:
This I/O object wraps an ordinary socket and provides a built-in
timeout and optional bandwidth rate-limiting facility.

Added class template basic_stream_socket

* Meets the requirements of AsyncReadStream and AsyncWriteStream

* Partially supports P1322R0:
  "Networking TS enhancement to enable custom I/O executors"
  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1322r0.html

  A strand or other io_context-compatible executor may be
  chosen to use for all asynchronous stream operations.

* Supports independent timeouts on logical operations:
  connect, read, write, or both read and write.

* Provides an option for a configurable rate limit
  limit on the maximum rates of reading or writing.

* The previous experimental implementation,
  `timeout_socket` and related types, is removed.

* stream_socket is an alias for basic_stream_socket which
  uses `net::ip::tcp` as its protocol.
2018-12-30 16:49:09 -08:00
Vinnie Falco 117dda7b31 Refactor buffers_adaptor (API Change):
* Tidy up tests
* Increase code coverage
* Remove move special members
* Correct behavior for default constructed iterators

API Changes:

* buffers_adaptor is renamed (was buffers_adapter)

Actions Required:

* Replace buffers_adapter.hpp with buffers_adaptor.hpp, and
  replace buffers_adapter with buffers_adaptor. Or, define
  BOOST_BEAST_ALLOW_DEPRECATED
2018-12-19 20:59:20 -08:00
Vinnie Falco cf06a8dd6a Adjust CI scripts for superproject changes 2018-12-19 20:59:19 -08:00
Damian Jarek 776462a8a4 Use a struct instead of pair in flat_stream
No need to instantiate a pair and a custom struct has better member
names.

Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2018-12-06 15:53:13 -08:00
Vinnie Falco f995fd41a3 net is a namespace alias for boost::asio:
The namespace alias beast::net replaces boost::asio in all code
and documentation.
2018-12-02 17:51:43 -08:00
Vinnie Falco 02fb4983f6 Fixes to timeout services (experimental) 2018-11-26 15:30:49 -08:00
Vinnie Falco 5bff4ed8ab Tidy up warnings and deprecated usage:
fix #1290

* BOOST_ASIO_NO_DEPRECATED=1 is now set
* Fix various warnings from the Boost regression test matrix
* Fix a bug in advanced servers when checking for a timeout
2018-11-26 15:30:48 -08:00
Vinnie Falco c18f3f0ef1 Rename to _experimental directory 2018-11-12 06:52:39 -08:00
Vinnie Falco 0f3696f2ec Unit test framework is experimental 2018-11-11 13:56:05 -08:00
Vinnie Falco ef0658f678 Add experimental timeout_socket:
This is a socket wrapper which has a built-in timeout feature on
reads and writes.
2018-10-28 19:43:28 -07:00
Vinnie Falco 9758e5d223 Fix initialization warning 2018-07-03 10:16:35 -07:00
Vinnie Falco 6647e9ea56 Add experimental icy_stream Shoutcast stream filter:
fix #595, fix #1151

This provides a stream filter which converts the ICY HTTP
response handshake at the beginning of a stream to HTTP/1.1.
2018-06-09 21:12:01 -07:00
Vinnie Falco a94efc8c92 Add test::stream to experimental 2018-05-02 08:32:09 -07:00
Vinnie Falco 59f01a158b Add test::error to experimental 2018-05-02 08:32:09 -07:00
Vinnie Falco 292801fef7 Add ssl_stream to experimental:
The ssl_stream wrapper provides C++11 move semantics for ssl::stream,
as well as incorporating the flat_stream workaround for a performance
problem with ssl::stream writes and buffer sequences having length
greater than one.
2018-05-02 08:32:09 -07:00
Vinnie Falco 6108cf3eb7 Add flat_stream to experimental:
This adds a new stream wrapper class template designed to address
a performance shortcoming of boost::asio::ssl::stream.
2018-05-02 08:32:07 -07:00