MySQL 26.10.0
Source Code Documentation
mysql_harness::TlsReloadComponent Class Reference

Coordinates asynchronous reloads of TLS material owned by Router plugins. More...

#include <tls_reload_component.h>

Classes

class  Impl
 

Public Types

using Result = stdx::expected< void, std::string >
 
using Callback = std::function< Result()>
 
using RegistrationId = std::size_t
 

Public Member Functions

 TlsReloadComponent (const TlsReloadComponent &)=delete
 
TlsReloadComponent & operator= (const TlsReloadComponent &)=delete
 
void init ()
 Starts the worker. More...
 
void stop ()
 Stops and joins the worker before plugin TLS state is destroyed. More...
 
RegistrationId register_callback (std::string owner, Callback callback)
 
void unregister_callback (RegistrationId id)
 
void request_reload ()
 Queues a reload without performing TLS I/O in the caller's context. More...
 

Static Public Member Functions

static TlsReloadComponent & get_instance ()
 

Static Public Attributes

static constexpr RegistrationId kInvalidRegistrationId {0}
 

Private Member Functions

 TlsReloadComponent ()
 
 ~TlsReloadComponent ()
 

Private Attributes

std::mutex impl_mtx_
 
std::shared_ptr< Impl > impl_
 
RegistrationId next_id_ {kInvalidRegistrationId + 1}
 

Detailed Description

Coordinates asynchronous reloads of TLS material owned by Router plugins.

Member Typedef Documentation

◆ Callback

◆ RegistrationId

◆ Result

Constructor & Destructor Documentation

◆ TlsReloadComponent() [1/2]

mysql_harness::TlsReloadComponent::TlsReloadComponent ( const TlsReloadComponent &  )
delete

◆ TlsReloadComponent() [2/2]

mysql_harness::TlsReloadComponent::TlsReloadComponent ( )
private

◆ ~TlsReloadComponent()

mysql_harness::TlsReloadComponent::~TlsReloadComponent ( )
private

Member Function Documentation

◆ get_instance()

TlsReloadComponent & mysql_harness::TlsReloadComponent::get_instance ( )
static

◆ init()

void mysql_harness::TlsReloadComponent::init ( )

Starts the worker.

◆ operator=()

TlsReloadComponent & mysql_harness::TlsReloadComponent::operator= ( const TlsReloadComponent &  )
delete

◆ register_callback()

TlsReloadComponent::RegistrationId mysql_harness::TlsReloadComponent::register_callback ( std::string  owner,
Callback  callback 
)

◆ request_reload()

void mysql_harness::TlsReloadComponent::request_reload ( )

Queues a reload without performing TLS I/O in the caller's context.

◆ stop()

void mysql_harness::TlsReloadComponent::stop ( )

Stops and joins the worker before plugin TLS state is destroyed.

◆ unregister_callback()

void mysql_harness::TlsReloadComponent::unregister_callback ( RegistrationId  id)

Member Data Documentation

◆ impl_

std::shared_ptr<Impl> mysql_harness::TlsReloadComponent::impl_
private

◆ impl_mtx_

std::mutex mysql_harness::TlsReloadComponent::impl_mtx_
private

◆ kInvalidRegistrationId

constexpr RegistrationId mysql_harness::TlsReloadComponent::kInvalidRegistrationId {0}
staticconstexpr

◆ next_id_

RegistrationId mysql_harness::TlsReloadComponent::next_id_ {kInvalidRegistrationId + 1}
private

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