* `basic_parser` now uses pure virtual member functions instead
of the curiously recurring template pattern.
Actions Required:
* Change uses of the `basic_parser` type to omit the `Derived`
template parameter
* Classes derived from `basic_parser` no longer need to friend
the base.
* Virtual functions in the derived class may be marked `override`.
* 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
* is_completion_handler is deprecated
* type_traits.hpp is a deprecated include
These items will be removed in the next version
* Include the new header file for the types needed:
- stream_traits.hpp
- file_base.hpp
* Use std::is_invocable instead of is_completion_handler
fix#1416
* Calls to buffer_copy are qualified as net::buffer_copy
* Calls to buffer_size are made unqualified, permitting
argument dependent lookup to take effect.
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.
* Tidying
* Increase test coverage
* Fix file_mode::append_existing
API Changes:
* file_mode::append_new is removed, as it makes no sense
Actions Required:
* Replace file_mode::append_new with file_mode::append
or file_mode::append_existing instead of file_mode::append_new
* Improved tests
* Refactor some declaration material
* basic_multi_buffer::clear is public
and
* Fix flat_buffer::reserve
* flat_buffer::clear is public