Class FaithfulParallelTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult>
java.lang.Object
tools.refinery.interpreter.rete.network.BaseNode
tools.refinery.interpreter.rete.network.StandardNode
tools.refinery.interpreter.rete.single.SingleInputNode
tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode<Domain,Accumulator,AggregateResult>
tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult,FaithfulParallelTimelyColumnAggregatorNode.CumulativeAggregate<Domain,Accumulator>,FaithfulParallelTimelyColumnAggregatorNode.FoldingState<Domain>>
tools.refinery.interpreter.rete.aggregation.timely.FaithfulParallelTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult>
- All Implemented Interfaces:
Clearable
,IAggregatorNode
,ResumableNode
,IGroupable
,NetworkStructureChangeSensitiveNode
,Node
,Receiver
,Supplier
,Tunnel
public class FaithfulParallelTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult>
extends FaithfulTimelyColumnAggregatorNode<Domain,Accumulator,AggregateResult,FaithfulParallelTimelyColumnAggregatorNode.CumulativeAggregate<Domain,Accumulator>,FaithfulParallelTimelyColumnAggregatorNode.FoldingState<Domain>>
implements ResumableNode
Faithful column aggregator with parallel aggregation architecture.
- Since:
- 2.4
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static class
protected static class
Nested classes/interfaces inherited from class tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode
FaithfulTimelyColumnAggregatorNode.MergeableFoldingState<T>
Nested classes/interfaces inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
AbstractColumnAggregatorNode.AggregatorOuterIdentityIndexer, AbstractColumnAggregatorNode.AggregatorOuterIndexer, AbstractColumnAggregatorNode.NetworkStructureChangeSensitiveLogic
-
Field Summary
Fields inherited from class tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode
aggregates, communicationGroup, foldingState, NEUTRAL_INITIAL_TIMELINE, NON_NEUTRAL_INITIAL_TIMELINE, timelines
Fields inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
aggregatorOuterIdentityIndexers, aggregatorOuterIndexer, columnMask, groupMask, NEUTRAL, operator, runtimeContext, sourceWidth
Fields inherited from class tools.refinery.interpreter.rete.single.SingleInputNode
mailbox, parent
Fields inherited from class tools.refinery.interpreter.rete.network.StandardNode
childMailboxes, children
Fields inherited from class tools.refinery.interpreter.rete.network.BaseNode
nodeId, reteContainer, tag, traceInfos
-
Constructor Summary
ConstructorsConstructorDescriptionFaithfulParallelTimelyColumnAggregatorNode
(ReteContainer reteContainer, IMultisetAggregationOperator<Domain, Accumulator, AggregateResult> operator, TupleMask groupMask, int aggregatedColumn) FaithfulParallelTimelyColumnAggregatorNode
(ReteContainer reteContainer, IMultisetAggregationOperator<Domain, Accumulator, AggregateResult> operator, TupleMask groupMask, TupleMask columnMask) -
Method Summary
Modifier and TypeMethodDescriptionprotected Map
<AggregateResult, Diff<Timestamp>> doFoldingStep
(Tuple group, FaithfulParallelTimelyColumnAggregatorNode.FoldingState<Domain> state, Timestamp timestamp) protected void
gcAggregates
(FaithfulParallelTimelyColumnAggregatorNode.CumulativeAggregate<Domain, Accumulator> aggregate, Tuple group, Timestamp timestamp) Garbage collects the counter of the given group and timestamp if the bag of aggregands is empty.getAggregate
(Tuple group, Timestamp timestamp) On-demand initializes and returns the aggregate for the given group and timestamp.getAggregateResult
(Tuple group) void
Updates the receiver with a newly found or lost partial matching.Methods inherited from class tools.refinery.interpreter.rete.aggregation.timely.FaithfulTimelyColumnAggregatorNode
addFoldingState, appendDiff, clear, getAggregateResultTimeline, getAggregateTuple, getAggregateTupleTimeline, getCurrentGroup, getInitialTimeline, getResumableTimestamp, instantiateMailbox, resumeAt, setCurrentGroup, updateTimeline
Methods inherited from class tools.refinery.interpreter.rete.aggregation.AbstractColumnAggregatorNode
appendChild, getAggregatorOuterIdentityIndexer, getAggregatorOuterIndexer, getCommunicationTracker, propagate, propagateAggregateResultUpdate, pullInto, pullIntoWithTimeline, tupleFromAggregateResult
Methods inherited from class tools.refinery.interpreter.rete.single.SingleInputNode
appendParent, assignTraceInfo, getMailbox, getParents, propagatePullInto, propagatePullIntoWithTimestamp, removeParent
Methods inherited from class tools.refinery.interpreter.rete.network.StandardNode
constructIndex, getChildMailboxes, getPulledContents, getReceivers, issueError, networkStructureChanged, propagateUpdate, removeChild
Methods inherited from class tools.refinery.interpreter.rete.network.BaseNode
acceptPropagatedTraceInfo, getContainer, getNodeId, getTag, getTraceInfoPatternsEnumerated, getTraceInfos, setTag, toString, toStringCore
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface tools.refinery.interpreter.rete.network.IGroupable
getCurrentGroup, setCurrentGroup
Methods inherited from interface tools.refinery.interpreter.rete.network.Node
acceptPropagatedTraceInfo, assignTraceInfo, getCommunicationTracker, getContainer, getNodeId, getTag, getTraceInfos, setTag
Methods inherited from interface tools.refinery.interpreter.rete.network.Receiver
batchUpdate
Methods inherited from interface tools.refinery.interpreter.rete.network.communication.timely.ResumableNode
getResumableTimestamp, resumeAt
Methods inherited from interface tools.refinery.interpreter.rete.network.Supplier
constructIndex, getPulledContents, getPulledContents, getReceivers, removeChild
-
Constructor Details
-
FaithfulParallelTimelyColumnAggregatorNode
public FaithfulParallelTimelyColumnAggregatorNode(ReteContainer reteContainer, IMultisetAggregationOperator<Domain, Accumulator, AggregateResult> operator, TupleMask groupMask, TupleMask columnMask) -
FaithfulParallelTimelyColumnAggregatorNode
public FaithfulParallelTimelyColumnAggregatorNode(ReteContainer reteContainer, IMultisetAggregationOperator<Domain, Accumulator, AggregateResult> operator, TupleMask groupMask, int aggregatedColumn)
-
-
Method Details
-
doFoldingStep
protected Map<AggregateResult,Diff<Timestamp>> doFoldingStep(Tuple group, FaithfulParallelTimelyColumnAggregatorNode.FoldingState<Domain> state, Timestamp timestamp) -
update
Description copied from interface:Receiver
Updates the receiver with a newly found or lost partial matching. -
gcAggregates
protected void gcAggregates(FaithfulParallelTimelyColumnAggregatorNode.CumulativeAggregate<Domain, Accumulator> aggregate, Tuple group, Timestamp timestamp) Garbage collects the counter of the given group and timestamp if the bag of aggregands is empty. -
getAggregate
protected FaithfulParallelTimelyColumnAggregatorNode.CumulativeAggregate<Domain,Accumulator> getAggregate(Tuple group, Timestamp timestamp) On-demand initializes and returns the aggregate for the given group and timestamp. -
getAggregateResult
- Specified by:
getAggregateResult
in classAbstractColumnAggregatorNode<Domain,
Accumulator, AggregateResult>
-