Class PythonListenerAdapter

All Implemented Interfaces:
LogOutputAppendable, LivenessManager, LivenessNode, LivenessReferent, TableListener, TableUpdateListener, NotificationQueue.Dependency, Serializable

@ScriptApi public class PythonListenerAdapter extends InstrumentedTableUpdateListenerAdapter
A Deephaven table listener which passes update events to a Python listener object. The Python listener object can be either (1) a callable or (2) an object which provides an "onUpdate" method. In either case, the method must take one argument (updates).
See Also:
  • Constructor Details

    • PythonListenerAdapter

      public PythonListenerAdapter(Table source, org.jpy.PyObject pyObjectIn)
      Creates a Python listener. No description for this listener will be provided. A hard reference to this listener will be maintained to prevent garbage collection. See PythonListenerAdapter(String, Table, boolean, PyObject) if you do not want to prevent garbage collection of this listener.
      Parameters:
      source - The source table to which this listener will subscribe.
      pyObjectIn - Python listener object.
    • PythonListenerAdapter

      public PythonListenerAdapter(String description, Table source, org.jpy.PyObject pyObjectIn)
      Create a Python listener. A hard reference to this listener will be maintained to prevent garbage collection. See PythonListenerAdapter(String, Table, boolean, PyObject) if you do not want to prevent garbage collection of this listener.
      Parameters:
      description - A description for the UpdatePerformanceTracker to append to its entry description.
      source - The source table to which this listener will subscribe.
      pyObjectIn - Python listener object.
    • PythonListenerAdapter

      public PythonListenerAdapter(String description, Table source, boolean retain, org.jpy.PyObject pyObjectIn)
      Create a Python listener.
      Parameters:
      description - A description for the UpdatePerformanceTracker to append to its entry description.
      source - The source table to which this listener will subscribe.
      retain - Whether a hard reference to this listener should be maintained to prevent it from being collected.
      pyObjectIn - Python listener object.
  • Method Details

    • onUpdate

      public void onUpdate(TableUpdate update)
      Description copied from interface: TableUpdateListener
      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.

      Specified by:
      onUpdate in interface TableUpdateListener
      Specified by:
      onUpdate in class InstrumentedTableUpdateListenerAdapter
      Parameters:
      update - The set of upstream table updates.