Hazelcast C++ Client
Hazelcast C++ Client Library
hazelcast::client::membership_event Class Reference

Membership event fired when a new member is added to the cluster and/or when a member leaves the cluster. More...

#include <membership_event.h>

Public Types

enum  membership_event_type { MEMBER_JOINED = 1 , MEMBER_LEFT = 2 }
 

Public Member Functions

 membership_event (cluster &cluster, const member &m, membership_event_type event_type, const std::unordered_map< boost::uuids::uuid, member, boost::hash< boost::uuids::uuid >> &members_list)
 Internal API. More...
 
virtual ~membership_event ()
 Destructor.
 
std::unordered_map< boost::uuids::uuid, member, boost::hash< boost::uuids::uuid > > get_members () const
 Returns a consistent view of the the members exactly after this MembershipEvent has been processed. More...
 
clusterget_cluster ()
 Returns the cluster of the event. More...
 
membership_event_type get_event_type () const
 Returns the membership event type; MembershipEvent::MEMBER_JOINED , MembershipEvent::MEMBER_LEFT. More...
 
const memberget_member () const
 Returns the removed or added member. More...
 

Detailed Description

Membership event fired when a new member is added to the cluster and/or when a member leaves the cluster.

See also
membership_listener

Definition at line 38 of file membership_event.h.

Constructor & Destructor Documentation

◆ membership_event()

hazelcast::client::membership_event::membership_event ( cluster cluster,
const member m,
membership_event_type  event_type,
const std::unordered_map< boost::uuids::uuid, member, boost::hash< boost::uuids::uuid >> &  members_list 
)

Internal API.

Constructor.

Definition at line 137 of file cluster.cpp.

138  :
139  cluster_(cluster), member_(m), event_type_(event_type), members_(members_list) {
140  }

Member Function Documentation

◆ get_cluster()

cluster & hazelcast::client::membership_event::get_cluster ( )

Returns the cluster of the event.

Returns
the cluster reference

Definition at line 148 of file cluster.cpp.

148  {
149  return cluster_;
150  }

◆ get_event_type()

membership_event::membership_event_type hazelcast::client::membership_event::get_event_type ( ) const

Returns the membership event type; MembershipEvent::MEMBER_JOINED , MembershipEvent::MEMBER_LEFT.

Returns
the membership event type

Definition at line 152 of file cluster.cpp.

152  {
153  return event_type_;
154  }

◆ get_member()

const member & hazelcast::client::membership_event::get_member ( ) const

Returns the removed or added member.

Returns
member which is removed/added

Definition at line 156 of file cluster.cpp.

156  {
157  return member_;
158  }

◆ get_members()

std::unordered_map< boost::uuids::uuid, member, boost::hash< boost::uuids::uuid > > hazelcast::client::membership_event::get_members ( ) const

Returns a consistent view of the the members exactly after this MembershipEvent has been processed.

So if a member is removed, the returned vector will not include this member. And if a member is added it will include this member.

The problem with calling the Cluster::getMembers() is that the content could already have changed while processing this event so it becomes very difficult to write a deterministic algorithm since you can't get a deterministic view of the members. This method solves that problem.

The vector is immutable and ordered. For more information see Cluster::getMembers().

Returns
the members at the moment after this event.

Definition at line 144 of file cluster.cpp.

144  {
145  return members_;
146  }

The documentation for this class was generated from the following files: