Class InstrumentedListenerAdapter
- All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable,NotificationQueue.Dependency,LivenessManager,LivenessNode,LivenessReferent,Listener,ListenerBase,Serializable
- Direct Known Subclasses:
DynamicTableToAdoConverter,TableLogger
BaseTable.ListenerImpl- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.illumon.iris.db.v2.InstrumentedListener
InstrumentedListener.NotificationNested classes/interfaces inherited from class com.illumon.iris.db.v2.InstrumentedListenerBase
InstrumentedListenerBase.ErrorNotification, InstrumentedListenerBase.NotificationBase -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreate an instrumented listener for source.InstrumentedListenerAdapter(String description, DynamicTable source) Create an instrumented listener for source.InstrumentedListenerAdapter(String description, DynamicTable source, boolean retain) -
Method Summary
Modifier and TypeMethodDescriptionbooleancanExecute(long step) Check if this listener is ready to execute.protected voiddestroy()Attempt to release (destructively when necessary) resources held by this object.voidonFailureInternal(Throwable originalException, UpdatePerformanceTracker.Entry sourceEntry) Called when the source table produces an errorabstract voidProcess notification of table changes.Methods inherited from class com.illumon.iris.db.v2.InstrumentedListener
getNotification, setInitialImageMethods inherited from class com.illumon.iris.db.v2.InstrumentedListenerBase
append, getEntry, getErrorNotification, onFailure, onFailureInternalWithDependent, satisfied, setVerboseLogging, toStringMethods inherited from class com.illumon.iris.db.util.liveness.LivenessArtifact
manageWithCurrentScope, unmanage, unmanageMethods inherited from class com.illumon.iris.db.util.liveness.ReferenceCountedLivenessNode
dropReference, getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryRetainReferenceMethods inherited from class com.illumon.util.referencecounting.ReferenceCounted
decrementReferenceCount, incrementReferenceCount, resetReferenceCount, tryDecrementReferenceCount, tryIncrementReferenceCountMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.illumon.iris.db.v2.ListenerBase
getErrorNotification, onFailureMethods inherited from interface com.illumon.iris.db.util.liveness.LivenessManager
manage, tryManageMethods inherited from interface com.illumon.iris.db.util.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReference
-
Field Details
-
source
-
-
Constructor Details
-
InstrumentedListenerAdapter
Create an instrumented listener for source. The listener will be retained and no description is provided.- Parameters:
source- The source table this listener will subscribe to - needed for preserving referential integrity.
-
InstrumentedListenerAdapter
Create an instrumented listener for source. The listener will be retained and no description is provided.- Parameters:
description- A description for the UpdatePerformanceTracker to append to its entry description.source- The source table this listener will subscribe to - needed for preserving referential integrity.
-
InstrumentedListenerAdapter
public InstrumentedListenerAdapter(@Nullable String description, DynamicTable source, boolean retain) - Parameters:
description- A description for the UpdatePerformanceTracker to append to its entry description.source- The source table this listener will subscribe to - needed for preserving referential integrity.retain- Whether a hard reference to this listener should be maintained to prevent it from being collected.
-
-
Method Details
-
onUpdate
Description copied from interface:ListenerProcess notification of table changes.The Listener onUpdate call executes within the
LiveTableMonitorrefresh 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, withDynamicTable.listenForUpdates(Listener), 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.Dependencyof the listener. For listeners that reference multiple ticking tables, a common pattern is to use aMergedListenerand collection ofListenerRecorders.- Parameters:
added- rows addedremoved- rows removedmodified- rows modified
-
onFailureInternal
public void onFailureInternal(Throwable originalException, UpdatePerformanceTracker.Entry sourceEntry) Called when the source table produces an error- Specified by:
onFailureInternalin classInstrumentedListenerBase- Parameters:
originalException- the original throwable that caused this errorsourceEntry- the performance tracker entry that was active when the error occurred
-
canExecute
public boolean canExecute(long step) Description copied from class:InstrumentedListenerBaseCheck if this listener is ready to execute.- Overrides:
canExecutein classInstrumentedListenerBase- Returns:
- if this listener is ready to execute
-
destroy
protected void destroy()Description copied from class:ReferenceCountedLivenessNodeAttempt to release (destructively when necessary) resources held by this object. This may render the object unusable for subsequent operations. Implementations should be sure to call super.destroy().
This is intended to only ever be used as a side effect of decreasing the reference count to 0.
- Overrides:
destroyin classReferenceCountedLivenessNode
-