Class PrintListener
- All Implemented Interfaces:
LogOutputAppendable
,LivenessManager
,LivenessNode
,LivenessReferent
,TableListener
,TableUpdateListener
,NotificationQueue.Dependency
,Serializable
This can be used to debug the performance of a query by attaching to various tables in an effort to understand the update pattern. Optionally, you can also print out the head of the table.
Output is directed to stdout, thus this should not be enabled in production queries.
After you are finished, call the stop()
method to remove this listener from the source table.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.deephaven.engine.table.impl.InstrumentedTableUpdateListener
InstrumentedTableUpdateListener.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.InstrumentedTableListenerBase
failed
-
Constructor Summary
ConstructorDescriptionPrintListener
(String description, Table table) Create a PrintListener attached to the given table.PrintListener
(String description, Table table, int rowCount) Create a PrintListener attached to the given table. -
Method Summary
Modifier and TypeMethodDescriptionvoid
onFailureInternal
(Throwable originalException, TableListener.Entry sourceEntry) void
onUpdate
(TableUpdate upstream) Process notification of table changes.void
stop()
Remove this listener from the table.Methods inherited from class io.deephaven.engine.table.impl.InstrumentedTableUpdateListener
getNotification
Methods inherited from class io.deephaven.engine.table.impl.InstrumentedTableListenerBase
append, canExecute, 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
destroy, 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, 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
-
PrintListener
Create a PrintListener attached to the given table.- Parameters:
description
- the description (for use in each print statement)table
- the table to attach to
-
PrintListener
Create a PrintListener attached to the given table.- Parameters:
description
- the description (for use in each print statement)table
- the table to attach torowCount
- how many rows to print out on each update
-
-
Method Details
-
onUpdate
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, withTable.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.
-
onFailureInternal
- Specified by:
onFailureInternal
in classInstrumentedTableListenerBase
-
stop
public void stop()Remove this listener from the table.
-