MySQL 8.0.39
Source Code Documentation
composite_options_provider.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2014, 2024, 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
26#ifndef COMPOSITE_OPTIONS_PROVIDER_INCLUDED
27#define COMPOSITE_OPTIONS_PROVIDER_INCLUDED
28
31
32namespace Mysql {
33namespace Tools {
34namespace Base {
35namespace Options {
36
37/**
38 Provider that aggregates options from other providers.
39 It is still a provider, so can have have own options added.
40 */
42 public:
43 /**
44 Adds new providers to list. Last parameter value must be NULL.
45 */
46 void add_providers(I_options_provider *first, /*I_options_provider* */...);
47 /**
48 Adds new provider to list.
49 */
50 void add_provider(I_options_provider *options_provider);
51
52 /**
53 This callback is to be called after all options were parsed.
54 */
55 void options_parsed() override;
56
57 /**
58 Aggregates all options from itsself and all contained providers.
59 */
60 std::vector<my_option> generate_options() override;
61
62 private:
63 std::vector<I_options_provider *> m_options_providers;
64};
65
66} // namespace Options
67} // namespace Base
68} // namespace Tools
69} // namespace Mysql
70
71#endif
Common abstract class for options providers.
Definition: abstract_options_provider.h:55
Provider that aggregates options from other providers.
Definition: composite_options_provider.h:41
std::vector< my_option > generate_options() override
Aggregates all options from itsself and all contained providers.
Definition: composite_options_provider.cc:72
void options_parsed() override
This callback is to be called after all options were parsed.
Definition: composite_options_provider.cc:64
void add_provider(I_options_provider *options_provider)
Adds new provider to list.
Definition: composite_options_provider.cc:58
std::vector< I_options_provider * > m_options_providers
Definition: composite_options_provider.h:63
void add_providers(I_options_provider *first,...)
Adds new providers to list.
Definition: composite_options_provider.cc:38
Interface for basic options providers functionality.
Definition: i_options_provider.h:42
constexpr pos_type Options
Definition: http_request.h:261
Definition: abstract_connection_program.h:38