MySQL 8.3.0
Source Code Documentation
debug_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 DEBUG_OPTIONS_INCLUDED
26#define DEBUG_OPTIONS_INCLUDED
27
28#include <optional>
29
31#include "my_compiler.h"
32
33namespace Mysql {
34namespace Tools {
35namespace Base {
36
37class Abstract_program;
38
39namespace Options {
40
41/**
42 Options provider providing debugging options.
43 */
45 public:
46 /**
47 Constructs new debug options provider.
48 @param program Pointer to main program class.
49 */
50 explicit Debug_options(Abstract_program *program);
51 /**
52 Creates all options that will be provided.
53 Implementation of Abstract_options_provider virtual method.
54 */
55 void create_options() override;
56 /**
57 Callback to be called when command-line options parsing have finished.
58 */
59 void options_parsed() override;
60
61 private:
62 void debug_option_callback(char *argument [[maybe_unused]]);
63
65 bool m_debug_info_flag{false};
66 bool m_debug_check_flag{false};
67 std::optional<std::string> m_dbug_option;
68};
69
70} // namespace Options
71} // namespace Base
72} // namespace Tools
73} // namespace Mysql
74
75#endif
Base class for all MySQL client tools.
Definition: abstract_program.h:46
Common abstract class for options providers.
Definition: abstract_options_provider.h:54
Options provider providing debugging options.
Definition: debug_options.h:44
bool m_debug_check_flag
Definition: debug_options.h:66
Abstract_program * m_program
Definition: debug_options.h:64
void create_options() override
Creates all options that will be provided.
Definition: debug_options.cc:56
void debug_option_callback(char *argument)
Definition: debug_options.cc:80
void options_parsed() override
Callback to be called when command-line options parsing have finished.
Definition: debug_options.cc:87
bool m_debug_info_flag
Definition: debug_options.h:65
std::optional< std::string > m_dbug_option
Definition: debug_options.h:67
Debug_options(Abstract_program *program)
Constructs new debug options provider.
Definition: debug_options.cc:44
Header for compiler-dependent features.
constexpr pos_type Options
Definition: http_request.h:260
Definition: abstract_connection_program.h:39