MySQL 8.3.0
Source Code Documentation
reference_caching::channel_imp Class Reference

#include <channel.h>

Inheritance diagram for reference_caching::channel_imp:
[legend]

Public Member Functions

unsigned int version ()
 
service_names_setget_service_names ()
 
void ignore_list_copy (service_names_set< std::string, std::less< std::string > > &dest_set)
 
bool is_alone ()
 
channel_impref ()
 
int unref ()
 
 ~channel_imp ()
 

Static Public Member Functions

static channel_impcreate (service_names_set<> &service_names)
 
static bool destroy (channel_imp *channel)
 
static bool factory_init ()
 
static bool factory_deinit ()
 
static bool ignore_list_add (channel_imp *channel, std::string service_implementation)
 
static bool ignore_list_clear (channel_imp *channel)
 
static bool ignore_list_remove (channel_imp *channel, std::string service_implementation)
 
static void increment_version (channel_imp *channel)
 
static bool service_notification (const char **services, unsigned int count, bool unload)
 Take actions to reference caching caches to refresh their cached service references. More...
 
- Static Public Member Functions inherited from reference_caching::Cache_malloced
static void * operator new (std::size_t sz)
 
static void operator delete (void *ptr, std::size_t sz)
 

Protected Member Functions

 channel_imp ()
 
 channel_imp (service_names_set<> &service_names)
 

Private Member Functions

void increment_version_no_lock ()
 
bool ignore_list_add (std::string &service_implementation)
 
bool ignore_list_clear ()
 
bool ignore_list_remove (std::string &service_implementation)
 
 channel_imp (const channel_imp &)=delete
 
channel_impoperator= (const channel_imp &)=delete
 
void initialize_service_counts ()
 

Private Attributes

service_names_set m_service_names
 
service_names_set< std::string, std::less< std::string > > m_ignore_list
 
std::atomic< bool > m_has_ignore_list
 
std::atomic< int > m_reference_count
 
std::atomic< unsigned int > m_version
 
mysql_rwlock_t m_lock
 

Constructor & Destructor Documentation

◆ ~channel_imp()

reference_caching::channel_imp::~channel_imp ( )

◆ channel_imp() [1/3]

reference_caching::channel_imp::channel_imp ( )
protected

◆ channel_imp() [2/3]

reference_caching::channel_imp::channel_imp ( service_names_set<> &  service_names)
explicitprotected

◆ channel_imp() [3/3]

reference_caching::channel_imp::channel_imp ( const channel_imp )
privatedelete

Member Function Documentation

◆ create()

channel_imp * reference_caching::channel_imp::create ( service_names_set<> &  service_names)
static

◆ destroy()

bool reference_caching::channel_imp::destroy ( channel_imp channel)
static

◆ factory_deinit()

bool reference_caching::channel_imp::factory_deinit ( )
static

◆ factory_init()

bool reference_caching::channel_imp::factory_init ( )
static

◆ get_service_names()

service_names_set & reference_caching::channel_imp::get_service_names ( )

◆ ignore_list_add() [1/2]

bool reference_caching::channel_imp::ignore_list_add ( channel_imp channel,
std::string  service_implementation 
)
static

◆ ignore_list_add() [2/2]

bool reference_caching::channel_imp::ignore_list_add ( std::string &  service_implementation)
private

◆ ignore_list_clear() [1/2]

bool reference_caching::channel_imp::ignore_list_clear ( )
private

◆ ignore_list_clear() [2/2]

bool reference_caching::channel_imp::ignore_list_clear ( channel_imp channel)
static

◆ ignore_list_copy()

void reference_caching::channel_imp::ignore_list_copy ( service_names_set< std::string, std::less< std::string > > &  dest_set)

◆ ignore_list_remove() [1/2]

bool reference_caching::channel_imp::ignore_list_remove ( channel_imp channel,
std::string  service_implementation 
)
static

◆ ignore_list_remove() [2/2]

bool reference_caching::channel_imp::ignore_list_remove ( std::string &  service_implementation)
private

◆ increment_version()

void reference_caching::channel_imp::increment_version ( channel_imp channel)
static

◆ increment_version_no_lock()

void reference_caching::channel_imp::increment_version_no_lock ( )
inlineprivate

◆ initialize_service_counts()

void reference_caching::channel_imp::initialize_service_counts ( )
private

◆ is_alone()

bool reference_caching::channel_imp::is_alone ( )
inline

◆ operator=()

channel_imp & reference_caching::channel_imp::operator= ( const channel_imp )
privatedelete

◆ ref()

channel_imp * reference_caching::channel_imp::ref ( )
inline

◆ service_notification()

bool reference_caching::channel_imp::service_notification ( const char **  services,
unsigned int  count,
bool  unload 
)
static

Take actions to reference caching caches to refresh their cached service references.

Parameters
[in]servicesServices being loaded or unloaded
[in]countNumber of services
[in]unloadFlag to denote whether the function is called as a part of dynamic_loader::load or dynamic_loader::unload operation

◆ unref()

int reference_caching::channel_imp::unref ( )
inline

◆ version()

unsigned int reference_caching::channel_imp::version ( )
inline

Member Data Documentation

◆ m_has_ignore_list

std::atomic<bool> reference_caching::channel_imp::m_has_ignore_list
private

◆ m_ignore_list

service_names_set<std::string, std::less<std::string> > reference_caching::channel_imp::m_ignore_list
private

◆ m_lock

mysql_rwlock_t reference_caching::channel_imp::m_lock
private

◆ m_reference_count

std::atomic<int> reference_caching::channel_imp::m_reference_count
private

◆ m_service_names

service_names_set reference_caching::channel_imp::m_service_names
private

◆ m_version

std::atomic<unsigned int> reference_caching::channel_imp::m_version
private

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