Interface TableUpdateListener

All Superinterfaces:
LivenessManager, LivenessNode, LivenessReferent, TableListener
All Known Implementing Classes:
AppendOnlyAssertionInstrumentedListenerAdapter, BaseTable.ListenerImpl, InstrumentedTableUpdateListener, InstrumentedTableUpdateListenerAdapter, JoinListenerRecorder, ListenerRecorder, PrintListener, PythonListenerAdapter, PythonReplayListenerAdapter, SnapshotInternalListener, SortedAssertionInstrumentedListenerAdapter, SortListener, ToMapListener

public interface TableUpdateListener extends TableListener
Shift-aware listener for table changes.
  • Method Details

    • onUpdate

      void onUpdate(TableUpdate upstream)
      Process notification of table changes.

      The TableUpdateListener onUpdate call executes within the UpdateGraph 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 Table.addUpdateListener(TableUpdateListener), 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

      NotificationQueue.Notification getNotification(TableUpdate upstream)
      Creates a notification for the table changes.
      Parameters:
      upstream - The set of upstream table updates.
      Returns:
      table change notification