Package com.illumon.iris.db.tables.live
Class NullIndexUpdateNotification
java.lang.Object
com.illumon.iris.db.v2.utils.AbstractNotification
com.illumon.iris.db.v2.utils.AbstractIndexUpdateNotification
com.illumon.iris.db.tables.live.NullIndexUpdateNotification
- All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable
,NotificationQueue.IndexUpdateNotification
,NotificationQueue.Notification
,IntrusiveDoublyLinkedNode<NotificationQueue.Notification>
,Runnable
public class NullIndexUpdateNotification extends AbstractIndexUpdateNotification
This is a notification that does not actually notify anything.
It is useful for the
SwapListener
to have the ability to create a notification
for its parent before there is anything to notify.-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.util.datastructures.linked.IntrusiveDoublyLinkedNode
IntrusiveDoublyLinkedNode.Adapter<NODE_TYPE extends IntrusiveDoublyLinkedNode<NODE_TYPE>>, IntrusiveDoublyLinkedNode.Impl<NODE_TYPE extends IntrusiveDoublyLinkedNode.Impl<NODE_TYPE>>
-
Constructor Summary
Constructors Constructor Description NullIndexUpdateNotification()
-
Method Summary
Modifier and Type Method Description com.fishlib.base.log.LogOutput
append(com.fishlib.base.log.LogOutput logOutput)
boolean
canExecute(long step)
Can this notification be executed? That is, are all of it's dependencies satisfied.boolean
isTerminal()
Terminal notifications guarantee that they will not queue additional notifications or mutate data structures that should result in additional notifications.void
run()
Methods inherited from class com.illumon.iris.db.v2.utils.AbstractNotification
getNext, getPrev, mustExecuteWithLtmLock, setNext, setPrev, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.illumon.util.datastructures.linked.IntrusiveDoublyLinkedNode
getNext, getPrev, setNext, setPrev
Methods inherited from interface com.illumon.iris.db.tables.live.NotificationQueue.Notification
mustExecuteWithLtmLock
-
Constructor Details
-
NullIndexUpdateNotification
public NullIndexUpdateNotification()
-
-
Method Details
-
isTerminal
public boolean isTerminal()Description copied from interface:NotificationQueue.Notification
Terminal notifications guarantee that they will not queue additional notifications or mutate data structures that should result in additional notifications. They are in turn guaranteed to be called after all non-terminal notifications for a given cycle through the notification queue.- Specified by:
isTerminal
in interfaceNotificationQueue.Notification
- Overrides:
isTerminal
in classAbstractNotification
- Returns:
- True iff this notification is terminal.
-
canExecute
public boolean canExecute(long step)Description copied from interface:NotificationQueue.Notification
Can this notification be executed? That is, are all of it's dependencies satisfied.- Parameters:
step
- The step for which we are testing satisfaction- Returns:
- true if this notification can be executed, false if it has unmet dependencies
-
append
public com.fishlib.base.log.LogOutput append(com.fishlib.base.log.LogOutput logOutput)- Specified by:
append
in interfacecom.fishlib.base.log.LogOutputAppendable
- Overrides:
append
in classAbstractNotification
-
run
public final void run()
-