MySQL 8.4.0
Source Code Documentation
net::tls::TlsBase< LowerLayer > Class Template Reference

#include <tls_base.h>

Inheritance diagram for net::tls::TlsBase< LowerLayer >:
[legend]

Classes

class  Free
 

Public Types

using LowerLayerType = LowerLayer
 

Public Member Functions

template<typename... Args>
 TlsBase (TlsServerContext *tls_context, Args &&... args)
 
template<typename... Args>
 TlsBase (TlsClientContext *tls_context, Args &&... args)
 
 TlsBase (TlsBase &&other)
 

Protected Attributes

LowerLayer lower_layer_
 
TlsContexttls_context_
 
SslPtr ssl_
 
BioPtr network_bio_
 
uint8_t output_buffer_ [k_tls_buffer_size]
 
uint8_t input_buffer_ [k_tls_buffer_size]
 
FlexibleOutputBuffer output_ {net::buffer(output_buffer_)}
 
FlexibleInputBuffer input_ {net::buffer(input_buffer_)}
 

Static Protected Attributes

constexpr static uint32_t k_tls_buffer_size = 32000
 

Private Types

using SslPtr = std::unique_ptr< SSL, Free< SSL, void, SSL_free > >
 
using BioPtr = std::unique_ptr< BIO, Free< BIO, int, BIO_free > >
 
using socket_type = typename LowerLayer::native_handle_type
 
using protocol_type = typename LowerLayer::protocol_type
 

Private Member Functions

 TlsBase (LowerLayer &&layer, TlsContext *tls_context)
 

Friends

template<typename SslIO , typename BufferSequence , typename Token , typename TlsLayer , typename Action >
class SslIoCompletionToken
 

Member Typedef Documentation

◆ BioPtr

template<typename LowerLayer >
using net::tls::TlsBase< LowerLayer >::BioPtr = std::unique_ptr<BIO, Free<BIO, int, BIO_free> >
private

◆ LowerLayerType

template<typename LowerLayer >
using net::tls::TlsBase< LowerLayer >::LowerLayerType = LowerLayer

◆ protocol_type

template<typename LowerLayer >
using net::tls::TlsBase< LowerLayer >::protocol_type = typename LowerLayer::protocol_type
private

◆ socket_type

template<typename LowerLayer >
using net::tls::TlsBase< LowerLayer >::socket_type = typename LowerLayer::native_handle_type
private

◆ SslPtr

template<typename LowerLayer >
using net::tls::TlsBase< LowerLayer >::SslPtr = std::unique_ptr<SSL, Free<SSL, void, SSL_free> >
private

Constructor & Destructor Documentation

◆ TlsBase() [1/4]

template<typename LowerLayer >
net::tls::TlsBase< LowerLayer >::TlsBase ( LowerLayer &&  layer,
TlsContext tls_context 
)
inlineprivate

◆ TlsBase() [2/4]

template<typename LowerLayer >
template<typename... Args>
net::tls::TlsBase< LowerLayer >::TlsBase ( TlsServerContext tls_context,
Args &&...  args 
)
inline

◆ TlsBase() [3/4]

template<typename LowerLayer >
template<typename... Args>
net::tls::TlsBase< LowerLayer >::TlsBase ( TlsClientContext tls_context,
Args &&...  args 
)
inline

◆ TlsBase() [4/4]

template<typename LowerLayer >
net::tls::TlsBase< LowerLayer >::TlsBase ( TlsBase< LowerLayer > &&  other)
inline

Friends And Related Function Documentation

◆ SslIoCompletionToken

template<typename LowerLayer >
template<typename SslIO , typename BufferSequence , typename Token , typename TlsLayer , typename Action >
friend class SslIoCompletionToken
friend

Member Data Documentation

◆ input_

template<typename LowerLayer >
FlexibleInputBuffer net::tls::TlsBase< LowerLayer >::input_ {net::buffer(input_buffer_)}
protected

◆ input_buffer_

template<typename LowerLayer >
uint8_t net::tls::TlsBase< LowerLayer >::input_buffer_[k_tls_buffer_size]
protected

◆ k_tls_buffer_size

template<typename LowerLayer >
constexpr static uint32_t net::tls::TlsBase< LowerLayer >::k_tls_buffer_size = 32000
staticconstexprprotected

◆ lower_layer_

template<typename LowerLayer >
LowerLayer net::tls::TlsBase< LowerLayer >::lower_layer_
protected

◆ network_bio_

template<typename LowerLayer >
BioPtr net::tls::TlsBase< LowerLayer >::network_bio_
protected

◆ output_

template<typename LowerLayer >
FlexibleOutputBuffer net::tls::TlsBase< LowerLayer >::output_ {net::buffer(output_buffer_)}
protected

◆ output_buffer_

template<typename LowerLayer >
uint8_t net::tls::TlsBase< LowerLayer >::output_buffer_[k_tls_buffer_size]
protected

◆ ssl_

template<typename LowerLayer >
SslPtr net::tls::TlsBase< LowerLayer >::ssl_
protected

◆ tls_context_

template<typename LowerLayer >
TlsContext* net::tls::TlsBase< LowerLayer >::tls_context_
protected

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