LLFIO
v2.00
|
A source of tls_socket_handle
and listening_tls_socket_handle
and possibly a byte_io_multiplexer
to multiplex i/o on multiple socket instances at the same time.
More...
#include "tls_socket_handle.hpp"
Public Types | |
using | check_for_any_completed_io_statistics = byte_io_multiplexer::check_for_any_completed_io_statistics |
Public Member Functions | |
virtual void | _deleter () |
const tls_socket_source_implementation_information & | implementation_information () const noexcept |
Returns implementation information about this byte socket source. | |
byte_io_multiplexer * | multiplexer () const noexcept |
Returns the i/o multiplexer for this byte socket handle source. All handles created from this source will have this multiplexer set upon them. | |
result< check_for_any_completed_io_statistics > | check_for_any_completed_io (deadline d=std::chrono::seconds(0), size_t max_completions=(size_t) -1) noexcept |
Convenience indirect to multiplexer()->check_for_any_completed_io() | |
virtual result< tls_socket_handle_ptr > | connecting_socket (ip::family family, byte_socket_handle::mode _mode=byte_socket_handle::mode::write, byte_socket_handle::caching _caching=byte_socket_handle::caching::all, byte_socket_handle::flag flags=byte_socket_handle::flag::none) noexcept=0 |
Returns a pointer to a new tls_socket_handle instance, which may be a recycled instance recently deleted. | |
result< tls_socket_handle_ptr > | multiplexable_connecting_socket (ip::family family, byte_socket_handle::mode _mode=byte_socket_handle::mode::write, byte_socket_handle::caching _caching=byte_socket_handle::caching::all, byte_socket_handle::flag flags=byte_socket_handle::flag::multiplexable) noexcept |
Convenience function defaulting flag::multiplexable set. | |
virtual result< listening_tls_socket_handle_ptr > | listening_socket (ip::family family, byte_socket_handle::mode _mode=byte_socket_handle::mode::write, byte_socket_handle::caching _caching=byte_socket_handle::caching::all, byte_socket_handle::flag flags=byte_socket_handle::flag::none) noexcept=0 |
Returns a pointer to a new listening_tls_socket_handle instance, which may be a recycled instance recently deleted. | |
result< listening_tls_socket_handle_ptr > | multiplexable_listening_socket (ip::family family, byte_socket_handle::mode _mode=byte_socket_handle::mode::write, byte_socket_handle::caching _caching=byte_socket_handle::caching::all, byte_socket_handle::flag flags=byte_socket_handle::flag::multiplexable) noexcept |
Convenience function defaulting flag::multiplexable set. | |
virtual result< tls_socket_handle_ptr > | wrap (byte_socket_handle *transport) noexcept=0 |
virtual result< listening_tls_socket_handle_ptr > | wrap (listening_byte_socket_handle *listening) noexcept=0 |
Protected Member Functions | |
constexpr | tls_socket_source (const tls_socket_source_implementation_information &implementation_information, byte_io_multiplexer *multiplexer=nullptr) |
A source of tls_socket_handle
and listening_tls_socket_handle
and possibly a byte_io_multiplexer
to multiplex i/o on multiple socket instances at the same time.
The socket handles returned by this source may be very different implementations to the kernel socket handles returned by byte_socket_handle::byte_socket()
– they may have all virtual functions overridden AND a custom i/o multiplexer set, plus RTTI may show an internal derived type from the public types.
However, they may still be a valid kernel socket handle e.g. a TLS implementation may act upon a base kernel socket handle. If so, is_kernel_handle()
will be true, and then poll()
will work on these handles same as a plain socket handle.
|
pure virtualnoexcept |
Returns a pointer to a new tls_socket_handle
instance, which will wrap transport
. transport
must NOT change address until the tls_socket_handle
is closed.
|
pure virtualnoexcept |
Returns a pointer to a new listening_tls_socket_handle
instance, which will wrap listening
. listening
must NOT change address until the listening_tls_socket_handle
is closed.