class StorableAvailabilityWatcher extends AvailabilityRegistrationWatcher implements StorableResource<StorableAvailabilityWatcher>
AvailabilityRegistrationWatcher for
non-transactional persistent availability/visibility event
registrations.| Modifier and Type | Field and Description |
|---|---|
private StorableReference |
listener
The listener that should be notified of matches
|
cookie, eventID, expiration, handback, visibilityOnlystartOrdinal| Constructor and Description |
|---|
StorableAvailabilityWatcher(long timestamp,
long startOrdinal,
long currentSeqNum)
Used during log recovery to create a mostly empty
StorableAvailabilityWatcher. |
StorableAvailabilityWatcher(long timestamp,
long startOrdinal,
Uuid cookie,
boolean visibilityOnly,
MarshalledObject handback,
long eventID,
RemoteEventListener listener)
Create a new
StorableAvailabilityWatcher. |
| Modifier and Type | Method and Description |
|---|---|
(package private) void |
cleanup(OutriggerServerImpl server,
boolean expired)
Overridden by subclasses if there is any cleanup work they need
to do as part of
cancel or
removeIfExpired. |
(package private) RemoteEventListener |
getListener(ProxyPreparer preparer)
Return the remote listener associated with this
EventRegistrationWatcher. |
(package private) boolean |
isInterested(EntryTransition transition,
long ordinal)
Return
true if this watcher cares about a given
visibility transition. |
StorableAvailabilityWatcher |
restore(ObjectInputStream in)
Restore the persistent fields
|
void |
store(ObjectOutputStream out)
Store the persistent fields
|
addTemplateHandle, cancel, getCookie, getExpiration, process, removeIfExpired, setExpirationcompareToclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetCookie, getExpiration, setExpirationprivate StorableReference listener
StorableAvailabilityWatcher(long timestamp,
long startOrdinal,
long currentSeqNum)
StorableAvailabilityWatcher.
Note, we set the time stamp and tie-breaker here instead of getting them from the log. This means they will be inconstant with their value from the last VM we were in, but since they never leak out and events are read-only anyway this should not be a problem (this also allows us to keep the tie-breaker and time stamp in final fields).
timestamp - the value that is used
to sort TransitionWatchers.startOrdinal - the highest ordinal associated
with operations that are considered to have occurred
before the operation associated with this watcher.currentSeqNum - Sequence number to start with.NullPointerException - if the notifier
argument is null.StorableAvailabilityWatcher(long timestamp,
long startOrdinal,
Uuid cookie,
boolean visibilityOnly,
MarshalledObject handback,
long eventID,
RemoteEventListener listener)
StorableAvailabilityWatcher.timestamp - the value that is used
to sort TransitionWatchers.startOrdinal - the highest ordinal associated
with operations that are considered to have occurred
before the operation associated with this watcher.cookie - The unique identifier associated
with this watcher. Must not be null.visibilityOnly - pass true if client
only wants visibility eventshandback - The handback object that
should be sent along with event
notifications to the the listener.eventID - The event ID for event type
represented by this object.listener - The object to notify of
matches.NullPointerException - if the cookie,
or listener arguments are null.boolean isInterested(EntryTransition transition, long ordinal)
TransitionWatchertrue if this watcher cares about a given
visibility transition. Assumes the transitioning entry matches
the template in the TemplateHandle associated with
this watcher. This method should return a value even if the
expiration time has been reached or remove has
been called. This call should not obtain any locks.isInterested in class TransitionWatchertransition - A EntryTransition that
describes the transition and what
entry is transitioning. This method
will assume that transition.getHandle
returns a non-null value.ordinal - The ordinal associated with transition.true if this watcher is interested
in the indicated transition and false
otherwise.RemoteEventListener getListener(ProxyPreparer preparer) throws ClassNotFoundException, IOException
AvailabilityRegistrationWatcherEventRegistrationWatcher. Optionally
prepare the listener if it has been recovered from
the store and not yet re-prepared.getListener in class AvailabilityRegistrationWatcherEventRegistrationWatcherClassNotFoundException - if the listener
needs to be unmarshalled and a necessary
class can not be foundIOException - if the listener can not
be unmarshalled. May throw RemoteException
if the call to the preparer doesvoid cleanup(OutriggerServerImpl server, boolean expired)
cancel or
removeIfExpired. Called after releasing the lock
on this. Will be called at most once.cleanup in class AvailabilityRegistrationWatcherserver - A reference to the owner.expired - true if being called from
removeIfExpired and false otherwise.public void store(ObjectOutputStream out) throws IOException
store in interface StorableObject<StorableAvailabilityWatcher>IOExceptionpublic StorableAvailabilityWatcher restore(ObjectInputStream in) throws IOException, ClassNotFoundException
restore in interface StorableObject<StorableAvailabilityWatcher>IOExceptionClassNotFoundExceptionCopyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.