LLFIO  v2.00
llfio_v2_xxx::tls_socket_source Class Referenceabstract

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_informationimplementation_information () const noexcept
 Returns implementation information about this byte socket source.
 
byte_io_multiplexermultiplexer () 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_statisticscheck_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_ptrconnecting_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_ptrmultiplexable_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_ptrlistening_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_ptrmultiplexable_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_ptrwrap (byte_socket_handle *transport) noexcept=0
 
virtual result< listening_tls_socket_handle_ptrwrap (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)
 

Detailed Description

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.

Member Function Documentation

◆ wrap() [1/2]

virtual result<tls_socket_handle_ptr> llfio_v2_xxx::tls_socket_source::wrap ( byte_socket_handle transport)
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.

◆ wrap() [2/2]

virtual result<listening_tls_socket_handle_ptr> llfio_v2_xxx::tls_socket_source::wrap ( listening_byte_socket_handle listening)
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.


The documentation for this class was generated from the following file: