MySQL 9.5.0
Source Code Documentation
manifest_file_option_parser_helper.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2025, Oracle and/or its affiliates.
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License, version 2.0,
6 as published by the Free Software Foundation.
7
8 This program is designed to work with certain software (including
9 but not limited to OpenSSL) that is licensed under separate terms,
10 as designated in a particular file or component or in included license
11 documentation. The authors of MySQL hereby grant you an additional
12 permission to link the program and your derivative works with the
13 separately licensed software that they have either included with
14 the program or referenced in the documentation.
15
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License, version 2.0, for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program; if not, write to the Free Software
23 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
24
25#ifndef MANIFEST_FILE_OPTION_PARSER_HELPER_INCLUDED
26#define MANIFEST_FILE_OPTION_PARSER_HELPER_INCLUDED
27
28#define FN_REFLEN 512
30extern char opt_plugin_dir[FN_REFLEN];
31
32/**
33 Helper class for loading keyring component
34 Keyring component is loaded after minimal chassis initialization.
35 At this time, home dir and plugin dir may not be initialized.
36
37 This helper class sets them temporarily by reading configurations
38 and resets them in destructor.
39*/
41 public:
42 Manifest_file_option_parser_helper(int argc, char **argv);
43
45
46 bool valid() const { return valid_; }
47
48 private:
49 /* Ensure the backup buffers have the same size as the source ones.*/
50 static constexpr size_t mysql_real_data_home_size{
52 static constexpr size_t opt_plugin_dir_size{std::size(opt_plugin_dir)};
53 char *datadir_;
57 bool valid_;
58};
59
60#endif // MANIFEST_FILE_OPTION_PARSER_HELPER_INCLUDED
Helper class for loading keyring component Keyring component is loaded after minimal chassis initiali...
Definition: manifest_file_option_parser_helper.h:40
Manifest_file_option_parser_helper(int argc, char **argv)
Definition: mysqld.cc:9057
static constexpr size_t opt_plugin_dir_size
Definition: manifest_file_option_parser_helper.h:52
char * datadir_
Definition: manifest_file_option_parser_helper.h:53
char save_homedir_[mysql_real_data_home_size]
Definition: manifest_file_option_parser_helper.h:55
~Manifest_file_option_parser_helper()
Definition: mysqld.cc:9159
static constexpr size_t mysql_real_data_home_size
Definition: manifest_file_option_parser_helper.h:50
bool valid_
Definition: manifest_file_option_parser_helper.h:57
char * plugindir_
Definition: manifest_file_option_parser_helper.h:54
char save_plugindir_[opt_plugin_dir_size]
Definition: manifest_file_option_parser_helper.h:56
bool valid() const
Definition: manifest_file_option_parser_helper.h:46
#define FN_REFLEN
Definition: manifest_file_option_parser_helper.h:28
char mysql_real_data_home[FN_REFLEN]
Definition: mysqld.cc:1523
char opt_plugin_dir[FN_REFLEN]
Definition: sql_plugin.cc:345
size_t size(const char *const c)
Definition: base64.h:46