24#ifndef GCS_XCOM_GROUP_MEMBER_INFORMATION_INCLUDED
25#define GCS_XCOM_GROUP_MEMBER_INFORMATION_INCLUDED
46#include "plugin/group_replication/libmysqlgcs/xdr_gen/xcom_vp.h"
216 const unsigned int node_no,
446 const std::vector<Gcs_xcom_node_information> &
get_nodes()
const;
519 bool encode(
unsigned int *ptr_size,
char const ***ptr_addrs,
538 std::vector<Gcs_xcom_node_information>
m_nodes;
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:40
Stores connection information associated with a node.
Definition: gcs_xcom_group_member_information.h:51
virtual ~Gcs_xcom_node_address()
std::string m_member_ip
Definition: gcs_xcom_group_member_information.h:105
bool is_valid() const
A Gcs_xcom_node_address holds the representation IP:PORT of an XCom node.
Definition: gcs_xcom_group_member_information.cc:62
xcom_port get_member_port()
Return the port number.
Definition: gcs_xcom_group_member_information.cc:56
std::string & get_member_ip()
Return the IP address.
Definition: gcs_xcom_group_member_information.cc:54
std::string m_member_address
Definition: gcs_xcom_group_member_information.h:100
Gcs_xcom_node_address(std::string member_address)
Gcs_xcom_node_address constructor.
Definition: gcs_xcom_group_member_information.cc:37
xcom_port m_member_port
Definition: gcs_xcom_group_member_information.h:110
std::string & get_member_address()
Return address using the format ip:port.
Definition: gcs_xcom_group_member_information.cc:50
std::string * get_member_representation() const
Return an internal representation.
Definition: gcs_xcom_group_member_information.cc:58
This class contains information on the configuration, i.e set of nodes or simply site definition.
Definition: gcs_xcom_group_member_information.h:391
bool is_valid() const
Return with the configuration is valid or not.
Definition: gcs_xcom_group_member_information.h:431
void add_node(const Gcs_xcom_node_information &node)
Add a node to the set of nodes.
Definition: gcs_xcom_group_member_information.cc:350
unsigned int get_node_no() const
Return the index of the current node (i.e.
Definition: gcs_xcom_group_member_information.cc:299
bool encode(unsigned int *ptr_size, char const ***ptr_addrs, blob **ptr_uuids)
Encode the information on the set of nodes in a format that can be interpreted by XCOM to boot,...
Definition: gcs_xcom_group_member_information.cc:382
void set_node_no(unsigned int node_no)
Definition: gcs_xcom_group_member_information.cc:295
char const ** m_addrs
Definition: gcs_xcom_group_member_information.h:548
const std::vector< Gcs_xcom_node_information > & get_nodes() const
Return a reference to the addresses' vector.
Definition: gcs_xcom_group_member_information.cc:302
blob * m_uuids
Definition: gcs_xcom_group_member_information.h:553
void remove_node(const Gcs_xcom_node_information &node)
Remove a node from the set of nodes.
Definition: gcs_xcom_group_member_information.cc:355
unsigned int m_node_no
Definition: gcs_xcom_group_member_information.h:533
const Gcs_xcom_node_information * get_node(const Gcs_member_identifier &member_id) const
Return a pointer to a node if it exists, otherwise NULL.
Definition: gcs_xcom_group_member_information.cc:307
void clear_nodes()
Clear the set of nodes.
Definition: gcs_xcom_group_member_information.cc:377
Gcs_xcom_nodes(const Gcs_xcom_nodes &)
Gcs_xcom_nodes()
Constructor that reads the site definition and whether a node is considered dead or alive to build a ...
Definition: gcs_xcom_group_member_information.cc:258
unsigned int m_size
Definition: gcs_xcom_group_member_information.h:543
void free_encode()
Definition: gcs_xcom_group_member_information.cc:431
unsigned int get_size() const
Return the number of nodes in the set.
Definition: gcs_xcom_group_member_information.cc:346
std::vector< Gcs_xcom_node_information > m_nodes
Definition: gcs_xcom_group_member_information.h:538
bool empty() const
Whether the set of nodes is empty or not.
Definition: gcs_xcom_group_member_information.cc:348
void add_nodes(const Gcs_xcom_nodes &xcom_nodes)
Clear up the current set and add a new set of nodes.
Definition: gcs_xcom_group_member_information.cc:367
virtual ~Gcs_xcom_nodes()
Destructor for Gcs_xcom_nodes.
Definition: gcs_xcom_group_member_information.cc:292
Gcs_xcom_nodes & operator=(const Gcs_xcom_nodes &)
Definition: gcs_xcom_proxy.h:53
Definition: gcs_xcom_group_member_information.h:116
std::pair< bool, blob > make_xcom_blob() const
Converts this UUID into its corresponding XCom blob type.
Definition: gcs_xcom_group_member_information.cc:239
std::string actual_value
Definition: gcs_xcom_group_member_information.h:172
static Gcs_xcom_uuid create_uuid()
Definition: gcs_xcom_group_member_information.cc:178
Gcs_xcom_uuid(const std::string xcom_uuid) noexcept
Definition: gcs_xcom_group_member_information.h:126
bool decode(const uchar *buffer, const unsigned int size)
Definition: gcs_xcom_group_member_information.cc:226
bool encode(uchar **buffer, unsigned int *size) const
Definition: gcs_xcom_group_member_information.cc:213
unsigned char uchar
Definition: my_inttypes.h:52
constexpr value_type blob
Definition: classic_protocol_constants.h:272
static bool timeout(bool(*wait_condition)())
Timeout function.
Definition: log0meb.cc:498
size_t size(const char *const c)
Definition: base64.h:46
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:418
#define VOID_NODE_NO
Definition: node_no.h:36
Definition: site_struct.h:43
Rudimentary task system in portable C, based on Tom Duff's switch-based coroutine trick and a stack o...
unsigned short xcom_port
Definition: xcom_common.h:46
static void alive(server *s)
Definition: xcom_transport.cc:174