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
,AppendOnlyAssertionInstrumentedListenerAdapter
,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 UpdateGraph
getUpdateGraph
(@Nullable NotificationQueue.Dependency first, NotificationQueue.Dependency... dependencies) Examine alldependencies
excluding non-refreshingdynamic nodes
, and verify that they are using the sameUpdateGraph
.default UpdateGraph
getUpdateGraph
(NotificationQueue.Dependency... dependencies) boolean
satisfied
(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
UpdateGraph
itself 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 alldependencies
excluding 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
UpdateGraph
used by alldependencies
, or null if alldependencies
are non-refreshingdynamic nodes
- Throws:
UpdateGraphConflictException
- if multiple update graphs were found in the dependencies
-