24#ifndef GROUP_EVENT_OBSERVER_INCLUDED 
   25#define GROUP_EVENT_OBSERVER_INCLUDED 
   54      const std::vector<Gcs_member_identifier> &joining,
 
   55      const std::vector<Gcs_member_identifier> &leaving,
 
   56      const std::vector<Gcs_member_identifier> &group, 
bool is_leaving,
 
   58      std::string &suggested_primary) = 0;
 
   68      std::string primary_uuid,
 
   79                                      const std::string &message_origin,
 
   80                                      bool *skip_message) = 0;
 
  123                        const std::vector<Gcs_member_identifier> &leaving,
 
  124                        const std::vector<Gcs_member_identifier> &group,
 
  125                        bool is_leaving, 
bool *skip_election,
 
  127                        std::string &suggested_primary);
 
  137      std::string primary_uuid,
 
  148                              const std::string &message_origin,
 
This has the functionality of mysql_rwlock_t, with two differences:
Definition: rpl_gtid.h:309
 
Class that others can extend to receive notifications about views and primary elections.
Definition: group_event_observer.h:40
 
virtual ~Group_event_observer()=0
 
virtual 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)=0
Executed after primary election.
 
virtual int before_message_handling(const Plugin_gcs_message &message, const std::string &message_origin, bool *skip_message)=0
Executed before the message is processed.
 
virtual 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)=0
Executed after view install and before primary election.
 
Class alerts listeners of group events like view changes and elections.
Definition: group_event_observer.h:87
 
~Group_events_observation_manager()
Definition: group_event_observer.cc:38
 
int before_message_handling(const Plugin_gcs_message &message, const std::string &message_origin, bool *skip_message)
Executed before the message is processed.
Definition: group_event_observer.cc:130
 
std::list< Group_event_observer * > group_events_observers
The group event observers.
Definition: group_event_observer.h:160
 
Checkable_rwlock * observer_list_lock
The lock to control access to the list.
Definition: group_event_observer.h:162
 
Group_events_observation_manager()
Definition: group_event_observer.cc:30
 
void unregister_group_event_observer(Group_event_observer *observer)
The method to unregister new observers.
Definition: group_event_observer.cc:61
 
void register_group_event_observer(Group_event_observer *observer)
The method to register new observers.
Definition: group_event_observer.cc:53
 
void read_lock_observer_list()
Locks the observer list for reads.
Definition: group_event_observer.cc:69
 
void write_lock_observer_list()
Locks the observer list for writes.
Definition: group_event_observer.cc:73
 
void unlock_observer_list()
Unlocks the observer list.
Definition: group_event_observer.cc:77
 
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=0)
Executed after primary election.
Definition: group_event_observer.cc:102
 
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)
Executed after view install and before primary election.
Definition: group_event_observer.cc:81
 
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:64
 
enum_primary_election_mode
Enum for election types.
Definition: primary_election_include.h:33
 
enum_primary_election_primary_change_status
Enum for primary change status.
Definition: primary_election_include.h:50