24#ifndef GCS_XCOM_EXPELS_IN_PROGRESS_INCLUDED 
   25#define GCS_XCOM_EXPELS_IN_PROGRESS_INCLUDED 
   30#include "plugin/group_replication/libmysqlgcs/xdr_gen/xcom_vp.h" 
   76      synode_no 
const config_id_where_expels_were_issued,
 
   89      synode_no 
const config_id_where_members_under_effect,
 
   90      std::vector<Gcs_member_identifier *> 
const &members_under_effect);
 
  104      std::vector<Gcs_member_identifier *> 
const &suspected_members,
 
  105      std::vector<Gcs_member_identifier *> 
const &suspected_nonmembers) 
const;
 
  121  std::size_t 
size() 
const;
 
  134                synode_no 
const synode) 
const;
 
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:40
 
The set of expels we have issued but that have not yet taken effect.
Definition: gcs_xcom_expels_in_progress.h:56
 
Gcs_xcom_expels_in_progress(Gcs_xcom_expels_in_progress &&)=default
 
std::vector< std::pair< Gcs_member_identifier, synode_no > > m_expels_in_progress
Definition: gcs_xcom_expels_in_progress.h:146
 
std::size_t size() const
How many expels are in progress.
Definition: gcs_xcom_expels_in_progress.cc:153
 
Gcs_xcom_expels_in_progress & operator=(Gcs_xcom_expels_in_progress &&)=default
 
Gcs_xcom_expels_in_progress()=default
 
void forget_expels_that_have_taken_effect(synode_no const config_id_where_members_under_effect, std::vector< Gcs_member_identifier * > const &members_under_effect)
Forget about any expel we issued for the members that have taken effect in the XCom configuration ide...
Definition: gcs_xcom_expels_in_progress.cc:39
 
Gcs_xcom_expels_in_progress(Gcs_xcom_expels_in_progress const &)=default
 
Gcs_xcom_expels_in_progress & operator=(Gcs_xcom_expels_in_progress const &)=default
 
void remember_expels_issued(synode_no const config_id_where_expels_were_issued, Gcs_xcom_nodes const &expels_issued)
Keep track of members we expelled expels_issued together with the XCom configuration config_id_where_...
Definition: gcs_xcom_expels_in_progress.cc:30
 
std::size_t number_of_expels_not_about_suspects(std::vector< Gcs_member_identifier * > const &suspected_members, std::vector< Gcs_member_identifier * > const &suspected_nonmembers) const
How many of the expels in progress do not pertain to suspected nodes.
Definition: gcs_xcom_expels_in_progress.cc:110
 
bool all_still_in_view(Gcs_xcom_nodes const &xcom_nodes) const
Whether all expels in progress are for members in xcom_nodes.
Definition: gcs_xcom_expels_in_progress.cc:134
 
bool contains(Gcs_member_identifier const &member, synode_no const synode) const
Whether there is an expel in progress for member issued during the XCom configuration identified by s...
Definition: gcs_xcom_expels_in_progress.cc:157
 
This class contains information on the configuration, i.e set of nodes or simply site definition.
Definition: gcs_xcom_group_member_information.h:391