public final class CommunicationTracker
extends java.lang.Object
ReteContainer
. The tracker serves two purposes: ReteContainer
. The ordering is
governed by the strongly connected components in the dependency network and follows a topological sorting scheme;
those mailboxes will be emptied first whose owner nodes do not depend on other undelivered messages.Constructor and Description |
---|
CommunicationTracker() |
Modifier and Type | Method and Description |
---|---|
void |
addRederivable(RederivableNode node) |
protected CommunicationGroup |
createAndStoreGroup(Node representative,
int index) |
CommunicationGroup |
getAndRemoveFirstGroup() |
boolean |
isEmpty() |
void |
notifyHasMessage(Mailbox mailbox,
MessageKind kind) |
void |
notifyLostAllMessages(Mailbox mailbox,
MessageKind kind) |
void |
registerDependency(Node source,
Node target)
|
void |
removeRederivable(RederivableNode node) |
void |
unregisterDependency(Node source,
Node target)
Unregisters a dependency between source and target.
|
public void addRederivable(RederivableNode node)
public void removeRederivable(RederivableNode node)
public void notifyHasMessage(Mailbox mailbox, MessageKind kind)
public void notifyLostAllMessages(Mailbox mailbox, MessageKind kind)
public CommunicationGroup getAndRemoveFirstGroup()
public boolean isEmpty()
protected CommunicationGroup createAndStoreGroup(Node representative, int index)
public void registerDependency(Node source, Node target)
Node
depends on the source Node
. In other words, source
may send messages to target in the RETE network.source
- the source nodetarget
- the target node