24#ifndef GCS_XCOM_PROXY_INCLUDED
25#define GCS_XCOM_PROXY_INCLUDED
28#include <unordered_set>
42#include "plugin/group_replication/libmysqlgcs/xdr_gen/xcom_vp.h"
44#define XCOM_COMM_STATUS_UNDEFINED -1
110 uint32_t group_id) = 0;
160 uint32_t group_id) = 0;
178 uint32_t group_id, xcom_event_horizon &event_horizon) = 0;
200 uint32_t group_id, xcom_event_horizon event_horizon) = 0;
221 u_int nr_preferred_leaders,
222 char const *preferred_leaders[],
223 node_no max_nr_leaders) = 0;
236 leader_info_data &leaders) = 0;
254 synode_app_data_array &reply) = 0;
565 uint32_t group_id_hash) = 0;
580 uint32_t group_id_hash) = 0;
597 uint32_t group_id_hash) = 0;
612 uint32_t group_id_hash) = 0;
628 uint32_t group_id_hash) = 0;
645 uint32_t group_id_hash) = 0;
667 xcom_event_horizon &event_horizon) = 0;
681 const std::unordered_set<Gcs_xcom_synode> &synode_set,
682 synode_app_data_array &reply) = 0;
693 xcom_event_horizon event_horizon) = 0;
696 u_int nr_preferred_leaders,
697 char const *preferred_leaders[],
698 node_no max_nr_leaders) = 0;
700 leader_info_data &leaders) = 0;
724 unsigned int group_id_hash) = 0;
780 app_data_ptr data) = 0;
840 uint32_t group_id_hash)
override;
842 uint32_t group_id_hash)
override;
844 uint32_t group_id_hash)
override;
846 uint32_t group_id_hash)
override;
848 uint32_t group_id_hash)
override;
851 uint32_t group_id_hash)
override;
855 xcom_event_horizon &event_horizon)
override;
857 xcom_event_horizon event_horizon)
override;
859 char const *preferred_leaders[],
860 node_no max_nr_leaders)
override;
862 leader_info_data &leaders)
override;
865 const std::unordered_set<Gcs_xcom_synode> &synode_set,
866 synode_app_data_array &reply)
override;
898 blob uuids[])
override;
901 uint32_t group_id)
override;
904 uint32_t group_id)
override;
906 uint32_t group_id, xcom_event_horizon &event_horizon)
override;
908 xcom_event_horizon event_horizon)
override;
910 char const *preferred_leaders[],
911 node_no max_nr_leaders)
override;
913 leader_info_data &leaders)
override;
916 uint32_t group_id_hash,
917 synode_no_array &synodes,
918 synode_app_data_array &reply)
override;
963 app_data_ptr data)
override;
1032 std::function<
bool(
void)> need_to_wait,
1033 std::function<
const std::string(
int res)> condition_event);
A Gcs_xcom_interface needs to have an instance of this class initialized before engaging XCom.
Definition: gcs_xcom_proxy.h:1046
void set_poll_spin_loops(unsigned int loops)
Configures how many loops to spin before blocking on the poll system call.
Definition: gcs_xcom_proxy.cc:626
bool set_identity(node_address *identity)
Configures XCom with its unique instance identifier, i.e.
Definition: gcs_xcom_proxy.cc:644
void init()
Initializes the data structures to communicate with XCom the application injected configuration optio...
Definition: gcs_xcom_proxy.cc:622
virtual ~Gcs_xcom_app_cfg()=default
void deinit()
Must be called when XCom is not engaged anymore.
Definition: gcs_xcom_proxy.cc:624
void set_statists_storage_implementation(Xcom_statistics_storage_interface *stats_storage)
Set XCom's.
Definition: gcs_xcom_proxy.cc:639
void set_xcom_cache_size(uint64_t size)
Configures the maximum size of the xcom cache.
Definition: gcs_xcom_proxy.cc:630
Gcs_xcom_app_cfg()=default
void set_network_namespace_manager(Network_namespace_manager *ns_mgr)
Sets the network namespace manager.
Definition: gcs_xcom_proxy.cc:634
This class contains information on the configuration, i.e set of nodes or simply site definition.
Definition: gcs_xcom_group_member_information.h:391
Definition: gcs_xcom_proxy.h:834
bool xcom_force_nodes(Gcs_xcom_nodes &nodes, uint32_t group_id_hash) override
Definition: gcs_xcom_proxy.cc:816
xcom_event_horizon xcom_get_minimum_event_horizon() override
Function to retrieve XCOM's minimum supported event horizon value.
Definition: gcs_xcom_proxy.cc:715
bool xcom_add_node(connection_descriptor &con, const Gcs_xcom_node_information &node, uint32_t group_id_hash) override
Function to add a node to XCOM.
Definition: gcs_xcom_proxy.cc:896
bool xcom_get_synode_app_data(Gcs_xcom_node_information const &xcom_instance, uint32_t group_id_hash, const std::unordered_set< Gcs_xcom_synode > &synode_set, synode_app_data_array &reply) override
Function to retrieve the application payloads decided on a set of synodes.
Definition: gcs_xcom_proxy.cc:780
xcom_event_horizon xcom_get_maximum_event_horizon() override
Function to retrieve XCOM's maximum supported event horizon value.
Definition: gcs_xcom_proxy.cc:719
bool test_xcom_tcp_connection(std::string &host, xcom_port port) override
Performs a test connection to the given XCom instance via TCP.
Definition: gcs_xcom_proxy.cc:905
bool serialize_nodes_information(Gcs_xcom_nodes &nodes, node_list &nl)
Definition: gcs_xcom_proxy.cc:831
bool xcom_get_leaders(uint32_t group_id_hash, leader_info_data &leaders) override
Definition: gcs_xcom_proxy.cc:748
~Gcs_xcom_proxy_base() override=default
bool xcom_add_nodes(connection_descriptor &con, Gcs_xcom_nodes &nodes, uint32_t group_id_hash) override
Function to add a set of nodes to XCOM.
Definition: gcs_xcom_proxy.cc:880
Gcs_xcom_proxy_base()=default
bool set_network_manager_active_provider(enum_transport_protocol new_value) override
Set XCom's network manager active provider.
Definition: gcs_xcom_proxy.cc:918
bool xcom_remove_nodes(Gcs_xcom_nodes &nodes, uint32_t group_id_hash) override
Function to remove a set of nodes from XCOM.
Definition: gcs_xcom_proxy.cc:678
void free_nodes_information(node_list &nl)
Definition: gcs_xcom_proxy.cc:857
bool xcom_boot_node(Gcs_xcom_node_information &node, uint32_t group_id_hash) override
Function used to boot a node in XCOM.
Definition: gcs_xcom_proxy.cc:863
bool xcom_set_event_horizon(uint32_t group_id_hash, xcom_event_horizon event_horizon) override
Function to reconfigure XCOM's event horizon.
Definition: gcs_xcom_proxy.cc:729
bool xcom_set_cache_size(uint64_t size) override
Function to reconfigure the maximum size of the XCom cache.
Definition: gcs_xcom_proxy.cc:811
bool xcom_set_leaders(uint32_t group_id_hash, u_int nr_preferred_leaders, char const *preferred_leaders[], node_no max_nr_leaders) override
Definition: gcs_xcom_proxy.cc:735
bool xcom_remove_node(const Gcs_xcom_node_information &node, uint32_t group_id_hash) override
Function to remove a node from XCOM.
Definition: gcs_xcom_proxy.cc:707
bool initialize_network_manager() override
Initializes XCom's Network Manager.
Definition: gcs_xcom_proxy.cc:910
bool xcom_get_event_horizon(uint32_t group_id_hash, xcom_event_horizon &event_horizon) override
Function to retrieve XCOM's event horizon.
Definition: gcs_xcom_proxy.cc:723
bool finalize_network_manager() override
Finalizes XCom's Network Manager.
Definition: gcs_xcom_proxy.cc:914
Definition: gcs_xcom_proxy.h:891
void xcom_signal_exit() override
This modifies the internal cached status and signals all threads that might be waiting on xcom_wait_e...
Definition: gcs_xcom_proxy.cc:526
bool get_should_exit() override
Function that retrieves the value that signals that XCom must be forcefully stopped.
Definition: gcs_xcom_proxy.cc:577
int m_ssl_mode
Definition: gcs_xcom_proxy.h:989
void xcom_exit() override
This member function finishes the XCom thread.
Definition: gcs_xcom_proxy.cc:251
const char * m_server_cert_file
Definition: gcs_xcom_proxy.h:991
void xcom_destroy_ssl() override
Definition: gcs_xcom_proxy.cc:299
enum_gcs_error xcom_wait_ready() override
This member waits for XCom to be initialized.
Definition: gcs_xcom_proxy.cc:465
void xcom_set_comms_status(int status) override
Definition: gcs_xcom_proxy.cc:564
bool xcom_client_set_leaders(uint32_t gid, u_int nr_preferred_leaders, char const *preferred_leaders[], node_no max_nr_leaders) override
This member function is responsible for triggering the reconfiguration of the leaders of the XCom con...
Definition: gcs_xcom_proxy.cc:129
const char * m_client_cert_file
Definition: gcs_xcom_proxy.h:993
node_address * new_node_address_uuid(unsigned int n, char const *names[], blob uuids[]) override
This is an utility member function that is used to call into XCom for creating list with node's addre...
Definition: gcs_xcom_proxy.cc:421
int xcom_get_ssl_fips_mode(const char *mode) override
Definition: gcs_xcom_proxy.cc:263
const char * m_tls_version
Definition: gcs_xcom_proxy.h:999
Gcs_xcom_proxy_impl(Gcs_xcom_proxy_impl const &)
bool xcom_is_exit() override
This verifies if XCom has finished or not.
Definition: gcs_xcom_proxy.cc:510
const char * m_crl_file
Definition: gcs_xcom_proxy.h:996
void set_should_exit(bool should_exit) override
Function that sets the value that signals that XCom must be forcefully stopped.
Definition: gcs_xcom_proxy.cc:581
enum_gcs_error xcom_wait_exit() override
Call this method to wait for XCom to exit.
Definition: gcs_xcom_proxy.cc:497
void xcom_set_cleanup() override
Clean up variables used to notify states in the XCOM's state machine.
Definition: gcs_xcom_proxy.cc:253
bool xcom_input_connect(std::string const &address, xcom_port port) override
Opens the input channel to XCom.
Definition: gcs_xcom_proxy.cc:585
bool xcom_client_close_connection(connection_descriptor *fd) override
This member function closes the connection to an XCom instance.
Definition: gcs_xcom_proxy.cc:46
My_xp_mutex_impl m_lock_xcom_comms_status
Definition: gcs_xcom_proxy.h:978
bool xcom_client_boot(node_list *nl, uint32_t group_id) override
This member function boots XCom.
Definition: gcs_xcom_proxy.cc:205
bool xcom_client_force_config(node_list *nl, uint32_t group_id) override
This method forces XCom to inject a new configuration in the group, even if it does not contain a maj...
Definition: gcs_xcom_proxy.cc:654
const char * m_ca_file
Definition: gcs_xcom_proxy.h:994
void xcom_wait_for_xcom_comms_status_change(int &status) override
Call this method to wait for XCom communications to be initialized.
Definition: gcs_xcom_proxy.cc:533
Gcs_xcom_input_queue m_xcom_input_queue
Definition: gcs_xcom_proxy.h:1005
site_def const * find_site_def(synode_no synode) override
Definition: gcs_xcom_proxy.cc:417
connection_descriptor * xcom_client_open_connection(std::string, xcom_port port) override
This member function opens a connection to an XCom instance.
Definition: gcs_xcom_proxy.cc:51
bool xcom_input_try_push(app_data_ptr data) override
Attempts to send the command data to XCom.
Definition: gcs_xcom_proxy.cc:599
bool xcom_client_add_node(connection_descriptor *fd, node_list *nl, uint32_t group_id) override
This member function is responsible to call into XCom consensus and add a node to the group.
Definition: gcs_xcom_proxy.cc:57
void xcom_set_ssl_parameters(ssl_parameters ssl, tls_parameters tls) override
Definition: gcs_xcom_proxy.cc:309
My_xp_cond_impl m_cond_xcom_ready
Definition: gcs_xcom_proxy.h:975
void xcom_set_ready(bool value) override
Definition: gcs_xcom_proxy.cc:484
void xcom_set_exit(bool value) override
This sets whether XCom has finished or not.
Definition: gcs_xcom_proxy.cc:520
bool xcom_use_ssl() override
Return whether the SSL will be used to encrypt data or not.
Definition: gcs_xcom_proxy.cc:303
int xcom_get_ssl_mode(const char *mode) override
Definition: gcs_xcom_proxy.cc:259
void xcom_input_disconnect() override
Closes the input channel to XCom.
Definition: gcs_xcom_proxy.cc:595
xcom_input_request_ptr xcom_input_try_pop() override
Attempts to retrieve incoming commands.
Definition: gcs_xcom_proxy.cc:618
const char * m_cipher
Definition: gcs_xcom_proxy.h:998
unsigned int m_wait_time
Definition: gcs_xcom_proxy.h:971
bool xcom_init_ssl() override
Initialize the SSL.
Definition: gcs_xcom_proxy.cc:276
const char * m_client_key_file
Definition: gcs_xcom_proxy.h:992
My_xp_cond_impl m_cond_xcom_exit
Definition: gcs_xcom_proxy.h:983
My_xp_socket_util * m_socket_util
Definition: gcs_xcom_proxy.h:986
Gcs_xcom_input_queue::future_reply xcom_input_try_push_and_get_reply(app_data_ptr data) override
Attempts to send the command data to XCom, and returns a future to XCom's reply.
Definition: gcs_xcom_proxy.cc:609
const char * m_crl_path
Definition: gcs_xcom_proxy.h:997
bool m_is_xcom_ready
Definition: gcs_xcom_proxy.h:976
void xcom_signal_ready() override
Definition: gcs_xcom_proxy.cc:490
~Gcs_xcom_proxy_impl() override
Definition: gcs_xcom_proxy.cc:404
int m_xcom_comms_status
Definition: gcs_xcom_proxy.h:980
My_xp_cond_impl m_cond_xcom_comms_status
Definition: gcs_xcom_proxy.h:979
bool xcom_client_remove_node(node_list *nl, uint32_t group_id) override
This member function is responsible for triggering the removal of a node from the XCom configuration.
Definition: gcs_xcom_proxy.cc:67
const char * m_server_key_file
Definition: gcs_xcom_proxy.h:990
Gcs_xcom_proxy_impl()
Definition: gcs_xcom_proxy.cc:326
bool xcom_client_set_cache_size(uint64_t size) override
This member function is responsible for setting a new value for the maximum size of the XCom cache.
Definition: gcs_xcom_proxy.cc:193
int xcom_set_ssl_mode(int mode) override
Definition: gcs_xcom_proxy.cc:268
const char * m_tls_ciphersuites
Definition: gcs_xcom_proxy.h:1000
void xcom_init(xcom_port listen_port) override
This member function initializes XCom.
Definition: gcs_xcom_proxy.cc:244
void xcom_signal_comms_status_changed(int status) override
Definition: gcs_xcom_proxy.cc:570
const char * m_ca_path
Definition: gcs_xcom_proxy.h:995
My_xp_mutex_impl m_lock_xcom_ready
Definition: gcs_xcom_proxy.h:974
void delete_node_address(unsigned int n, node_address *na) override
This function is responsible to delete the list of nodes that had been previously created by new_node...
Definition: gcs_xcom_proxy.cc:41
bool xcom_is_ready() override
Definition: gcs_xcom_proxy.cc:474
Gcs_xcom_proxy_impl & operator=(Gcs_xcom_proxy_impl const &)
std::atomic_bool m_should_exit
Definition: gcs_xcom_proxy.h:1002
bool xcom_client_send_data(unsigned long long size, char *data) override
This member function is responsible for pushing data into consensus on XCom.
Definition: gcs_xcom_proxy.cc:216
bool xcom_client_get_leaders(uint32_t gid, leader_info_data &leaders) override
This member function is responsible for retrieving the leaders of the XCom configuration.
Definition: gcs_xcom_proxy.cc:154
My_xp_mutex_impl m_lock_xcom_exit
Definition: gcs_xcom_proxy.h:982
bool xcom_client_get_event_horizon(uint32_t group_id, xcom_event_horizon &event_horizon) override
This member function is responsible for retrieving the event horizon of the XCom configuration.
Definition: gcs_xcom_proxy.cc:87
enum_gcs_error xcom_wait_for_condition(My_xp_cond_impl &condition, My_xp_mutex_impl &condition_lock, std::function< bool(void)> need_to_wait, std::function< const std::string(int res)> condition_event)
Definition: gcs_xcom_proxy.cc:427
bool m_is_xcom_exit
Definition: gcs_xcom_proxy.h:984
bool xcom_has_comms_status_changed() override
Definition: gcs_xcom_proxy.cc:554
int xcom_set_ssl_fips_mode(int mode) override
Definition: gcs_xcom_proxy.cc:272
bool xcom_client_set_event_horizon(uint32_t group_id, xcom_event_horizon event_horizon) override
This member function is responsible for triggering the reconfiguration of the event horizon of the XC...
Definition: gcs_xcom_proxy.cc:116
bool xcom_client_get_synode_app_data(connection_descriptor *con, uint32_t group_id_hash, synode_no_array &synodes, synode_app_data_array &reply) override
This member function is responsible for retrieving the application payloads decided in the synodes in...
Definition: gcs_xcom_proxy.cc:183
Definition: gcs_xcom_proxy.h:53
virtual enum_gcs_error xcom_wait_exit()=0
Call this method to wait for XCom to exit.
virtual bool xcom_client_add_node(connection_descriptor *fd, node_list *nl, uint32_t group_id)=0
This member function is responsible to call into XCom consensus and add a node to the group.
virtual void xcom_set_cleanup()=0
Clean up variables used to notify states in the XCOM's state machine.
virtual void xcom_set_ready(bool value)=0
virtual bool xcom_add_nodes(connection_descriptor &con, Gcs_xcom_nodes &nodes, uint32_t group_id_hash)=0
Function to add a set of nodes to XCOM.
virtual bool xcom_add_node(connection_descriptor &con, const Gcs_xcom_node_information &node, uint32_t group_id_hash)=0
Function to add a node to XCOM.
virtual xcom_event_horizon xcom_get_maximum_event_horizon()=0
Function to retrieve XCOM's maximum supported event horizon value.
virtual node_address * new_node_address_uuid(unsigned int n, char const *names[], blob uuids[])=0
This is an utility member function that is used to call into XCom for creating list with node's addre...
virtual site_def const * find_site_def(synode_no synode)=0
virtual void xcom_signal_exit()=0
This modifies the internal cached status and signals all threads that might be waiting on xcom_wait_e...
virtual bool xcom_has_comms_status_changed()=0
virtual void xcom_wait_for_xcom_comms_status_change(int &status)=0
Call this method to wait for XCom communications to be initialized.
virtual bool xcom_client_get_synode_app_data(connection_descriptor *fd, uint32_t group_id, synode_no_array &synodes, synode_app_data_array &reply)=0
This member function is responsible for retrieving the application payloads decided in the synodes in...
virtual bool xcom_is_exit()=0
This verifies if XCom has finished or not.
virtual bool xcom_client_get_event_horizon(uint32_t group_id, xcom_event_horizon &event_horizon)=0
This member function is responsible for retrieving the event horizon of the XCom configuration.
virtual int xcom_set_ssl_mode(int mode)=0
virtual bool xcom_boot_node(Gcs_xcom_node_information &node, uint32_t group_id_hash)=0
Function used to boot a node in XCOM.
virtual bool test_xcom_tcp_connection(std::string &host, xcom_port port)=0
Performs a test connection to the given XCom instance via TCP.
virtual bool xcom_get_event_horizon(uint32_t group_id_hash, xcom_event_horizon &event_horizon)=0
Function to retrieve XCOM's event horizon.
virtual int xcom_get_ssl_mode(const char *mode)=0
virtual void xcom_destroy_ssl()=0
virtual void xcom_exit()=0
This member function finishes the XCom thread.
virtual bool xcom_set_event_horizon(uint32_t group_id_hash, xcom_event_horizon event_horizon)=0
Function to reconfigure XCOM's event horizon.
virtual xcom_event_horizon xcom_get_minimum_event_horizon()=0
Function to retrieve XCOM's minimum supported event horizon value.
virtual void set_should_exit(bool should_exit)=0
Function that sets the value that signals that XCom must be forcefully stopped.
virtual bool xcom_get_synode_app_data(Gcs_xcom_node_information const &xcom_instance, uint32_t group_id_hash, const std::unordered_set< Gcs_xcom_synode > &synode_set, synode_app_data_array &reply)=0
Function to retrieve the application payloads decided on a set of synodes.
virtual bool xcom_client_close_connection(connection_descriptor *fd)=0
This member function closes the connection to an XCom instance.
virtual connection_descriptor * xcom_client_open_connection(std::string addr, xcom_port port)=0
This member function opens a connection to an XCom instance.
virtual bool xcom_client_remove_node(connection_descriptor *fd, node_list *nl, uint32_t group_id)=0
This member function is responsible for triggering the removal of a node from the XCom configuration.
virtual bool xcom_get_leaders(uint32_t group_id_hash, leader_info_data &leaders)=0
virtual bool xcom_remove_nodes(Gcs_xcom_nodes &nodes, uint32_t group_id_hash)=0
Function to remove a set of nodes from XCOM.
virtual bool xcom_remove_nodes(connection_descriptor &con, Gcs_xcom_nodes &nodes, uint32_t group_id_hash)=0
Function to remove a set of nodes from XCOM.
virtual bool xcom_init_ssl()=0
Initialize the SSL.
virtual bool xcom_client_force_config(node_list *nl, uint32_t group_id)=0
This method forces XCom to inject a new configuration in the group, even if it does not contain a maj...
virtual void xcom_signal_ready()=0
virtual void xcom_input_disconnect()=0
Closes the input channel to XCom.
virtual bool initialize_network_manager()=0
Initializes XCom's Network Manager.
virtual bool xcom_force_nodes(Gcs_xcom_nodes &nodes, unsigned int group_id_hash)=0
Function to force the set of nodes in XCOM's configuration.
virtual enum_gcs_error xcom_wait_ready()=0
This member waits for XCom to be initialized.
virtual bool finalize_network_manager()=0
Finalizes XCom's Network Manager.
virtual bool xcom_client_set_event_horizon(uint32_t group_id, xcom_event_horizon event_horizon)=0
This member function is responsible for triggering the reconfiguration of the event horizon of the XC...
virtual void xcom_set_comms_status(int status)=0
virtual int xcom_set_ssl_fips_mode(int mode)=0
virtual bool xcom_client_set_cache_size(uint64_t size)=0
This member function is responsible for setting a new value for the maximum size of the XCom cache.
virtual bool xcom_set_leaders(uint32_t group_id_hash, u_int nr_preferred_leaders, char const *preferred_leaders[], node_no max_nr_leaders)=0
virtual bool xcom_input_try_push(app_data_ptr data)=0
Attempts to send the command data to XCom.
virtual void xcom_signal_comms_status_changed(int status)=0
virtual void xcom_set_ssl_parameters(ssl_parameters ssl, tls_parameters tls)=0
virtual bool get_should_exit()=0
Function that retrieves the value that signals that XCom must be forcefully stopped.
virtual int xcom_get_ssl_fips_mode(const char *mode)=0
virtual bool xcom_set_cache_size(uint64_t size)=0
Function to reconfigure the maximum size of the XCom cache.
virtual bool xcom_remove_node(const Gcs_xcom_node_information &node, uint32_t group_id_hash)=0
Function to remove a node from XCOM.
virtual xcom_input_request_ptr xcom_input_try_pop()=0
Attempts to retrieve incoming commands.
virtual bool xcom_input_connect(std::string const &address, xcom_port port)=0
Opens the input channel to XCom.
virtual bool xcom_client_set_leaders(uint32_t group_id, u_int nr_preferred_leaders, char const *preferred_leaders[], node_no max_nr_leaders)=0
This member function is responsible for triggering the reconfiguration of the leaders of the XCom con...
virtual void delete_node_address(unsigned int n, node_address *na)=0
This function is responsible to delete the list of nodes that had been previously created by new_node...
virtual bool xcom_is_ready()=0
virtual bool set_network_manager_active_provider(enum_transport_protocol new_value)=0
Set XCom's network manager active provider.
virtual bool xcom_client_remove_node(node_list *nl, uint32_t group_id)=0
This member function is responsible for triggering the removal of a node from the XCom configuration.
virtual ~Gcs_xcom_proxy()=default
The destructor.
virtual void xcom_set_exit(bool value)=0
This sets whether XCom has finished or not.
virtual void xcom_init(xcom_port listen_port)=0
This member function initializes XCom.
virtual bool xcom_client_boot(node_list *nl, uint32_t group_id)=0
This member function boots XCom.
virtual bool xcom_client_send_data(unsigned long long size, char *data)=0
This member function is responsible for pushing data into consensus on XCom.
virtual bool xcom_use_ssl()=0
Return whether the SSL will be used to encrypt data or not.
virtual bool xcom_client_get_leaders(uint32_t group_id, leader_info_data &leaders)=0
This member function is responsible for retrieving the leaders of the XCom configuration.
virtual Gcs_xcom_input_queue::future_reply xcom_input_try_push_and_get_reply(app_data_ptr data)=0
Attempts to send the command data to XCom, and returns a future to XCom's reply.
Definition: my_xp_cond.h:136
Definition: my_xp_mutex.h:123
Interface for socket utility methods.
Definition: my_xp_util.h:154
Class that provides Network Namespace services.
Definition: network_provider.h:242
Interface class for all statistics that XCom will provide.
Definition: statistics_storage_interface.h:33
enum_gcs_error
This enumeration describes errors which can occur during group communication operations.
Definition: gcs_types.h:41
const char * host
Definition: mysqladmin.cc:65
constexpr value_type ssl
Definition: classic_protocol_constants.h:49
constexpr value_type blob
Definition: classic_protocol_constants.h:272
size_t size(const char *const c)
Definition: base64.h:46
mode
Definition: file_handle.h:61
Definition: tls_keylog_dumper.h:32
enum_transport_protocol
Enum that describes the available XCom Communication Stacks.
Definition: network_provider.h:45
required uint64 port
Definition: replication_asynchronous_connection_failover.proto:33
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:61
Definition: gcs_xcom_proxy.h:1103
Gcs_xcom_proxy * proxy
Definition: gcs_xcom_proxy.h:1104
unsigned int port
Definition: gcs_xcom_proxy.h:1105
Definition: node_connection.h:47
Definition: site_struct.h:43
Definition: network_provider.h:171
Definition: network_provider.h:183
__u_int u_int
Definition: types.h:73
int n
Definition: xcom_base.cc:509
unsigned short xcom_port
Definition: xcom_common.h:46