Package io.deephaven.engine.updategraph
Interface NotificationQueue.Dependency
- All Superinterfaces:
LogOutputAppendable
- All Known Subinterfaces:
IcebergTable,LazySnapshotTable,NotificationStepSource,Table,TableAdapter,TableDefaults,UpdateGraph,UpdateSourceRegistrar
- All Known Implementing Classes:
AppendOnlyArrayBackedInputTable,AutoTuningIncrementalReleaseFilter,BarrageBlinkTable,BarrageRedirectedTable,BarrageTable,BaseIncrementalReleaseFilter,BaseTable,BaseTable.ListenerImpl,BaseTable.ShiftObliviousListenerImpl,BaseUpdateGraph,BucketedChunkedAjMergedListener,ClockFilter,ConstituentDependency,DeferredViewTable,DynamicWhereFilter,EventDrivenUpdateGraph,IcebergTableImpl,IncrementalReleaseFilter,InMemoryTable,InstrumentedTableListenerBase,InstrumentedTableUpdateListener,InstrumentedTableUpdateListenerAdapter,JoinListenerRecorder,KeyedArrayBackedInputTable,ListenerRecorder,MergedListener,OneShotUpdateCombiner,PartitionAwareSourceTable,PeriodicUpdateGraph,PoisonedUpdateGraph,PrintListener,PythonListenerAdapter,PythonMergedListenerAdapter,PythonReplayListenerAdapter,PythonReplayShiftObliviousListenerAdapter,PythonShiftObliviousListenerAdapter,QueryReplayGroupedTable,QueryTable,QueryTable.FilteredTable,RedefinableTable,ReplayGroupedFullTable,ReplayLastByGroupedTable,ReplayTable,ReplayTableBase,RollingReleaseFilter,ShiftObliviousInstrumentedListener,ShiftObliviousInstrumentedListenerAdapter,SimpleSourceTable,SnapshotIncrementalListener,SnapshotInternalListener,SortedAssertionInstrumentedListenerAdapter,SortedClockFilter,SortListener,SourceTable,StreamToBlinkTableAdapter,TimeSeriesFilter,TimeTable,ToMapListener,UncoalescedTable,UnsortedClockFilter,UpdatableTable,UpdateSourceCombiner,UpdateSourceQueryTable,ZeroKeyChunkedAjMergedListener
- Enclosing interface:
- NotificationQueue
-
Method Summary
Modifier and TypeMethodDescriptionstatic UpdateGraphgetUpdateGraph(@Nullable NotificationQueue.Dependency first, NotificationQueue.Dependency... dependencies) Examine alldependenciesexcluding non-refreshingdynamic nodes, and verify that they are using the sameUpdateGraph.default UpdateGraphgetUpdateGraph(NotificationQueue.Dependency... dependencies) booleansatisfied(long step) Is this ancestor satisfied? Note that this method must be safe to call on any thread.Methods inherited from interface io.deephaven.base.log.LogOutputAppendable
append
-
Method Details
-
satisfied
boolean satisfied(long step) Is this ancestor satisfied? Note that this method must be safe to call on any thread.- Parameters:
step- The step for which we are testing satisfaction- Returns:
- Whether the dependency is satisfied on
step(and will not fire subsequent notifications) - Throws:
ClockInconsistencyException- if step is observed to be before the highest step known to this Dependency; this is a best effort validation, in order to allow concurrent snapshots to fail fast or improper update processing to be detected- ImplNote:
- For all practical purposes, all implementations should consider whether the
UpdateGraphitself is satisfied if they have no other dependencies.
-
getUpdateGraph
UpdateGraph getUpdateGraph()- Returns:
- the update graph that this dependency is a part of
-
getUpdateGraph
-
getUpdateGraph
static UpdateGraph getUpdateGraph(@Nullable @Nullable NotificationQueue.Dependency first, NotificationQueue.Dependency... dependencies) Examine alldependenciesexcluding non-refreshingdynamic nodes, and verify that they are using the sameUpdateGraph.If a singular update graph was found in this process, return it.
Otherwise, if all dependencies are non-refreshing
dynamic nodes, return null.- Parameters:
first- at least one dependency is helpfuldependencies- the dependencies to examine- Returns:
- the singular
UpdateGraphused by alldependencies, or null if alldependenciesare non-refreshingdynamic nodes - Throws:
UpdateGraphConflictException- if multiple update graphs were found in the dependencies
-