23#ifndef PRIMARY_ELECTION_VALIDATION_HANDLER_INCLUDED
24#define PRIMARY_ELECTION_VALIDATION_HANDLER_INCLUDED
80 std::string &valid_uuid,
81 std::string &error_msg);
102 std::string &uuid, std::string &error_msg);
117 const std::vector<Gcs_member_identifier> &leaving,
118 const std::vector<Gcs_member_identifier> &group,
119 bool is_leaving,
bool *skip_election,
121 std::string &suggested_primary)
override;
123 std::string primary_uuid,
127 const std::string &message_origin,
128 bool *skip_message)
override;
Class that others can extend to receive notifications about views and primary elections.
Definition: group_event_observer.h:39
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:63
Definition: primary_election_validation_handler.h:31
enum_primary_validation_result validate_group_slave_channels(std::string &uuid)
Check which members have slave channels.
Definition: primary_election_validation_handler.cc:244
void terminates_validation_structures()
Cleans the membership info, and pending notifications.
Definition: primary_election_validation_handler.cc:78
uint number_of_responses
The number of members that sent info or left.
Definition: primary_election_validation_handler.h:134
bool prepare_election()
Shares information among members about weights and channels in all members.
Definition: primary_election_validation_handler.cc:158
bool validation_process_aborted
Was the validation process aborted.
Definition: primary_election_validation_handler.h:131
enum_primary_validation_result validate_primary_version(std::string &uuid, std::string &error_msg)
Check that the group members have valid versions.
Definition: primary_election_validation_handler.cc:105
int before_message_handling(const Plugin_gcs_message &message, const std::string &message_origin, bool *skip_message) override
Executed before the message is processed.
Definition: primary_election_validation_handler.cc:316
enum_primary_validation_result validate_election(std::string &uuid, std::string &valid_uuid, std::string &error_msg)
Validate group for election.
Definition: primary_election_validation_handler.cc:188
Primary_election_validation_handler()
Constructor.
Definition: primary_election_validation_handler.cc:38
mysql_cond_t notification_cond
The condition for notifications.
Definition: primary_election_validation_handler.h:142
enum_primary_validation_result validate_primary_uuid(std::string &uuid)
Check that the UUID is valid and present in the group.
Definition: primary_election_validation_handler.cc:88
bool initialize_validation_structures()
Initialize the group member structures and registers an observer.
Definition: primary_election_validation_handler.cc:51
void abort_validation_process()
Interrupt the validation process in case of an abort.
Definition: primary_election_validation_handler.cc:265
~Primary_election_validation_handler() override
Destructor.
Definition: primary_election_validation_handler.cc:46
enum_primary_validation_result
Enum for the end results of validation.
Definition: primary_election_validation_handler.h:34
@ CURRENT_PRIMARY
Definition: primary_election_validation_handler.h:37
@ INVALID_PRIMARY
Definition: primary_election_validation_handler.h:36
@ VALID_PRIMARY
Definition: primary_election_validation_handler.h:35
@ GROUP_SOLO_PRIMARY
Definition: primary_election_validation_handler.h:38
mysql_mutex_t notification_lock
The lock for notifications.
Definition: primary_election_validation_handler.h:140
std::map< const std::string, Election_member_info * > group_members_info
The information about the group members <address,member>
Definition: primary_election_validation_handler.h:137
int after_view_change(const std::vector< Gcs_member_identifier > &joining, const std::vector< Gcs_member_identifier > &leaving, const std::vector< Gcs_member_identifier > &group, bool is_leaving, bool *skip_election, enum_primary_election_mode *election_mode, std::string &suggested_primary) override
Executed after view install and before primary election.
Definition: primary_election_validation_handler.cc:274
int after_primary_election(std::string primary_uuid, enum_primary_election_primary_change_status primary_change_status, enum_primary_election_mode election_mode, int error) override
Executed after primary election.
Definition: primary_election_validation_handler.cc:310
enum_primary_election_mode
Enum for election types.
Definition: primary_election_include.h:32
enum_primary_election_primary_change_status
Enum for primary change status.
Definition: primary_election_include.h:49
An instrumented cond structure.
Definition: mysql_cond_bits.h:49
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49