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.

Warning
This is deprecated and scheduled for removal in 2025.

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: