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      const std::function<
bool(
void)> &need_to_wait,
 
 1033      const 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:625
 
bool set_identity(node_address *identity)
Configures XCom with its unique instance identifier, i.e.
Definition: gcs_xcom_proxy.cc:643
 
void init()
Initializes the data structures to communicate with XCom the application injected configuration optio...
Definition: gcs_xcom_proxy.cc:621
 
virtual ~Gcs_xcom_app_cfg()=default
 
void deinit()
Must be called when XCom is not engaged anymore.
Definition: gcs_xcom_proxy.cc:623
 
void set_statists_storage_implementation(Xcom_statistics_storage_interface *stats_storage)
Set XCom's.
Definition: gcs_xcom_proxy.cc:638
 
void set_xcom_cache_size(uint64_t size)
Configures the maximum size of the xcom cache.
Definition: gcs_xcom_proxy.cc:629
 
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:633
 
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:815
 
xcom_event_horizon xcom_get_minimum_event_horizon() override
Function to retrieve XCOM's minimum supported event horizon value.
Definition: gcs_xcom_proxy.cc:714
 
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:895
 
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:779
 
xcom_event_horizon xcom_get_maximum_event_horizon() override
Function to retrieve XCOM's maximum supported event horizon value.
Definition: gcs_xcom_proxy.cc:718
 
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:904
 
bool serialize_nodes_information(Gcs_xcom_nodes &nodes, node_list &nl)
Definition: gcs_xcom_proxy.cc:830
 
bool xcom_get_leaders(uint32_t group_id_hash, leader_info_data &leaders) override
Definition: gcs_xcom_proxy.cc:747
 
~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:879
 
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:917
 
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:677
 
void free_nodes_information(node_list &nl)
Definition: gcs_xcom_proxy.cc:856
 
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:862
 
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:728
 
bool xcom_set_cache_size(uint64_t size) override
Function to reconfigure the maximum size of the XCom cache.
Definition: gcs_xcom_proxy.cc:810
 
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:734
 
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:706
 
bool initialize_network_manager() override
Initializes XCom's Network Manager.
Definition: gcs_xcom_proxy.cc:909
 
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:722
 
bool finalize_network_manager() override
Finalizes XCom's Network Manager.
Definition: gcs_xcom_proxy.cc:913
 
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:525
 
bool get_should_exit() override
Function that retrieves the value that signals that XCom must be forcefully stopped.
Definition: gcs_xcom_proxy.cc:576
 
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:563
 
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:509
 
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:580
 
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:584
 
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:653
 
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:532
 
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:598
 
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:519
 
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:594
 
xcom_input_request_ptr xcom_input_try_pop() override
Attempts to retrieve incoming commands.
Definition: gcs_xcom_proxy.cc:617
 
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:608
 
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
 
enum_gcs_error xcom_wait_for_condition(My_xp_cond_impl &condition, My_xp_mutex_impl &condition_lock, const std::function< bool(void)> &need_to_wait, const std::function< const std::string(int res)> &condition_event)
Definition: gcs_xcom_proxy.cc:427
 
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:569
 
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
 
bool m_is_xcom_exit
Definition: gcs_xcom_proxy.h:984
 
bool xcom_has_comms_status_changed() override
Definition: gcs_xcom_proxy.cc:553
 
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:66
 
constexpr value_type ssl
Definition: classic_protocol_constants.h:49
 
constexpr value_type blob
Definition: classic_protocol_constants.h:272
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
size_t size(const char *const c)
Definition: base64.h:46
 
mode
Definition: file_handle.h:61
 
Definition: tls_keylog_dumper.h:35
 
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