MySQL  8.0.18
Source Code Documentation
server_component.h
Go to the documentation of this file.
1 /* Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
2 
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6 
7 This program is also distributed with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have included with MySQL.
13 
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License, version 2.0, for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef MYSQL_SERVER_COMPONENT_H
24 #define MYSQL_SERVER_COMPONENT_H
25 
32 
33 /**
34  @file components/mysql_server/server_component.h
35 
36  Defines MySQL Server Component. It contains both core Components
37  infrastructure and MySQL-specific Service Implementations. It is a subject for
38  dividing into separate components in future.
39 */
40 
41 /* Service implementation initialization/deinitialization methods for all parts
42  of components subsystem that requires one. */
43 void registry_init();
44 void registry_deinit();
45 
46 void dynamic_loader_init();
48 
49 bool persistent_dynamic_loader_init(void *thd);
51 
54 
64 
67 
70 
71 /* implementation of the built-in components */
72 
73 /**
74  Bootstraps service registry and dynamic loader and make ready all basic
75  server services.
76 
77  @param [out] registry A Service implementation the the Registry Service. May
78  be NULL.
79  @return Status of performed operation
80  @retval false success
81  @retval true failure
82 */
83 bool mysql_services_bootstrap(SERVICE_TYPE(registry) * *registry);
84 
85 /**
86  Shutdowns dynamic loader.
87 */
89 
90 /**
91  Shutdowns service registry making sure all basic services are unregistered.
92  Will fail if any service implementation is in use.
93 
94  @return Status of performed operation
95  @retval false success
96  @retval true failure
97 */
99 
100 void mysql_components_handle_std_exception(const char *funcname);
101 
102 /* A declaration of registry service required for my_service<> to work. */
103 extern SERVICE_TYPE(registry) imp_mysql_server_registry;
104 
105 extern SERVICE_TYPE(registry_registration)
107 
108 #endif /* MYSQL_SERVER_COMPONENT_H */
void persistent_dynamic_loader_deinit()
Definition: persistent_dynamic_loader.cc:571
void dynamic_loader_init()
Definition: dynamic_loader.cc:1397
void dynamic_loader_scheme_file_init()
Definition: dynamic_loader_scheme_file.cc:229
void mysql_comp_sys_var_services_init()
Definition: component_sys_var_service.cc:88
#define SERVICE_TYPE(name)
void mysql_comp_status_var_services_init()
Its a dummy initialization function.
Definition: component_status_var_service.cc:36
void dynamic_loader_scheme_file_deinit()
Definition: dynamic_loader_scheme_file.cc:236
void mysql_security_context_init()
Its a dummy initialization function.
Definition: security_context_imp.cc:37
void mysql_string_services_init()
The string functions as a service to the mysql_server component.
Definition: mysql_string_service.cc:51
void mysql_comp_system_variable_source_init()
Definition: system_variable_source_imp.cc:29
const mysql_service_registry_t imp_mysql_server_registry
Definition: server_component.cc:72
void registry_init()
Definition: registry.cc:677
void mysql_audit_api_service_init()
Definition: audit_api_message_service_imp.cc:30
bool mysql_services_bootstrap(const mysql_service_registry_t **registry)
Bootstraps service registry and dynamic loader and make ready all basic server services.
Definition: server_component.cc:393
void registry_deinit()
Definition: registry.cc:684
void mysql_current_thread_reader_imp_init()
A dummy initialization function.
Definition: mysql_current_thread_reader_imp.cc:34
void mysql_server_ongoing_transactions_query_init()
Definition: ongoing_transaction_query_service.cc:29
void shutdown_dynamic_loader()
Shutdowns dynamic loader.
Definition: server_component.cc:435
void mysql_keyring_iterator_service_init()
Definition: keyring_iterator_service_imp.cc:32
bool persistent_dynamic_loader_init(void *thd)
Initializes persistence store, loads all groups of components registered in component table...
Definition: persistent_dynamic_loader.cc:566
const mysql_service_registry_registration_t imp_mysql_server_registry_registration
Definition: server_component.cc:76
void clone_protocol_service_init()
Definition: clone_protocol_service.cc:44
void dynamic_loader_deinit()
Definition: dynamic_loader.cc:1407
bool mysql_services_shutdown()
Shutdowns service registry making sure all basic services are unregistered.
Definition: server_component.cc:450
void page_track_service_init()
Definition: page_track_service.cc:20
void mysql_components_handle_std_exception(const char *funcname)
Checks if last thrown exception is any kind of standard exceptions, i.e.
Definition: server_component.cc:469
void host_application_signal_imp_init()
A dummy initialization function.
Definition: host_application_signal_imp.cc:39
void mysql_backup_lock_service_init()
Definition: backup_lock_service.cc:31