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