akka.cluster
Class Reachability

java.lang.Object
  extended by akka.cluster.Reachability
All Implemented Interfaces:
java.io.Serializable

public class Reachability
extends java.lang.Object
implements scala.Serializable

INTERNAL API

Immutable data structure that holds the reachability status of subject nodes as seen from observer nodes. Failure detector for the subject nodes exist on the observer nodes. Changes (reachable, unreachable, terminated) are only performed by observer nodes to its own records. Each change bumps the version number of the record, and thereby it is always possible to determine which record is newest when merging two instances.

Aggregated status of a subject node is defined as (in this order): - Terminated if any observer node considers it as Terminated - Unreachable if any observer node considers it as Unreachable - Reachable otherwise, i.e. no observer node considers it as Unreachable

See Also:
Serialized Form

Nested Class Summary
static interface Reachability.ReachabilityStatus
           
static class Reachability.Reachable$
           
static class Reachability.Record
           
static class Reachability.Record$
           
static class Reachability.Terminated$
           
static class Reachability.Unreachable$
           
 
Method Summary
 scala.collection.immutable.Set<UniqueAddress> allObservers()
           
 scala.collection.immutable.Set<UniqueAddress> allUnreachable()
          Doesn't include terminated
 scala.collection.immutable.Set<UniqueAddress> allUnreachableFrom(UniqueAddress observer)
          Doesn't include terminated
 scala.collection.immutable.Set<UniqueAddress> allUnreachableOrTerminated()
           
static Reachability apply(scala.collection.immutable.IndexedSeq<Reachability.Record> records, scala.collection.immutable.Map<UniqueAddress,java.lang.Object> versions)
           
static Reachability create(scala.collection.immutable.Seq<Reachability.Record> records, scala.collection.immutable.Map<UniqueAddress,java.lang.Object> versions)
           
static Reachability empty()
           
 boolean equals(java.lang.Object obj)
           
 int hashCode()
           
 boolean isAllReachable()
           
 boolean isReachable(UniqueAddress node)
           
 boolean isReachable(UniqueAddress observer, UniqueAddress subject)
           
 Reachability merge(scala.collection.immutable.Set<UniqueAddress> allowed, Reachability other)
           
 scala.collection.immutable.Map<UniqueAddress,scala.collection.immutable.Set<UniqueAddress>> observersGroupedByUnreachable()
           
 Reachability reachable(UniqueAddress observer, UniqueAddress subject)
           
 scala.collection.immutable.IndexedSeq<Reachability.Record> records()
           
 scala.collection.immutable.IndexedSeq<Reachability.Record> recordsFrom(UniqueAddress observer)
           
 Reachability remove(scala.collection.Iterable<UniqueAddress> nodes)
           
 Reachability removeObservers(scala.collection.immutable.Set<UniqueAddress> nodes)
           
 Reachability.ReachabilityStatus status(UniqueAddress node)
           
 Reachability.ReachabilityStatus status(UniqueAddress observer, UniqueAddress subject)
           
 Reachability terminated(UniqueAddress observer, UniqueAddress subject)
           
 java.lang.String toString()
           
 Reachability unreachable(UniqueAddress observer, UniqueAddress subject)
           
 scala.collection.immutable.Map<UniqueAddress,java.lang.Object> versions()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

empty

public static Reachability empty()

apply

public static Reachability apply(scala.collection.immutable.IndexedSeq<Reachability.Record> records,
                                 scala.collection.immutable.Map<UniqueAddress,java.lang.Object> versions)

create

public static Reachability create(scala.collection.immutable.Seq<Reachability.Record> records,
                                  scala.collection.immutable.Map<UniqueAddress,java.lang.Object> versions)

records

public scala.collection.immutable.IndexedSeq<Reachability.Record> records()

versions

public scala.collection.immutable.Map<UniqueAddress,java.lang.Object> versions()

unreachable

public Reachability unreachable(UniqueAddress observer,
                                UniqueAddress subject)

reachable

public Reachability reachable(UniqueAddress observer,
                              UniqueAddress subject)

terminated

public Reachability terminated(UniqueAddress observer,
                               UniqueAddress subject)

merge

public Reachability merge(scala.collection.immutable.Set<UniqueAddress> allowed,
                          Reachability other)

remove

public Reachability remove(scala.collection.Iterable<UniqueAddress> nodes)

removeObservers

public Reachability removeObservers(scala.collection.immutable.Set<UniqueAddress> nodes)

status

public Reachability.ReachabilityStatus status(UniqueAddress observer,
                                              UniqueAddress subject)

status

public Reachability.ReachabilityStatus status(UniqueAddress node)

isReachable

public boolean isReachable(UniqueAddress node)

isReachable

public boolean isReachable(UniqueAddress observer,
                           UniqueAddress subject)

isAllReachable

public boolean isAllReachable()

allUnreachable

public scala.collection.immutable.Set<UniqueAddress> allUnreachable()
Doesn't include terminated

Returns:
(undocumented)

allUnreachableOrTerminated

public scala.collection.immutable.Set<UniqueAddress> allUnreachableOrTerminated()

allUnreachableFrom

public scala.collection.immutable.Set<UniqueAddress> allUnreachableFrom(UniqueAddress observer)
Doesn't include terminated

Parameters:
observer - (undocumented)
Returns:
(undocumented)

observersGroupedByUnreachable

public scala.collection.immutable.Map<UniqueAddress,scala.collection.immutable.Set<UniqueAddress>> observersGroupedByUnreachable()

allObservers

public scala.collection.immutable.Set<UniqueAddress> allObservers()

recordsFrom

public scala.collection.immutable.IndexedSeq<Reachability.Record> recordsFrom(UniqueAddress observer)

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

equals

public boolean equals(java.lang.Object obj)
Overrides:
equals in class java.lang.Object

toString

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