Package io.deephaven.integrations.python
Class PythonReplayShiftObliviousListenerAdapter
java.lang.Object
io.deephaven.util.referencecounting.ReferenceCounted
io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
io.deephaven.engine.liveness.ReferenceCountedLivenessNode
io.deephaven.engine.liveness.LivenessArtifact
io.deephaven.engine.table.impl.InstrumentedTableListenerBase
io.deephaven.engine.table.impl.ShiftObliviousInstrumentedListener
io.deephaven.engine.table.impl.ShiftObliviousInstrumentedListenerAdapter
io.deephaven.integrations.python.PythonReplayShiftObliviousListenerAdapter
- All Implemented Interfaces:
LogOutputAppendable
,LivenessManager
,LivenessNode
,LivenessReferent
,ShiftObliviousListener
,TableListener
,NotificationQueue.Dependency
,TableSnapshotReplayer
,Serializable
@ScriptApi
public class PythonReplayShiftObliviousListenerAdapter
extends ShiftObliviousInstrumentedListenerAdapter
implements TableSnapshotReplayer
A Deephaven table listener which passes update events to a Python listener object. The listener can also replay the
current table snapshot.
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 four arguments (isReplay, added, removed, modified).
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.deephaven.engine.table.impl.ShiftObliviousInstrumentedListener
ShiftObliviousInstrumentedListener.Notification
Nested classes/interfaces inherited from class io.deephaven.engine.table.impl.InstrumentedTableListenerBase
InstrumentedTableListenerBase.ErrorNotification, InstrumentedTableListenerBase.NotificationBase
Nested classes/interfaces inherited from interface io.deephaven.engine.table.TableListener
TableListener.Entry
-
Field Summary
Fields inherited from class io.deephaven.engine.table.impl.ShiftObliviousInstrumentedListenerAdapter
source
Fields inherited from class io.deephaven.engine.table.impl.InstrumentedTableListenerBase
failed
-
Constructor Summary
ConstructorDescriptionPythonReplayShiftObliviousListenerAdapter
(Table source, org.jpy.PyObject pyObjectIn) Create a Python listener.PythonReplayShiftObliviousListenerAdapter
(String description, Table source, boolean retain, org.jpy.PyObject pyObjectIn) Create a Python listener.PythonReplayShiftObliviousListenerAdapter
(String description, Table source, org.jpy.PyObject pyObjectIn) Create a Python listener. -
Method Summary
Methods inherited from class io.deephaven.engine.table.impl.ShiftObliviousInstrumentedListenerAdapter
canExecute, destroy, onFailureInternal
Methods inherited from class io.deephaven.engine.table.impl.ShiftObliviousInstrumentedListener
getNotification, setInitialImage
Methods inherited from class io.deephaven.engine.table.impl.InstrumentedTableListenerBase
append, getEntry, getErrorNotification, getUpdateGraph, onFailure, onFailureInternalWithDependent, satisfied, setVerboseLogging, toString
Methods inherited from class io.deephaven.engine.liveness.LivenessArtifact
manageWithCurrentScope
Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessNode
getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryUnmanage, tryUnmanage
Methods inherited from class io.deephaven.engine.liveness.ReferenceCountedLivenessReferent
dropReference, tryRetainReference
Methods inherited from class io.deephaven.util.referencecounting.ReferenceCounted
decrementReferenceCount, forceReferenceCountToZero, getReferenceCountDebug, incrementReferenceCount, resetReferenceCount, tryDecrementReferenceCount, tryIncrementReferenceCount
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, tryManage
Methods inherited from interface io.deephaven.engine.liveness.LivenessNode
tryUnmanage, tryUnmanage, unmanage, unmanage
Methods inherited from interface io.deephaven.engine.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReference
Methods inherited from interface io.deephaven.engine.updategraph.NotificationQueue.Dependency
getUpdateGraph
Methods inherited from interface io.deephaven.engine.table.TableListener
getErrorNotification, onFailure
-
Constructor Details
-
PythonReplayShiftObliviousListenerAdapter
Create a Python listener. No description for this listener will be provided. A hard reference to this listener will be maintained to prevent garbage collection. SeePythonReplayShiftObliviousListenerAdapter(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.
-
PythonReplayShiftObliviousListenerAdapter
public PythonReplayShiftObliviousListenerAdapter(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. SeePythonReplayShiftObliviousListenerAdapter(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.
-
PythonReplayShiftObliviousListenerAdapter
public PythonReplayShiftObliviousListenerAdapter(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
-
replay
public void replay()Description copied from interface:TableSnapshotReplayer
Replay the current table snapshot into a listener. A shared or exclusive UGP lock should be held when calling this method.- Specified by:
replay
in interfaceTableSnapshotReplayer
-
onUpdate
Description copied from interface:ShiftObliviousListener
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, withTable.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.- Specified by:
onUpdate
in interfaceShiftObliviousListener
- Specified by:
onUpdate
in classShiftObliviousInstrumentedListenerAdapter
- Parameters:
added
- rows addedremoved
- rows removedmodified
- rows modified
-