MySQL 8.4.0
Source Code Documentation
gcs_member_identifier.h
Go to the documentation of this file.
1/* Copyright (c) 2014, 2024, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is designed to work with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have either included with
13 the program or referenced in the documentation.
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#ifndef GCS_MEMBER_IDENTIFIER_INCLUDED
25#define GCS_MEMBER_IDENTIFIER_INCLUDED
26
27#include <string>
28
29/**
30 @class Gcs_member_identifier
31
32 It represents the identity of a group member within a certain group.
33 It can be the same or different within groups.
34
35 One should avoid creating this representation from outside the binding,
36 since each one might have its own internal representations.
37 Instead one should use the Gcs_control_interface::get_local_information
38 method to know our own identification within the group.
39 */
41 public:
42 /**
43 Gcs_member_identifier constructor.
44
45 @param[in] member_id the member identifier
46 */
47
48 explicit Gcs_member_identifier(const std::string &member_id);
49
55
56 virtual ~Gcs_member_identifier() = default;
57
58 /**
59 @return the member identifier
60 */
61
62 const std::string &get_member_id() const;
63
64 /**
65 Redefinition of the operator less, to allow usage as key in maps.
66
67 @param[in] other the Gcs_member_identifier to compare to
68
69 @return the result of comparing internal representation with the
70 compare operation from the string object
71 */
72
73 bool operator<(const Gcs_member_identifier &other) const;
74
75 /**
76 Redefinition of the operator equals, to allow usage in sets.
77
78 @param[in] other the Gcs_member_identifier to compare to
79
80 @return the result of comparing internal representation with the
81 compare operation from the string object
82 */
83
84 bool operator==(const Gcs_member_identifier &other) const;
85
86 private:
87 std::string m_member_id;
88};
89#endif // GCS_MEMBER_IDENTIFIER_INCLUDED
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:40
Gcs_member_identifier & operator=(Gcs_member_identifier &&)=default
Gcs_member_identifier(const Gcs_member_identifier &)=default
bool operator<(const Gcs_member_identifier &other) const
Redefinition of the operator less, to allow usage as key in maps.
Definition: gcs_member_identifier.cc:39
std::string m_member_id
Definition: gcs_member_identifier.h:87
Gcs_member_identifier()=default
const std::string & get_member_id() const
Definition: gcs_member_identifier.cc:35
Gcs_member_identifier(Gcs_member_identifier &&)=default
virtual ~Gcs_member_identifier()=default
bool operator==(const Gcs_member_identifier &other) const
Redefinition of the operator equals, to allow usage in sets.
Definition: gcs_member_identifier.cc:44
Gcs_member_identifier & operator=(const Gcs_member_identifier &)=default