Class TimelessCommunicationTracker
java.lang.Object
tools.refinery.interpreter.rete.network.communication.CommunicationTracker
tools.refinery.interpreter.rete.network.communication.timeless.TimelessCommunicationTracker
Timeless implementation of the communication tracker.
- Since:
- 2.2
-
Field Summary
Fields inherited from class tools.refinery.interpreter.rete.network.communication.CommunicationTracker
dependencyGraph, groupMap, groupQueue, maxGroupId, minGroupId
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected CommunicationGroup
createGroup
(Node representative, int index) protected void
This hook allows concrete tracker implementations to perform tracker-specific post processing on groups.protected void
postProcessNode
(Node node) This hook allows concrete tracker implementations to perform tracker-specific post processing on nodes (cf.proxifyIndexerListener
(Node requester, IndexerListener original) Creates a proxy for the givenIndexerListener
for the given requesterNode
.proxifyMailbox
(Node requester, Mailbox original) protected void
reconstructQueueContents
(Set<CommunicationGroup> oldActiveGroups) This method is responsible for reconstructing the active queue contents after the network structure has changed.Methods inherited from class tools.refinery.interpreter.rete.network.communication.CommunicationTracker
activateUnenqueued, areInSameGroup, createAndStoreGroup, deactivate, getAndRemoveFirstGroup, getDependencyGraph, getGroup, getPartition, getReducedGraph, getRepresentative, hasOutgoingEdges, isEmpty, isInRecursiveGroup, isRecursionCutPoint, isSingleton, registerDependency, unregisterDependency
-
Constructor Details
-
TimelessCommunicationTracker
public TimelessCommunicationTracker(org.apache.log4j.Logger logger)
-
-
Method Details
-
createGroup
- Specified by:
createGroup
in classCommunicationTracker
-
reconstructQueueContents
Description copied from class:CommunicationTracker
This method is responsible for reconstructing the active queue contents after the network structure has changed. It it defined as abstract because the reconstruction logic is specific to eachCommunicationTracker
.- Specified by:
reconstructQueueContents
in classCommunicationTracker
-
proxifyMailbox
Description copied from class:CommunicationTracker
Creates a proxy for the givenMailbox
for the given requesterNode
. The proxy creation isCommunicationTracker
-specific and depends on the identity of the requester. This method is primarily used to createTimelyMailboxProxy
s depending on the network topology. There is no guarantee that the same proxy instance is returned when this method is called multiple times with the same arguments.- Specified by:
proxifyMailbox
in classCommunicationTracker
-
proxifyIndexerListener
Description copied from class:CommunicationTracker
Creates a proxy for the givenIndexerListener
for the given requesterNode
. The proxy creation isCommunicationTracker
-specific and depends on the identity of the requester. This method is primarily used to createTimelyIndexerListenerProxy
s depending on the network topology. There is no guarantee that the same proxy instance is returned when this method is called multiple times with the same arguments.- Specified by:
proxifyIndexerListener
in classCommunicationTracker
-
postProcessNode
Description copied from class:CommunicationTracker
This hook allows concrete tracker implementations to perform tracker-specific post processing on nodes (cf.NetworkStructureChangeSensitiveNode
andBehaviorChangingMailbox
). At the time of the invocation, the network topology has already been updated.- Specified by:
postProcessNode
in classCommunicationTracker
-
postProcessGroup
Description copied from class:CommunicationTracker
This hook allows concrete tracker implementations to perform tracker-specific post processing on groups. At the time of the invocation, the network topology has already been updated.- Specified by:
postProcessGroup
in classCommunicationTracker
-