24#ifndef MYSQL_SERVER_REGISTRY_NO_LOCK_H
25#define MYSQL_SERVER_REGISTRY_NO_LOCK_H
36typedef std::map<const char *, mysql_service_implementation *, c_string_less>
41 typedef std::map<my_h_service, mysql_service_implementation *>
192 (
const char *service_implementation_name,
211 (
const char *service_implementation_name));
226 (
const char *service_implementation_name));
Definition: registry_no_lock_imp.h:39
static my_service_registry service_registry
Definition: registry_no_lock_imp.h:45
static bool acquire_nolock(const char *service_name, my_h_service *out_service)
Finds and acquires a Service by name.
Definition: registry_no_lock.cc:99
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_no_lock.cc:318
static bool release_nolock(my_h_service service)
Releases the Service Implementation previously acquired.
Definition: registry_no_lock.cc:132
static mysql_service_implementation * get_service_implementation_by_interface(my_h_service interface)
Finds a Service Implementation data structure based on the pointer to interface struct supplied.
Definition: registry_no_lock.cc:55
static mysql_service_status_t unregister(const char *service_implementation_name) noexcept
Removes previously registered Service Implementation from registry.
Definition: registry_no_lock.cc:405
static mysql_service_status_t register_service(const char *service_implementation_name, my_h_service ptr) noexcept
Registers a new Service Implementation.
Definition: registry_no_lock.cc:384
static mysql_service_status_t release(my_h_service service) noexcept
Releases the Service Implementation previously acquired.
Definition: registry_no_lock.cc:364
static uint64_t get_service_implementation_reference_count(my_h_service interface)
Gets current reference count for a Service Implementation related to the specified pointer to the int...
Definition: registry_no_lock.cc:76
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_no_lock.cc:296
std::map< my_h_service, mysql_service_implementation * > my_interface_mapping
Definition: registry_no_lock_imp.h:42
static my_interface_mapping interface_mapping
Definition: registry_no_lock_imp.h:46
static bool register_service_nolock(const char *service_implementation_name, my_h_service ptr)
Registers a new Service Implementation.
Definition: registry_no_lock.cc:162
static void deinit()
De-initializes registry, other structures.
Definition: registry_no_lock.cc:39
static bool unregister_nolock(const char *service_implementation_name)
Removes previously registered Service Implementation from registry.
Definition: registry_no_lock.cc:221
static mysql_service_status_t set_default(const char *service_implementation_name) noexcept
Sets new default Service Implementation for corresponding Service name.
Definition: registry_no_lock.cc:423
a Service implementation registry data
Definition: mysql_service_implementation.h:32
struct my_h_service_imp * my_h_service
A handle type for acquired Service.
Definition: registry.h:33
std::map< const char *, mysql_service_implementation *, c_string_less > my_service_registry
Definition: registry_no_lock.cc:34
std::map< const char *, mysql_service_implementation *, c_string_less > my_service_registry
Definition: registry_no_lock_imp.h:37
Specifies macros to define Service Implementations.
#define DEFINE_BOOL_METHOD(name, args)
A short macro to define method that returns bool, which is the most common case.
Definition: service_implementation.h:88