Package com.illumon.iris.db.v2.utils
Class AbstractNotification
java.lang.Object
com.illumon.iris.db.v2.utils.AbstractNotification
- All Implemented Interfaces:
com.fishlib.base.log.LogOutputAppendable,NotificationQueue.Notification,IntrusiveDoublyLinkedNode<NotificationQueue.Notification>,Runnable
- Direct Known Subclasses:
AbstractIndexUpdateNotification,InstrumentedListenerBase.ErrorNotification,NotificationWrapper,TerminalNotification,WaitNotification
Common base class for notifications.
-
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 -
Method Summary
Modifier and TypeMethodDescriptioncom.fishlib.base.log.LogOutputappend(com.fishlib.base.log.LogOutput output) getNext()Get the next node after this node.getPrev()Get the previous node before this node.booleanTerminal notifications guarantee that they will not queue additional notifications or mutate data structures that should result in additional notifications.booleanIf a terminal notification must be executed on the main LTM thread, it must override this method, so that the notification is not executed on the refresh pool.voidSet this node's next node.voidSet this node's previous node.toString()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.illumon.iris.db.tables.live.NotificationQueue.Notification
canExecute
-
Constructor Details
-
AbstractNotification
protected AbstractNotification(boolean isTerminal)
-
-
Method Details
-
mustExecuteWithLtmLock
public boolean mustExecuteWithLtmLock()Description copied from interface:NotificationQueue.NotificationIf a terminal notification must be executed on the main LTM thread, it must override this method, so that the notification is not executed on the refresh pool. It is an error to return true if this notification is not terminal- Specified by:
mustExecuteWithLtmLockin interfaceNotificationQueue.Notification- Returns:
- true if this notification must be executed directly under the protection of the LTM lock
-
toString
-
append
public com.fishlib.base.log.LogOutput append(com.fishlib.base.log.LogOutput output) - Specified by:
appendin interfacecom.fishlib.base.log.LogOutputAppendable
-
isTerminal
public boolean isTerminal()Description copied from interface:NotificationQueue.NotificationTerminal 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:
isTerminalin interfaceNotificationQueue.Notification- Returns:
- True iff this notification is terminal.
-
getNext
Description copied from interface:IntrusiveDoublyLinkedNodeGet the next node after this node.- Specified by:
getNextin interfaceIntrusiveDoublyLinkedNode<NotificationQueue.Notification>- Returns:
- This node's next node
-
setNext
Description copied from interface:IntrusiveDoublyLinkedNodeSet this node's next node.- Specified by:
setNextin interfaceIntrusiveDoublyLinkedNode<NotificationQueue.Notification>- Parameters:
other- This node's new next node
-
getPrev
Description copied from interface:IntrusiveDoublyLinkedNodeGet the previous node before this node.- Specified by:
getPrevin interfaceIntrusiveDoublyLinkedNode<NotificationQueue.Notification>- Returns:
- This node's previous node
-
setPrev
Description copied from interface:IntrusiveDoublyLinkedNodeSet this node's previous node.- Specified by:
setPrevin interfaceIntrusiveDoublyLinkedNode<NotificationQueue.Notification>- Parameters:
other- This node's new previous node
-