#include <gcs_xcom_state_exchange.h>
|
virtual | ~Gcs_xcom_state_exchange_interface ()=default |
|
virtual void | init ()=0 |
| Accomplishes all necessary initialization steps. More...
|
|
virtual void | reset ()=0 |
| If messages were buffered during its processing, they are discarded and internal structures needed are cleaned up. More...
|
|
virtual void | reset_with_flush ()=0 |
| Has the same behavior as the reset but additionally flushes buffered messages. More...
|
|
virtual void | end ()=0 |
| If messages were buffered during its processing, they are delivered to upper layers and internal structures needed are cleaned up. More...
|
|
virtual bool | state_exchange (synode_no configuration_id, std::vector< Gcs_member_identifier * > &total, std::vector< Gcs_member_identifier * > &left, std::vector< Gcs_member_identifier * > &joined, std::vector< std::unique_ptr< Gcs_message_data > > &exchangeable_data, Gcs_view *current_view, std::string *group, const Gcs_member_identifier &local_info, const Gcs_xcom_nodes &xcom_nodes)=0 |
| Signals the module to start a State Exchange. More...
|
|
virtual bool | process_member_state (Xcom_member_state *ms_info, const Gcs_member_identifier &p_id, Gcs_protocol_version maximum_supported_protocol_version, Gcs_protocol_version used_protocol_version)=0 |
| Processes a member state message on an ongoing State Exchange round. More...
|
|
virtual std::vector< Gcs_xcom_node_information > | compute_incompatible_members ()=0 |
| Compute the set of incompatible members after the state exchange has finished. More...
|
|
virtual bool | process_recovery_state ()=0 |
| Recovers any missing packets required for the member to join the group. More...
|
|
virtual Gcs_xcom_view_identifier * | get_new_view_id ()=0 |
| Retrieves the new view identifier after a State Exchange. More...
|
|
virtual std::set< Gcs_member_identifier * > * | get_joined ()=0 |
|
virtual std::set< Gcs_member_identifier * > * | get_left ()=0 |
|
virtual std::set< Gcs_member_identifier * > * | get_total ()=0 |
|
virtual std::string * | get_group ()=0 |
|
virtual std::map< Gcs_member_identifier, Xcom_member_state * > * | get_member_states ()=0 |
|
virtual void | compute_maximum_supported_protocol_version ()=0 |
| Computes the maximum protocol version supported by the group. More...
|
|
◆ ~Gcs_xcom_state_exchange_interface()
virtual Gcs_xcom_state_exchange_interface::~Gcs_xcom_state_exchange_interface |
( |
| ) |
|
|
virtualdefault |
◆ compute_incompatible_members()
Compute the set of incompatible members after the state exchange has finished.
A member M is incompatible if it is attempting to join a group that is using protocol X, but M is using protocol Y s.t. X != Y.
- Returns
- the set of incompatible members
Implemented in Gcs_xcom_state_exchange.
◆ compute_maximum_supported_protocol_version()
virtual void Gcs_xcom_state_exchange_interface::compute_maximum_supported_protocol_version |
( |
| ) |
|
|
pure virtual |
◆ end()
virtual void Gcs_xcom_state_exchange_interface::end |
( |
| ) |
|
|
pure virtual |
If messages were buffered during its processing, they are delivered to upper layers and internal structures needed are cleaned up.
Implemented in Gcs_xcom_state_exchange.
◆ get_group()
virtual std::string * Gcs_xcom_state_exchange_interface::get_group |
( |
| ) |
|
|
pure virtual |
◆ get_joined()
◆ get_left()
◆ get_member_states()
◆ get_new_view_id()
Retrieves the new view identifier after a State Exchange.
- Returns
- the new view identifier
Implemented in Gcs_xcom_state_exchange.
◆ get_total()
◆ init()
virtual void Gcs_xcom_state_exchange_interface::init |
( |
| ) |
|
|
pure virtual |
◆ process_member_state()
Processes a member state message on an ongoing State Exchange round.
- Parameters
-
[in] | ms_info | received Member State |
[in] | p_id | the node that the Member State pertains |
[in] | maximum_supported_protocol_version | maximum supported protocol version |
[in] | used_protocol_version | protocol version in use by a member during the state exchange phase |
- Returns
- true if State Exchanged is to be finished and the view can be installed
Implemented in Gcs_xcom_state_exchange.
◆ process_recovery_state()
virtual bool Gcs_xcom_state_exchange_interface::process_recovery_state |
( |
| ) |
|
|
pure virtual |
Recovers any missing packets required for the member to join the group.
- Return values
-
true | if successful |
false | otherwise |
Implemented in Gcs_xcom_state_exchange.
◆ reset()
virtual void Gcs_xcom_state_exchange_interface::reset |
( |
| ) |
|
|
pure virtual |
If messages were buffered during its processing, they are discarded and internal structures needed are cleaned up.
Implemented in Gcs_xcom_state_exchange.
◆ reset_with_flush()
virtual void Gcs_xcom_state_exchange_interface::reset_with_flush |
( |
| ) |
|
|
pure virtual |
Has the same behavior as the reset but additionally flushes buffered messages.
Implemented in Gcs_xcom_state_exchange.
◆ state_exchange()
Signals the module to start a State Exchange.
- Parameters
-
[in] | configuration_id | Configuration identifier in use when the state exchange phase started |
[in] | total | xcom total members in the new view |
[in] | left | xcom members that left in the new view |
[in] | joined | xcom members that joined in the new view |
[in] | exchangeable_data | generic exchanged data |
[in] | current_view | the currently installed view |
[in] | group | group name |
[in] | local_info | the local GCS member identifier |
[in] | xcom_nodes | list of nodes |
- Returns
- true if the member is leaving
Implemented in Gcs_xcom_state_exchange.
The documentation for this class was generated from the following file: