MySQL 8.0.30
Source Code Documentation
component_sys_var_service_imp.h
Go to the documentation of this file.
1/* Copyright (c) 2017, 2022, Oracle and/or its affiliates.
2
3This program is free software; you can redistribute it and/or modify
4it under the terms of the GNU General Public License, version 2.0,
5as published by the Free Software Foundation.
6
7This program is also distributed with certain software (including
8but not limited to OpenSSL) that is licensed under separate terms,
9as designated in a particular file or component or in included license
10documentation. The authors of MySQL hereby grant you an additional
11permission to link the program and your derivative works with the
12separately licensed software that they have included with MySQL.
13
14This program is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License, version 2.0, for more details.
18
19You should have received a copy of the GNU General Public License
20along with this program; if not, write to the Free Software
21Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22
23#ifndef COMPONENT_SYSTEM_VAR_SERVICE_H
24#define COMPONENT_SYSTEM_VAR_SERVICE_H
25
28
30
31/**
32 An implementation of the configuration system variables Service to register
33 variable and unregister variable.
34*/
36 public:
37 /**
38 Register's component system variables.
39
40 @param component_name name of the component
41 @param var_name variable name
42 @param flags tells about the variable type
43 @param comment variable comment message
44 @param check_func function pointer, which is called at variable check time
45 @param update_func function pointer, which is called at update time
46 @param check_arg type defined check constraints block
47 @param variable_value place holder for variable value
48 @return Status of performed operation
49 @retval false success
50 @retval true failure
51 */
53 (const char *component_name, const char *var_name,
54 int flags, const char *comment,
55 mysql_sys_var_check_func check_func,
56 mysql_sys_var_update_func update_func,
57 void *check_arg, void *variable_value));
58
59 /**
60 Get the component system variable value from the global structure.
61
62 @param component_name Name of the component
63 @param var_name Name of the variable
64 @param[in,out] val On input: a buffer to hold the value. On output a pointer
65 to the value.
66 @param[in,out] out_length_of_val On input: size of longest string that the
67 buffer can contain. On output the length of the copied string.
68 @return Status of performed operation
69 @retval false success
70 @retval true failure
71 */
73 (const char *component_name, const char *var_name,
74 void **val, size_t *out_length_of_val));
75
76 /**
77 Unregister's component system variable.
78
79 @param component_name name of the component
80 @param var_name Variable name
81 @return Status of performed operation
82 @retval false success
83 @retval true failure
84 */
86 (const char *component_name, const char *var_name));
87};
88#endif /* COMPONENT_SYSTEM_VAR_SERVICE_H */
An implementation of the configuration system variables Service to register variable and unregister v...
Definition: component_sys_var_service_imp.h:35
static mysql_service_status_t get_variable(const char *component_name, const char *var_name, void **val, size_t *out_length_of_val) noexcept
Get the component system variable value from the global structure.
Definition: component_sys_var_service.cc:460
static mysql_service_status_t unregister_variable(const char *component_name, const char *var_name) noexcept
Unregister's component system variable.
Definition: component_sys_var_service.cc:482
static mysql_service_status_t register_variable(const char *component_name, const char *var_name, int flags, const char *comment, mysql_sys_var_check_func check_func, mysql_sys_var_update_func update_func, void *check_arg, void *variable_value) noexcept
Register's component system variables.
Definition: component_sys_var_service.cc:120
int(* mysql_sys_var_check_func)(MYSQL_THD thd, SYS_VAR *var, void *save, struct st_mysql_value *value)
Signature for the check function.
Definition: component_sys_var_service.h:76
void(* mysql_sys_var_update_func)(MYSQL_THD thd, SYS_VAR *var, void *val_ptr, const void *save)
Signature for the update function.
Definition: component_sys_var_service.h:104
void mysql_comp_sys_var_services_init()
Definition: component_sys_var_service.cc:90
static int flags[50]
Definition: hp_test1.cc:39
#define comment
Definition: lexyy.cc:959
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:87