24#ifndef GCS_INTERFACE_INCLUDED 
   25#define GCS_INTERFACE_INCLUDED 
  276      const std::string &binding);
 
  295  static void cleanup(
const std::string &binding);
 
  318      const std::string &binding);
 
This interface represents all the communication facilities that a binding implementation should provi...
Definition: gcs_communication_interface.h:90
 
This interface represents all the control functionalities that a binding implementation must provide.
Definition: gcs_control_interface.h:111
 
This represents the unique identification of a group.
Definition: gcs_group_identifier.h:35
 
Definition: gcs_group_management_interface.h:32
 
This class shall be used by an API user as an aggregator utility to retrieve implementations of Gcs_i...
Definition: gcs_interface.h:249
 
static void cleanup_thread_communication_resources(enum_available_interfaces binding)
Static method that cleans up thread-local communication resources in the Gcs_interface singleton inst...
Definition: gcs_interface_factory.cc:83
 
static void cleanup(enum_available_interfaces binding)
Static method that allows the cleanup of the Gcs_interface singleton instance according to the bindin...
Definition: gcs_interface_factory.cc:64
 
static enum_available_interfaces from_string(const std::string &binding)
Definition: gcs_interface_factory.cc:94
 
static Gcs_interface * get_interface_implementation(enum_available_interfaces binding)
Static method that allows retrieval of an instantiated implementation of a binding implementation.
Definition: gcs_interface_factory.cc:34
 
This class is to be used to provide parameters to bindings in a transparent and generic way.
Definition: gcs_types.h:59
 
This interface must be implemented by all specific binding implementations as its entry point.
Definition: gcs_interface.h:101
 
virtual Gcs_group_management_interface * get_management_session(const Gcs_group_identifier &group_identifier)=0
Method that retrieves the binding implementation of the Group Management Session interface.
 
virtual Gcs_communication_interface * get_communication_session(const Gcs_group_identifier &group_identifier)=0
Method that retrieves the binding implementation of the Communication Session interface.
 
virtual enum_gcs_error finalize()=0
Method used by a binding implementation in order to implement any internal shutdown procedure.
 
virtual enum_gcs_error set_logger(Logger_interface *logger)=0
Method that retrieves the binding implementation of the Group Management Session interface.
 
virtual enum_gcs_error cleanup_runtime_resources(Gcs_interface_runtime_requirements &reqs)=0
Does the necessary cleanup for runtime resources.
 
virtual enum_gcs_error setup_runtime_resources(Gcs_interface_runtime_requirements &reqs)=0
Set the up runtime resources.
 
virtual bool is_initialized()=0
Method used to report if the binding interface has already been initialized.
 
virtual Gcs_control_interface * get_control_session(const Gcs_group_identifier &group_identifier)=0
Method that retrieves the binding implementation of the Control Session interface.
 
virtual ~Gcs_interface()=default
 
virtual enum_gcs_error initialize(const Gcs_interface_parameters &interface_params)=0
Method used by a binding implementation in order to implement any internal startup procedure.
 
virtual enum_gcs_error configure(const Gcs_interface_parameters &interface_params)=0
Method used by a binding implementation in order to implement any type of necessary dynamic reconfigu...
 
virtual Gcs_statistics_interface * get_statistics(const Gcs_group_identifier &group_identifier)=0
Method that retrieves the binding implementation of the Statistics interface.
 
This interface represents all statistics that a binding implementation should provide.
Definition: gcs_statistics_interface.h:33
 
Logger interface that must be used to define a logger object.
Definition: gcs_logging.h:125
 
Class that provides Network Namespace services.
Definition: network_provider.h:253
 
enum_available_interfaces
Enum that lists all implementations of Gcs_interface available to be returned.
Definition: gcs_interface.h:237
 
@ XCOM
Definition: gcs_interface.h:239
 
@ NONE
Definition: gcs_interface.h:240
 
enum_gcs_error
This enumeration describes errors which can occur during group communication operations.
Definition: gcs_types.h:41
 
static Logger logger
The "top-level" logger used when no connection context is given.
Definition: test_trace_plugin.cc:296
 
Runtime external resources that should be provided to an instance of Gcs_interface.
Definition: gcs_interface.h:41
 
std::shared_ptr< Network_provider > provider
External network provider, if needed.
Definition: gcs_interface.h:46
 
Network_namespace_manager * namespace_manager
Provider of Network Namespace services.
Definition: gcs_interface.h:52