MySQL
8.2.0
Source Code Documentation
help_options.h
Go to the documentation of this file.
1
/*
2
Copyright (c) 2014, 2023, 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 also distributed 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 included with MySQL.
14
15
This program is distributed in the hope that it will be useful,
16
but WITHOUT ANY WARRANTY; without even the implied warranty of
17
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
GNU General Public License, version 2.0, for more details.
19
20
You should have received a copy of the GNU General Public License
21
along with this program; if not, write to the Free Software
22
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
23
*/
24
25
#ifndef HELP_OPTIONS_INCLUDED
26
#define HELP_OPTIONS_INCLUDED
27
28
#include "
client/base/abstract_options_provider.h
"
29
#include "
my_compiler.h
"
30
31
namespace
Mysql
{
32
namespace
Tools {
33
namespace
Base {
34
35
class
Abtract_program;
36
37
namespace
Options
{
38
39
/**
40
Options provider providing --help option and handling usage printing.
41
*/
42
class
Help_options
:
public
Abstract_options_provider
{
43
public
:
44
/**
45
Constructs new help options provider.
46
@param program Pointer to main program class, used to collect list of all
47
options available in program.
48
*/
49
explicit
Help_options
(
Base::Abstract_program
*program);
50
/**
51
Creates all options that will be provided.
52
Implementation of Abstract_options_provider virtual method.
53
*/
54
void
create_options
()
override
;
55
/**
56
Prints program usage message.
57
*/
58
virtual
void
print_usage
();
59
60
private
:
61
void
help_callback
(
char
*argument [[maybe_unused]]);
62
void
version_callback
(
char
*argument [[maybe_unused]]);
63
64
void
print_version_line
();
65
66
Abstract_program
*
m_program
;
67
};
68
69
}
// namespace Options
70
}
// namespace Base
71
}
// namespace Tools
72
}
// namespace Mysql
73
74
#endif
abstract_options_provider.h
Mysql::Tools::Base::Abstract_program
Base class for all MySQL client tools.
Definition:
abstract_program.h:46
Mysql::Tools::Base::Options::Abstract_options_provider
Common abstract class for options providers.
Definition:
abstract_options_provider.h:54
Mysql::Tools::Base::Options::Help_options
Options provider providing –help option and handling usage printing.
Definition:
help_options.h:42
Mysql::Tools::Base::Options::Help_options::create_options
void create_options() override
Creates all options that will be provided.
Definition:
help_options.cc:46
Mysql::Tools::Base::Options::Help_options::Help_options
Help_options(Base::Abstract_program *program)
Constructs new help options provider.
Definition:
help_options.cc:44
Mysql::Tools::Base::Options::Help_options::version_callback
void version_callback(char *argument)
Definition:
help_options.cc:63
Mysql::Tools::Base::Options::Help_options::help_callback
void help_callback(char *argument)
Definition:
help_options.cc:58
Mysql::Tools::Base::Options::Help_options::print_version_line
void print_version_line()
A helper function.
Definition:
help_options.cc:69
Mysql::Tools::Base::Options::Help_options::m_program
Abstract_program * m_program
Definition:
help_options.h:66
Mysql::Tools::Base::Options::Help_options::print_usage
virtual void print_usage()
Prints program usage message.
Definition:
help_options.cc:71
my_compiler.h
Header for compiler-dependent features.
HttpMethod::Pos::Options
constexpr pos_type Options
Definition:
http_request.h:260
Mysql
Definition:
abstract_connection_program.h:39
client
base
help_options.h
Generated by
1.9.2