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,
88 synode_no
const config_id_where_members_left,
89 std::vector<Gcs_member_identifier *>
const &members_that_left);
103 std::vector<Gcs_member_identifier *>
const &suspected_members,
104 std::vector<Gcs_member_identifier *>
const &suspected_nonmembers)
const;
120 std::size_t
size()
const;
133 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
void forget_expels_that_have_taken_effect(synode_no const config_id_where_members_left, std::vector< Gcs_member_identifier * > const &members_that_left)
Forget about any expel we issued for the nodes in members_that_left that have taken effect in the XCo...
Definition: gcs_xcom_expels_in_progress.cc:39
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:136
std::size_t size() const
How many expels are in progress.
Definition: gcs_xcom_expels_in_progress.cc:148
Gcs_xcom_expels_in_progress & operator=(Gcs_xcom_expels_in_progress &&)=default
Gcs_xcom_expels_in_progress()=default
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:105
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:129
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:152
This class contains information on the configuration, i.e set of nodes or simply site definition.
Definition: gcs_xcom_group_member_information.h:391