For reactor-based platforms only. For example, an async send on a reactor-based
platform will now log the result to each non-blocking send system call.
Now passes the execution context on handler creation and for operations. The
tracked handler base class is now passed by reference to help reduce the
temptation to stash a point to a soon-to-be-destroyed object.
Class address_iterator_v4 is now typedef address_v4_iterator.
Class address_range_v4 is now typedef address_v4_range.
Class address_iterator_v6 is now typedef address_v6_iterator.
Class address_range_v6 is now typedef address_v6_range.
This commit adds support for the new form of accept and async_accept. In this
form, rather than taking a socket by reference, the newly accepted socket is
returned to the caller/callback as a movable socket object.
The following new classes have been added:
- address_iterator_v4: for iterating across IPv4 addresses
- address_iterator_v6: for iterating across IPv6 addresses
- address_range_v4: to represent a range of IPv4 addresses
- address_range_v6: to represent a range of IPv6 addresses
- network_v4: for manipulating IPv4 CIDR addresses, e.g. 1.2.3.0/24
- network_v6: for manipulating IPv6 CIDR addresses, e.g. ffe0:/120
Thanks go to Oliver Kowalke for contributing to the design and providing
the implementation on which this facility is based.
This commit adds:
- New dynamic_string_buffer and dynamic_vector_buffer adapter classes that meet
the DynamicBufferSequence type requirements.
- New dynamic_buffer() factory functions for creating a dynamic buffer adapter
for a vector or string.
- New overloads for the read(), async_read(), write() and async_write(),
read_until() and async_read_until() free functions.
N.B. the read_at, async_read_at, write_at and async_write_at functions have not
yet been updated to support dynamic buffer sequences.