akka.cluster
Class Gossip

java.lang.Object
  extended by akka.cluster.Gossip
All Implemented Interfaces:
java.io.Serializable, scala.Equals, scala.Product

public class Gossip
extends java.lang.Object
implements scala.Product, scala.Serializable

See Also:
Serialized Form

Constructor Summary
Gossip(scala.collection.immutable.SortedSet<Member> members, GossipOverview overview, VectorClock version)
           
 
Method Summary
 scala.collection.immutable.Set<java.lang.String> allRoles()
           
static Gossip apply(scala.collection.immutable.SortedSet<Member> members)
           
 boolean convergence(UniqueAddress selfUniqueAddress)
          Checks if we have a cluster convergence.
static scala.collection.immutable.Set<MemberStatus> convergenceSkipUnreachableWithMemberStatus()
           
static Gossip empty()
           
static scala.collection.immutable.SortedSet<Member> emptyMembers()
           
 boolean hasMember(UniqueAddress node)
           
 boolean isLeader(UniqueAddress node, UniqueAddress selfUniqueAddress)
           
 boolean isSingletonCluster()
           
 scala.Option<UniqueAddress> leader(UniqueAddress selfUniqueAddress)
           
 Member member(UniqueAddress node)
           
 scala.collection.immutable.SortedSet<Member> members()
           
 Gossip merge(Gossip that)
          Merges two Gossip instances including membership tables, and the VectorClock histories.
 Gossip mergeSeen(Gossip that)
          Merges the seen table of two Gossip instances.
 Gossip onlySeen(UniqueAddress node)
          Marks the gossip as seen by only this node (address) by replacing the 'gossip.overview.seen'
 GossipOverview overview()
           
 Reachability reachabilityExcludingDownedObservers()
           
static scala.collection.immutable.Set<MemberStatus> removeUnreachableWithMemberStatus()
           
 scala.Option<UniqueAddress> roleLeader(java.lang.String role, UniqueAddress selfUniqueAddress)
           
 Gossip seen(UniqueAddress node)
          Marks the gossip as seen by this node (address) by updating the address entry in the 'gossip.overview.seen'
 scala.collection.immutable.Set<UniqueAddress> seenBy()
          The nodes that have seen the current version of the Gossip.
 boolean seenByNode(UniqueAddress node)
          Has this Gossip been seen by this node.
 java.lang.String toString()
           
 VectorClock version()
           
 Member youngestMember()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface scala.Product
productArity, productElement, productIterator, productPrefix
 
Methods inherited from interface scala.Equals
canEqual, equals
 

Constructor Detail

Gossip

public Gossip(scala.collection.immutable.SortedSet<Member> members,
              GossipOverview overview,
              VectorClock version)
Method Detail

emptyMembers

public static scala.collection.immutable.SortedSet<Member> emptyMembers()

empty

public static Gossip empty()

apply

public static Gossip apply(scala.collection.immutable.SortedSet<Member> members)

convergenceSkipUnreachableWithMemberStatus

public static scala.collection.immutable.Set<MemberStatus> convergenceSkipUnreachableWithMemberStatus()

removeUnreachableWithMemberStatus

public static scala.collection.immutable.Set<MemberStatus> removeUnreachableWithMemberStatus()

members

public scala.collection.immutable.SortedSet<Member> members()

overview

public GossipOverview overview()

version

public VectorClock version()

seen

public Gossip seen(UniqueAddress node)
Marks the gossip as seen by this node (address) by updating the address entry in the 'gossip.overview.seen'

Parameters:
node - (undocumented)
Returns:
(undocumented)

onlySeen

public Gossip onlySeen(UniqueAddress node)
Marks the gossip as seen by only this node (address) by replacing the 'gossip.overview.seen'

Parameters:
node - (undocumented)
Returns:
(undocumented)

seenBy

public scala.collection.immutable.Set<UniqueAddress> seenBy()
The nodes that have seen the current version of the Gossip.

Returns:
(undocumented)

seenByNode

public boolean seenByNode(UniqueAddress node)
Has this Gossip been seen by this node.

Parameters:
node - (undocumented)
Returns:
(undocumented)

mergeSeen

public Gossip mergeSeen(Gossip that)
Merges the seen table of two Gossip instances.

Parameters:
that - (undocumented)
Returns:
(undocumented)

merge

public Gossip merge(Gossip that)
Merges two Gossip instances including membership tables, and the VectorClock histories.

Parameters:
that - (undocumented)
Returns:
(undocumented)

convergence

public boolean convergence(UniqueAddress selfUniqueAddress)
Checks if we have a cluster convergence. If there are any unreachable nodes then we can't have a convergence - waiting for user to act (issuing DOWN) or leader to act (issuing DOWN through auto-down).

Parameters:
selfUniqueAddress - (undocumented)
Returns:
true if convergence have been reached and false if not

reachabilityExcludingDownedObservers

public Reachability reachabilityExcludingDownedObservers()

isLeader

public boolean isLeader(UniqueAddress node,
                        UniqueAddress selfUniqueAddress)

leader

public scala.Option<UniqueAddress> leader(UniqueAddress selfUniqueAddress)

roleLeader

public scala.Option<UniqueAddress> roleLeader(java.lang.String role,
                                              UniqueAddress selfUniqueAddress)

allRoles

public scala.collection.immutable.Set<java.lang.String> allRoles()

isSingletonCluster

public boolean isSingletonCluster()

member

public Member member(UniqueAddress node)

hasMember

public boolean hasMember(UniqueAddress node)

youngestMember

public Member youngestMember()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object