com.sun.jini.outrigger
Class ReadWatcher
java.lang.Object
com.sun.jini.outrigger.TransitionWatcher
com.sun.jini.outrigger.QueryWatcher
com.sun.jini.outrigger.SingletonQueryWatcher
com.sun.jini.outrigger.ReadWatcher
- All Implemented Interfaces:
- Comparable
class ReadWatcher
- extends SingletonQueryWatcher
Subclass of QueryWatcher
for non-transactional reads.
Resolves with the first matching transition where the transaction
is null
and the entry is visible (the entry's current
state is ignored).
Constructor Summary |
ReadWatcher(long expiration,
long timestamp,
long startOrdinal)
Create a new ReadWatcher . |
Method Summary |
(package private) boolean |
catchUp(EntryTransition transition,
long now)
Process a transition which was posted before the watcher was
placed in TransitionWatchers object. |
(package private) boolean |
isInterested(EntryTransition transition,
long ordinal)
Return true if this watcher cares about a given
visibility transition. |
(package private) void |
process(EntryTransition transition,
long now)
Process the given transition. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ReadWatcher
ReadWatcher(long expiration,
long timestamp,
long startOrdinal)
- Create a new
ReadWatcher
.
- Parameters:
expiration
- the initial expiration time
for this TransitionWatcher
in
milliseconds since the beginning of the epoch.timestamp
- the value that is used
to sort TransitionWatcher
s.startOrdinal
- the highest ordinal associated
with operations that are considered to have occurred
before the operation associated with this watcher.
isInterested
boolean isInterested(EntryTransition transition,
long ordinal)
- Description copied from class:
TransitionWatcher
- Return
true
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.
- Specified by:
isInterested
in class TransitionWatcher
- Parameters:
transition
- 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
.
- Returns:
true
if this watcher is interested
in the indicated transition and false
otherwise.
process
void process(EntryTransition transition,
long now)
- Description copied from class:
TransitionWatcher
- Process the given transition. Assumes the passed entry matches the
template in the
TemplateHandle
associated with this
watcher and that isInterested
returned
true
. This call may make changes to the passed
EntryHandle
that will prevent it from being used by
other watchers. If remove
has been called or the
expiration time of this watcher has passed, this call should have no
effect. This call may cause the watcher to be removed.
- Specified by:
process
in class TransitionWatcher
- Parameters:
transition
- A EntryTransition
that
describes the transition and what
entry is transitioning. This method
will assume that transition.getHandle
returns a non-null value.now
- An estimate of the current time (not the time
when the event occured).
catchUp
boolean catchUp(EntryTransition transition,
long now)
- Description copied from class:
QueryWatcher
- Process a transition which was posted before the watcher was
placed in
TransitionWatchers
object. Assumes that
the entry in the transition matches matches the template in the
TemplateHandle
associated with this watcher. Does
not assume isInterested
has been called.
- Specified by:
catchUp
in class QueryWatcher
- Parameters:
transition
- A EntryTransition
that
describes the transition and what
entry is transitioning. This method
will assume that transition.getHandle
returns a non-null value.now
- An estimate of the current time (not the time
when the event occured).
- Returns:
true
if the query has been resolved, and
false
otherwise. Note, even if this
call returns true
, waitOnResolution
must still be called.
Copyright 2007-2010, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.