24#ifndef MYSQL_SERVER_REGISTRY_H 
   25#define MYSQL_SERVER_REGISTRY_H 
  114      const char *service_implementation_name, 
my_h_service ptr);
 
  129                            (
const char *service_implementation_name,
 
  160                            (
const char *service_implementation_name));
 
  172                            (
const char *service_implementation_name));
 
  194                            (
const char *service_name_pattern,
 
  217                                           const char **out_name));
 
  248#define OBJECT_ITERATOR my_h_service_iterator 
  249#define METADATA_ITERATOR my_h_service_metadata_iterator 
Locks RW-lock and releases lock on scope exit.
Definition: rwlock_scoped_lock.h:33
 
Definition: registry_imp.h:30
 
static void init()
Initializes registry for usage.
Definition: registry.cc:99
 
static bool register_service_sans_notify(const char *service_implementation_name, my_h_service ptr)
Registers a new Service Implementation.
Definition: registry.cc:190
 
static mysql_service_status_t register_service(const char *service_implementation_name, my_h_service ptr) noexcept
Implementation of the top level register service call.
Definition: registry.cc:201
 
static mysql_rwlock_t LOCK_registry
Definition: registry_imp.h:31
 
static bool unregister_sans_notify(const char *service_implementation_name)
Removes previously registered Service Implementation from registry.
Definition: registry.cc:220
 
static mysql_service_status_t iterator_get(my_h_service_iterator iterator, const char **out_name) noexcept
Gets name of Service pointed to by iterator.
Definition: registry.cc:352
 
static mysql_service_status_t iterator_is_valid(my_h_service_iterator iterator) noexcept
Checks if specified iterator is valid, i.e.
Definition: registry.cc:408
 
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:143
 
static mysql_service_status_t set_default(const char *service_implementation_name) noexcept
Sets new default Service Implementation for corresponding Service name.
Definition: registry.cc:257
 
static minimal_chassis::rwlock_scoped_lock lock_registry_for_write()
Locks whole registry for write.
Definition: registry.cc:127
 
static void deinit()
De-initializes registry.
Definition: registry.cc:109
 
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:165
 
static mysql_service_status_t unregister(const char *service_implementation_name) noexcept
Implementation of the top level unregister service call.
Definition: registry.cc:229
 
static mysql_service_status_t iterator_next(my_h_service_iterator iterator) noexcept
Advances specified iterator to next element.
Definition: registry.cc:382
 
static void iterator_release(my_h_service_iterator iterator) noexcept
Releases Service implementations iterator.
Definition: registry.cc:329
 
static mysql_service_status_t release(my_h_service service) noexcept
Releases the Service Implementation previously acquired.
Definition: registry.cc:183
 
static void rw_lock_deinit()
De-initializes RW lock.
Definition: registry.cc:117
 
static mysql_service_status_t iterator_create(const char *service_name_pattern, my_h_service_iterator *out_iterator) noexcept
Creates iterator that iterates through all registered Service Implementations.
Definition: registry.cc:285
 
Definition: registry_no_lock_imp.h:39
 
struct my_h_service_imp * my_h_service
A handle type for acquired Service.
Definition: registry.h:33
 
#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
 
#define DEFINE_METHOD(retval, name, args)
A macro to ensure method implementation has required properties, that is it does not throw exceptions...
Definition: service_implementation.h:79
 
Definition: registry.cc:73
 
An instrumented rwlock structure.
Definition: mysql_rwlock_bits.h:51