Interface ShiftObliviousListener

All Superinterfaces:
LivenessManager, LivenessNode, LivenessReferent, TableListener
All Known Implementing Classes:
BaseTable.ShiftObliviousListenerImpl, PythonReplayShiftObliviousListenerAdapter, PythonShiftObliviousListenerAdapter, ShiftObliviousInstrumentedListener, ShiftObliviousInstrumentedListenerAdapter

public interface ShiftObliviousListener extends TableListener
Shift-oblivious listener for table changes.
  • Method Details

    • onUpdate

      void onUpdate(RowSet added, RowSet removed, RowSet modified)
      Process notification of table changes.

      The ShiftObliviousListener 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(ShiftObliviousListener), 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:
      added - rows added
      removed - rows removed
      modified - rows modified
    • getNotification

      NotificationQueue.Notification getNotification(RowSet added, RowSet removed, RowSet modified)
      Creates a notification for the table changes.
      Parameters:
      added - rows added
      removed - rows removed
      modified - rows modified
      Returns:
      table change notification
    • setInitialImage

      void setInitialImage(RowSet initialImage)
      Sets the RowSet for the initial data.
      Parameters:
      initialImage - initial image