Class BaseTable.ListenerImpl
- All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable
,NotificationQueue.Dependency
,LivenessManager
,LivenessNode
,LivenessReferent
,Listener
,ListenerBase
,Serializable
- Enclosing class:
- BaseTable
BaseTable.ShiftAwareListenerImpl
over BaseTable.ListenerImpl
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.illumon.iris.db.v2.InstrumentedListener
InstrumentedListener.Notification
Nested classes/interfaces inherited from class com.illumon.iris.db.v2.InstrumentedListenerBase
InstrumentedListenerBase.ErrorNotification, InstrumentedListenerBase.NotificationBase
-
Constructor Summary
ConstructorsConstructorDescriptionListenerImpl
(String description, DynamicTable parent, DynamicTable dependent) -
Method Summary
Modifier and TypeMethodDescriptionboolean
canExecute
(long step) Check if this listener is ready to execute.protected void
destroy()
Attempt to release (destructively when necessary) resources held by this object.final void
onFailureInternal
(Throwable originalException, UpdatePerformanceTracker.Entry sourceEntry) void
Process notification of table changes.Methods inherited from class com.illumon.iris.db.v2.InstrumentedListener
getNotification, setInitialImage
Methods inherited from class com.illumon.iris.db.v2.InstrumentedListenerBase
append, getEntry, getErrorNotification, onFailure, onFailureInternalWithDependent, satisfied, setVerboseLogging, toString
Methods inherited from class com.illumon.iris.db.util.liveness.LivenessArtifact
manageWithCurrentScope, unmanage, unmanage
Methods inherited from class com.illumon.iris.db.util.liveness.ReferenceCountedLivenessNode
dropReference, getWeakReference, initializeTransientFieldsForLiveness, onReferenceCountAtZero, tryManage, tryRetainReference
Methods inherited from class com.illumon.util.referencecounting.ReferenceCounted
decrementReferenceCount, 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 com.illumon.iris.db.v2.ListenerBase
getErrorNotification, onFailure
Methods inherited from interface com.illumon.iris.db.util.liveness.LivenessManager
manage, tryManage
Methods inherited from interface com.illumon.iris.db.util.liveness.LivenessReferent
dropReference, getReferentDescription, getWeakReference, retainReference, tryRetainReference
-
Constructor Details
-
ListenerImpl
-
-
Method Details
-
onUpdate
Description copied from interface:Listener
Process notification of table changes.The Listener onUpdate call executes within the
LiveTableMonitor
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, 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.Dependency
of the listener. For listeners that reference multiple ticking tables, a common pattern is to use aMergedListener
and collection ofListenerRecorder
s.- Parameters:
added
- rows addedremoved
- rows removedmodified
- rows modified
-
onFailureInternal
public final void onFailureInternal(Throwable originalException, UpdatePerformanceTracker.Entry sourceEntry) - Specified by:
onFailureInternal
in classInstrumentedListenerBase
-
canExecute
public boolean canExecute(long step) Description copied from class:InstrumentedListenerBase
Check if this listener is ready to execute.- Overrides:
canExecute
in classInstrumentedListenerBase
- Returns:
- if this listener is ready to execute
-
destroy
protected void destroy()Description copied from class:ReferenceCountedLivenessNode
Attempt 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:
destroy
in classReferenceCountedLivenessNode
-