Class SwapListener
- All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable
,LivenessManager
,LivenessNode
,LivenessReferent
,Listener
,ListenerBase
,Serializable
public class SwapListener extends SwapListenerBase<Listener> implements Listener
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
Constructors Constructor Description SwapListener(com.fishlib.io.logger.Logger log, BaseTable sourceTable)
-
Method Summary
Modifier and Type Method Description void
destroy()
Attempt to release (destructively when necessary) resources held by this object.NotificationQueue.IndexUpdateNotification
getNotification(Index added, Index removed, Index modified)
Creates a notification for the table changes.void
onUpdate(Index added, Index removed, Index modified)
Process notification of table changes.void
setInitialImage(Index initialImage)
Sets the index for the initial data.void
subscribeForUpdates()
InvokeDynamicTable.listenForUpdates(Listener)
for the appropriate subclass ofSwapListenerBase
.Methods inherited from class com.illumon.iris.db.v2.SwapListenerBase
end, getErrorNotification, makeSnapshotControl, onFailure, setListenerAndResult, start
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
append, decrementReferenceCount, incrementReferenceCount, resetReferenceCount, toString, 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
-
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. -
getNotification
public NotificationQueue.IndexUpdateNotification getNotification(Index added, Index removed, Index modified)Description copied from interface:Listener
Creates a notification for the table changes.- Specified by:
getNotification
in interfaceListener
- Parameters:
added
- rows addedremoved
- rows removedmodified
- rows modified- Returns:
- table change notification
-
setInitialImage
Description copied from interface:Listener
Sets the index for the initial data.- Specified by:
setInitialImage
in interfaceListener
- Parameters:
initialImage
- initial image
-
destroy
public 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
-
subscribeForUpdates
public void subscribeForUpdates()Description copied from class:SwapListenerBase
InvokeDynamicTable.listenForUpdates(Listener)
for the appropriate subclass ofSwapListenerBase
.- Specified by:
subscribeForUpdates
in classSwapListenerBase<Listener>
-