MySQL
8.0.33
Source Code Documentation
program.h
Go to the documentation of this file.
1
/*
2
Copyright (c) 2015, 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 PROGRAM_INCLUDED
26
#define PROGRAM_INCLUDED
27
28
#include <atomic>
29
#include <optional>
30
31
#include "
client/base/abstract_connection_program.h
"
32
#include "
client/dump/mysql_chain_element_options.h
"
33
#include "
client/dump/mysqldump_tool_chain_maker_options.h
"
34
35
namespace
Mysql
{
36
namespace
Tools {
37
namespace
Dump {
38
39
class
Program
:
public
Mysql::Tools::Base::Abstract_connection_program
{
40
public
:
41
Program
();
42
43
~Program
()
override
;
44
45
std::string
get_version
()
override
;
46
47
int
get_first_release_year
()
override
;
48
49
std::string
get_description
()
override
;
50
51
int
execute
(
const
std::vector<std::string> &positional_options)
override
;
52
53
void
create_options
()
override
;
54
55
void
error
(
const
Mysql::Tools::Base::Message_data
&message)
override
;
56
57
void
short_usage
()
override
;
58
59
void
check_mutually_exclusive_options
();
60
61
int
get_total_connections
();
62
63
int
get_error_code
()
override
;
64
65
private
:
66
bool
message_handler
(
const
Mysql::Tools::Base::Message_data
&message);
67
void
error_log_file_callback
(
char
*);
68
void
close_redirected_stderr
();
69
70
Mysql_chain_element_options
*
m_mysql_chain_element_options
;
71
Mysqldump_tool_chain_maker_options
*
m_mysqldump_tool_chain_maker_options
;
72
bool
m_single_transaction
;
73
bool
m_watch_progress
;
74
std::optional<std::string>
m_error_log_file
;
75
FILE
*
m_stderr
;
76
std::atomic<uint32_t>
m_error_code
;
77
};
78
79
}
// namespace Dump
80
}
// namespace Tools
81
}
// namespace Mysql
82
83
#endif
abstract_connection_program.h
Mysql::Tools::Base::Abstract_connection_program
Base class for all programs that use connection to MySQL database server.
Definition:
abstract_connection_program.h:45
Mysql::Tools::Base::Message_data
Structure to represent message from server sent after executing query.
Definition:
message_data.h:48
Mysql::Tools::Dump::Mysql_chain_element_options
Definition:
mysql_chain_element_options.h:36
Mysql::Tools::Dump::Mysqldump_tool_chain_maker_options
Definition:
mysqldump_tool_chain_maker_options.h:43
Mysql::Tools::Dump::Program
Definition:
program.h:39
Mysql::Tools::Dump::Program::get_description
std::string get_description() override
Returns string describing shortly current program.
Definition:
program.cc:230
Mysql::Tools::Dump::Program::m_stderr
FILE * m_stderr
Definition:
program.h:75
Mysql::Tools::Dump::Program::error_log_file_callback
void error_log_file_callback(char *)
Definition:
program.cc:49
Mysql::Tools::Dump::Program::close_redirected_stderr
void close_redirected_stderr()
Definition:
program.cc:45
Mysql::Tools::Dump::Program::execute
int execute(const std::vector< std::string > &positional_options) override
Runs main program code.
Definition:
program.cc:142
Mysql::Tools::Dump::Program::m_mysqldump_tool_chain_maker_options
Mysqldump_tool_chain_maker_options * m_mysqldump_tool_chain_maker_options
Definition:
program.h:71
Mysql::Tools::Dump::Program::m_error_log_file
std::optional< std::string > m_error_log_file
Definition:
program.h:74
Mysql::Tools::Dump::Program::message_handler
bool message_handler(const Mysql::Tools::Base::Message_data &message)
Definition:
program.cc:62
Mysql::Tools::Dump::Program::get_first_release_year
int get_first_release_year() override
Returns year of first release of this program.
Definition:
program.cc:234
Mysql::Tools::Dump::Program::get_total_connections
int get_total_connections()
Definition:
program.cc:122
Mysql::Tools::Dump::Program::m_error_code
std::atomic< uint32_t > m_error_code
Definition:
program.h:76
Mysql::Tools::Dump::Program::get_version
std::string get_version() override
Returns string describing current version of this program.
Definition:
program.cc:236
Mysql::Tools::Dump::Program::m_mysql_chain_element_options
Mysql_chain_element_options * m_mysql_chain_element_options
Definition:
program.h:70
Mysql::Tools::Dump::Program::m_watch_progress
bool m_watch_progress
Definition:
program.h:73
Mysql::Tools::Dump::Program::create_options
void create_options() override
Creates all options that will be provided.
Definition:
program.cc:79
Mysql::Tools::Dump::Program::check_mutually_exclusive_options
void check_mutually_exclusive_options()
Definition:
program.cc:105
Mysql::Tools::Dump::Program::short_usage
void short_usage() override
Prints program invocation message.
Definition:
program.cc:244
Mysql::Tools::Dump::Program::~Program
~Program() override
Definition:
program.cc:238
Mysql::Tools::Dump::Program::Program
Program()
Definition:
program.cc:253
Mysql::Tools::Dump::Program::m_single_transaction
bool m_single_transaction
Definition:
program.h:72
Mysql::Tools::Dump::Program::get_error_code
int get_error_code() override
Return error code.
Definition:
program.cc:140
Mysql::Tools::Dump::Program::error
void error(const Mysql::Tools::Base::Message_data &message) override
Handles general errors.
Definition:
program.cc:67
mysql_chain_element_options.h
mysqldump_tool_chain_maker_options.h
Mysql
Definition:
abstract_connection_program.h:37
consts::FILE
const std::string FILE("FILE")
client
dump
program.h
Generated by
1.9.2