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 |
core
mailbox, parent
childMailboxes, children
nodeId, 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, propagateIterableUpdate
appendParent, assignTraceInfo, getCommunicationTracker, getMailbox, getParents, instantiateMailbox, propagatePullInto, propagatePullIntoWithTimestamp, removeParent
appendChild, constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, propagateUpdate, removeChild
acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCore
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
acceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
appendChild, constructIndex, getPulledContents, getPulledContents, getReceivers, removeChild
batchUpdate
protected OutputCachingEvaluatorNode.NetworkStructureChangeSensitiveLogic logic
protected TimelyMemory<Timestamp> memory
protected CommunicationGroup group
public OutputCachingEvaluatorNode(ReteContainer reteContainer, EvaluatorCore core)
public CommunicationGroup getCurrentGroup()
getCurrentGroup
in interface IGroupable
public void setCurrentGroup(CommunicationGroup group)
IGroupable
setCurrentGroup
in interface IGroupable
public void networkStructureChanged()
NetworkStructureChangeSensitiveNode
networkStructureChanged
in interface NetworkStructureChangeSensitiveNode
networkStructureChanged
in class StandardNode
public void clear()
Clearable
protected OutputCachingEvaluatorNode.NetworkStructureChangeSensitiveLogic createLogic()
public void pullInto(java.util.Collection<Tuple> collector, boolean flush)
Supplier
public void pullIntoWithTimeline(java.util.Map<Tuple,Timeline<Timestamp>> collector, boolean flush)
pullIntoWithTimeline
in interface Supplier
public void update(Direction direction, Tuple input, Timestamp timestamp)
Receiver
public Timestamp getResumableTimestamp()
org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode
getResumableTimestamp
in interface org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode
public void resumeAt(Timestamp timestamp)
org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode
resumeAt
in interface org.eclipse.viatra.query.runtime.rete.network.communication.timely.ResumableNode