MySQL 9.2.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
routing_guidelines_version.h
Go to the documentation of this file.
1/*
2 Copyright (c) 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 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 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 _MYSQLROUTER_ROUTING_GUIDELINES_VERSION_INCLUDED_
26#define _MYSQLROUTER_ROUTING_GUIDELINES_VERSION_INCLUDED_
27
30
31#include <array>
32#include <string>
33
34namespace mysqlrouter {
35
37
39
40// New versions supported should be put at the end.
41[[maybe_unused]] constexpr std::array kSupportedRoutingGuidelinesVersions{
42 kBaseRoutingGuidelines, // Initial routing guidelines version
43};
44
45std::string ROUTER_UTILS_EXPORT
46to_string(const RoutingGuidelinesVersion &version);
47
48RoutingGuidelinesVersion ROUTER_UTILS_EXPORT
50
51RoutingGuidelinesVersion ROUTER_UTILS_EXPORT
52routing_guidelines_version_from_string(const std::string &version_string);
53
57
58} // namespace mysqlrouter
59
60#endif
Definition: base64.h:43
RoutingGuidelinesVersion ROUTER_UTILS_EXPORT get_routing_guidelines_supported_version()
Definition: routing_guidelines_version.cc:40
bool ROUTER_UTILS_EXPORT routing_guidelines_version_is_compatible(const mysqlrouter::RoutingGuidelinesVersion &required, const mysqlrouter::RoutingGuidelinesVersion &available)
Definition: routing_guidelines_version.cc:83
RoutingGuidelinesVersion ROUTER_UTILS_EXPORT routing_guidelines_version_from_string(const std::string &version_string)
Definition: routing_guidelines_version.cc:44
constexpr std::array kSupportedRoutingGuidelinesVersions
Definition: routing_guidelines_version.h:41
std::string ROUTER_CLUSTER_EXPORT to_string(const MetadataSchemaVersion &version)
Definition: cluster_metadata.cc:487
constexpr RoutingGuidelinesVersion kBaseRoutingGuidelines
Definition: routing_guidelines_version.h:38
required uint64 version
Definition: replication_group_member_actions.proto:41
#define ROUTER_UTILS_EXPORT
Definition: router_utils_export.h:15
Definition: routing_guidelines_version.h:36
Definition: version_base.h:33