public class OutputCachingEvaluatorNode extends AbstractEvaluatorNode implements Clearable, org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode
| Modifier and Type | Class and Description |
|---|---|
protected static class |
OutputCachingEvaluatorNode.NetworkStructureChangeSensitiveLogic |
| Modifier and Type | Field and Description |
|---|---|
protected CommunicationGroup |
group |
protected OutputCachingEvaluatorNode.NetworkStructureChangeSensitiveLogic |
logic |
protected TimelyMemory<Timestamp> |
memory
Maps input tuples to timestamps.
|
protected java.util.Map<Tuple,java.lang.Iterable<Tuple>> |
outputCache |
coremailbox, parentchildMailboxes, childrennodeId, reteContainer, tag, traceInfos| Constructor and Description |
|---|
OutputCachingEvaluatorNode(ReteContainer reteContainer,
EvaluatorCore core) |
| Modifier and Type | Method and Description |
|---|---|
void |
clear()
Clear all partial matchings stored in memory
|
protected OutputCachingEvaluatorNode.NetworkStructureChangeSensitiveLogic |
createLogic() |
CommunicationGroup |
getCurrentGroup() |
Timestamp |
getResumableTimestamp()
Returns the smallest timestamp where lazy folding shall be resumed, or null if there is no more folding to do in this
resumable.
|
void |
networkStructureChanged()
At the time of the invocation, the dependency graph has already been updated.
|
void |
pullInto(java.util.Collection<Tuple> collector,
boolean flush)
Pulls the contents of this object in this particular moment into a target collection.
|
void |
pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector,
boolean flush) |
void |
resumeAt(Timestamp timestamp)
When called, the folding of the state shall be resumed at the given timestamp.
|
void |
setCurrentGroup(CommunicationGroup group)
Sets the current group of the mailbox
|
void |
update(Direction direction,
Tuple input,
Timestamp timestamp)
Updates the receiver with a newly found or lost partial matching.
|
getReteContainer, prettyPrintTraceInfoPatternList, propagateIterableUpdateappendParent, assignTraceInfo, getCommunicationTracker, getMailbox, getParents, instantiateMailbox, propagatePullInto, propagatePullIntoWithTimestamp, removeParentappendChild, constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, propagateUpdate, removeChildacceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCoreclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitacceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTagappendChild, constructIndex, getPulledContents, getPulledContents, getReceivers, removeChildbatchUpdateprotected OutputCachingEvaluatorNode.NetworkStructureChangeSensitiveLogic logic
protected TimelyMemory<Timestamp> memory
protected CommunicationGroup group
public OutputCachingEvaluatorNode(ReteContainer reteContainer, EvaluatorCore core)
public CommunicationGroup getCurrentGroup()
getCurrentGroup in interface IGroupablepublic void setCurrentGroup(CommunicationGroup group)
IGroupablesetCurrentGroup in interface IGroupablepublic void networkStructureChanged()
NetworkStructureChangeSensitiveNodenetworkStructureChanged in interface NetworkStructureChangeSensitiveNodenetworkStructureChanged in class StandardNodepublic void clear()
Clearableprotected OutputCachingEvaluatorNode.NetworkStructureChangeSensitiveLogic createLogic()
public void pullInto(java.util.Collection<Tuple> collector, boolean flush)
Supplierpublic void pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector, boolean flush)
pullIntoWithTimeline in interface Supplierpublic void update(Direction direction, Tuple input, Timestamp timestamp)
Receiverpublic Timestamp getResumableTimestamp()
org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNodegetResumableTimestamp in interface org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNodepublic void resumeAt(Timestamp timestamp)
org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNoderesumeAt in interface org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode