com.sun.jini.outrigger
Class ReadWatcher

java.lang.Object
  extended by com.sun.jini.outrigger.TransitionWatcher
      extended by com.sun.jini.outrigger.QueryWatcher
          extended by com.sun.jini.outrigger.SingletonQueryWatcher
              extended by 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).


Field Summary
 
Fields inherited from class com.sun.jini.outrigger.TransitionWatcher
startOrdinal
 
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 com.sun.jini.outrigger.SingletonQueryWatcher
addTemplateHandle, getServer, isResolved, resolve, resolvedWithEntry, resolvedWithThrowable, waitOnResolution
 
Methods inherited from class com.sun.jini.outrigger.QueryWatcher
getExpiration, removeIfExpired
 
Methods inherited from class com.sun.jini.outrigger.TransitionWatcher
compareTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

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 TransitionWatchers.
startOrdinal - the highest ordinal associated with operations that are considered to have occurred before the operation associated with this watcher.
Method Detail

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.