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

public static interface NotificationQueue.Dependency extends LogOutputAppendable
  • 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

      default UpdateGraph getUpdateGraph(NotificationQueue.Dependency... dependencies)
    • getUpdateGraph

      static UpdateGraph getUpdateGraph(@Nullable @Nullable NotificationQueue.Dependency first, NotificationQueue.Dependency... dependencies)
      Examine all dependencies excluding non-refreshing dynamic nodes, and verify that they are using the same UpdateGraph.

      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 helpful
      dependencies - the dependencies to examine
      Returns:
      the singular UpdateGraph used by all dependencies, or null if all dependencies are non-refreshing dynamic nodes
      Throws:
      UpdateGraphConflictException - if multiple update graphs were found in the dependencies