public abstract class CommunicationGroup extends java.lang.Object implements java.lang.Comparable<CommunicationGroup>
Modifier and Type | Class and Description |
---|---|
static class |
CommunicationGroup.Recursive
A communication group representing either (1) a single node where the
node is a monotonicity aware one (2) a set of nodes that form an SCC
|
static class |
CommunicationGroup.Singleton
A communication group containing only a single node with a single default
mailbox.
|
Modifier and Type | Field and Description |
---|---|
protected int |
identifier
May be changed during bumping in
CommunicationTracker.registerDependency |
boolean |
isEnqueued
Marker for the
CommunicationTracker |
protected Node |
representative |
protected CommunicationTracker |
tracker |
Constructor and Description |
---|
CommunicationGroup(CommunicationTracker tracker,
Node representative,
int identifier) |
Modifier and Type | Method and Description |
---|---|
abstract void |
addRederivable(RederivableNode node) |
int |
compareTo(CommunicationGroup that) |
abstract void |
deliverMessages() |
boolean |
equals(java.lang.Object obj) |
abstract java.util.Map<MessageKind,java.util.Collection<Mailbox>> |
getMailboxes() |
abstract java.util.Collection<RederivableNode> |
getRederivables() |
Node |
getRepresentative() |
int |
hashCode() |
abstract boolean |
isEmpty() |
abstract void |
notifyHasMessage(Mailbox mailbox,
MessageKind kind) |
abstract void |
notifyLostAllMessages(Mailbox mailbox,
MessageKind kind) |
abstract void |
removeRederivable(RederivableNode node) |
java.lang.String |
toString() |
public boolean isEnqueued
CommunicationTracker
protected final Node representative
protected int identifier
CommunicationTracker.registerDependency
protected final CommunicationTracker tracker
public CommunicationGroup(CommunicationTracker tracker, Node representative, int identifier)
public abstract void deliverMessages()
public Node getRepresentative()
public abstract boolean isEmpty()
public abstract void notifyLostAllMessages(Mailbox mailbox, MessageKind kind)
public abstract void notifyHasMessage(Mailbox mailbox, MessageKind kind)
public abstract void addRederivable(RederivableNode node)
public abstract void removeRederivable(RederivableNode node)
public abstract java.util.Map<MessageKind,java.util.Collection<Mailbox>> getMailboxes()
public abstract java.util.Collection<RederivableNode> getRederivables()
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int compareTo(CommunicationGroup that)
compareTo
in interface java.lang.Comparable<CommunicationGroup>