MySQL 8.4.0
Source Code Documentation
dynamic_loader.cc File Reference
#include <assert.h>
#include <mysql/components/minimal_chassis.h>
#include <mysql/components/my_service.h>
#include <mysql/components/service_implementation.h>
#include <mysql/components/services/dynamic_loader.h>
#include <mysql/components/services/dynamic_loader_scheme_file.h>
#include <mysql/components/services/dynamic_loader_service_notification.h>
#include <mysql/components/services/mysql_runtime_error_service.h>
#include <mysql/components/services/registry.h>
#include <mysqld_error.h>
#include <stddef.h>
#include <algorithm>
#include <functional>
#include <map>
#include <memory>
#include <set>
#include <vector>
#include <mysql/components/services/mysql_rwlock.h>
#include "component_common.h"
#include "depth_first_search.h"
#include "dynamic_loader_imp.h"
#include "mysql_component_imp.h"
#include "registry_imp.h"
#include "scope_guard.h"
#include "registry_metadata.cc.inc"

Classes

struct  my_h_component_iterator_imp
 
struct  my_h_component_metadata_iterator_imp
 

Macros

#define REGISTRY_IMP   mysql_dynamic_loader_imp
 
#define REGISTRY   mysql_dynamic_loader_imp::components_list
 
#define REGISTRY_TYPE   my_component_registry
 
#define LOCK   mysql_dynamic_loader_imp::LOCK_dynamic_loader
 
#define ITERATOR_TYPE   my_h_component_iterator_imp
 
#define METADATA_ITERATOR_TYPE   my_h_component_metadata_iterator_imp
 
#define OBJECT_ITERATOR   my_h_component_iterator
 
#define METADATA_ITERATOR   my_h_component_metadata_iterator
 

Functions

 REQUIRES_SERVICE_PLACEHOLDER (mysql_runtime_error)
 This place holder is required for the mysql_runtime_error service. More...
 
static void init_dynamic_loader_psi_keys (void)
 

Variables

const mysql_service_registry_t imp_mysql_minimal_chassis_registry
 
static PSI_rwlock_key key_rwlock_LOCK_dynamic_loader
 
static PSI_rwlock_info all_dynamic_loader_rwlocks []
 

Macro Definition Documentation

◆ ITERATOR_TYPE

#define ITERATOR_TYPE   my_h_component_iterator_imp

◆ LOCK

◆ METADATA_ITERATOR

#define METADATA_ITERATOR   my_h_component_metadata_iterator

◆ METADATA_ITERATOR_TYPE

#define METADATA_ITERATOR_TYPE   my_h_component_metadata_iterator_imp

◆ OBJECT_ITERATOR

#define OBJECT_ITERATOR   my_h_component_iterator

◆ REGISTRY

◆ REGISTRY_IMP

#define REGISTRY_IMP   mysql_dynamic_loader_imp

◆ REGISTRY_TYPE

#define REGISTRY_TYPE   my_component_registry

Function Documentation

◆ init_dynamic_loader_psi_keys()

static void init_dynamic_loader_psi_keys ( void  )
static

◆ REQUIRES_SERVICE_PLACEHOLDER()

REQUIRES_SERVICE_PLACEHOLDER ( mysql_runtime_error  )

This place holder is required for the mysql_runtime_error service.

The service is used in mysql_error_service_printf() api, which is the replacement for my_error() server api.

Variable Documentation

◆ all_dynamic_loader_rwlocks

PSI_rwlock_info all_dynamic_loader_rwlocks[]
static
Initial value:
= {
#define PSI_DOCUMENT_ME
Definition: component_common.h:29
#define PSI_FLAG_SINGLETON
Singleton flag.
Definition: component_common.h:35
static PSI_rwlock_key key_rwlock_LOCK_dynamic_loader
Definition: dynamic_loader.cc:310

◆ imp_mysql_minimal_chassis_registry

const mysql_service_registry_t imp_mysql_minimal_chassis_registry
extern
Initial value:
= {
static mysql_service_status_t acquire(const char *service_name, my_h_service *out_service) noexcept
Finds and acquires a Service by name.
Definition: registry.cc:119
static mysql_service_status_t acquire_related(const char *service_name, my_h_service service, my_h_service *out_service) noexcept
Finds a Service by name.
Definition: registry.cc:141
static mysql_service_status_t release(my_h_service service) noexcept
Releases the Service Implementation previously acquired.
Definition: registry.cc:159

◆ key_rwlock_LOCK_dynamic_loader

PSI_rwlock_key key_rwlock_LOCK_dynamic_loader
static