23#ifndef GCS_XCOM_EXPELS_IN_PROGRESS_INCLUDED
24#define GCS_XCOM_EXPELS_IN_PROGRESS_INCLUDED
29#include "plugin/group_replication/libmysqlgcs/xdr_gen/xcom_vp.h"
75 synode_no
const config_id_where_expels_were_issued,
87 synode_no
const config_id_where_members_left,
88 std::vector<Gcs_member_identifier *>
const &members_that_left);
102 std::vector<Gcs_member_identifier *>
const &suspected_members,
103 std::vector<Gcs_member_identifier *>
const &suspected_nonmembers)
const;
119 std::size_t
size()
const;
132 synode_no
const synode)
const;
It represents the identity of a group member within a certain group.
Definition: gcs_member_identifier.h:39
The set of expels we have issued but that have not yet taken effect.
Definition: gcs_xcom_expels_in_progress.h:55
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:38
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:135
std::size_t size() const
How many expels are in progress.
Definition: gcs_xcom_expels_in_progress.cc:147
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:29
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:104
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:128
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:151
This class contains information on the configuration, i.e set of nodes or simply site definition.
Definition: gcs_xcom_group_member_information.h:390