Interface ShiftAwareListener

All Superinterfaces:
ListenerBase, LivenessManager, LivenessNode, LivenessReferent
All Known Implementing Classes:
AddedTableLoggingListener, AppendOnlyAssertionInstrumentedListenerAdapter, BaseTable.ShiftAwareListenerImpl, FullTableLoggingListener, InstrumentedShiftAwareListener, InstrumentedShiftAwareListenerAdapter, JoinListenerRecorder, ListenerRecorder, PrintListener, ShiftAwareSwapListener, SnapshotInternalListener, SortedAssertionInstrumentedListenerAdapter, SortListener, ToMapListener

public interface ShiftAwareListener extends ListenerBase
Shift-aware listener for table changes.
  • Method Details

    • onUpdate

      void onUpdate(ShiftAwareListener.Update upstream)
      Process notification of table changes.

      The Listener onUpdate call executes within the LiveTableMonitor refresh loop. Any tables used within the listener's onUpdate call must have already been refreshed. Using the typical pattern of a Listener that is listening to a single table, with DynamicTable.listenForUpdates(Listener), this is trivially true.

      When the listener must reference more than just one parent, the tables (or other objects) it references, must be made a NotificationQueue.Dependency of the listener. For listeners that reference multiple ticking tables, a common pattern is to use a MergedListener and collection of ListenerRecorders.

      Parameters:
      upstream - The set of upstream table updates.
    • getNotification

      Creates a notification for the table changes.
      Parameters:
      upstream - The set of upstream table updates.
      Returns:
      table change notification