class ConsumingWatcher extends SingletonQueryWatcher implements Transactable
| Modifier and Type | Field and Description |
|---|---|
private Set<EntryHandle> |
provisionallyRemovedEntrySet
Set of entries (represented by
EntryHolders) that
we would have liked to return, but have been provisionally
removed. |
private boolean |
takeIt
true if this query is a take and
false otherwise. |
private Txn |
txn
If non-null the transaction this query is
being performed under.
|
startOrdinalABORTED, ACTIVE, COMMITTED, NOTCHANGED, PREPARED, VOTING| Constructor and Description |
|---|
ConsumingWatcher(long expiration,
long timestamp,
long startOrdinal,
Set<EntryHandle> provisionallyRemovedEntrySet,
Txn txn,
boolean takeIt)
Create a new
ConsumingWatcher. |
| Modifier and Type | Method and Description |
|---|---|
void |
abort(TransactableMgr mgr,
OutriggerServerImpl space)
If a transaction ends in the middle of a query we want
to throw an exception to the client making the query
(not the
Txn calling us here.) |
(package private) boolean |
catchUp(EntryTransition transition,
long now)
Process a transition which was posted before the watcher was
placed in
TransitionWatchers object. |
void |
commit(TransactableMgr mgr,
OutriggerServerImpl space)
This should never happen since we always return
NOTCHANGED from prepare. |
(package private) boolean |
isInterested(EntryTransition transition,
long ordinal)
Return
true if this watcher cares about a given
visibility transition. |
int |
prepare(TransactableMgr mgr,
OutriggerServerImpl space)
If a transaction ends in the middle of a query we want
to throw an exception to the client making the query
not the
Txn calling us here.) |
(package private) void |
process(EntryTransition transition,
long now)
Process the given transition.
|
addTemplateHandle, getServer, isResolved, resolve, resolvedWithEntry, resolvedWithThrowable, waitOnResolutiongetExpiration, removeIfExpiredcompareToprivate final Txn txn
null
this query is not associated with a transaction.private final boolean takeIt
true if this query is a take and
false otherwise.private final Set<EntryHandle> provisionallyRemovedEntrySet
EntryHolders) that
we would have liked to return, but have been provisionally
removed.ConsumingWatcher(long expiration,
long timestamp,
long startOrdinal,
Set<EntryHandle> provisionallyRemovedEntrySet,
Txn txn,
boolean takeIt)
ConsumingWatcher.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.provisionallyRemovedEntrySet - If the watcher encounters
an entry that can not be read/taken because it has been
provisionally removed then its handle will be placed in
this WeakHashMap as a key (with null as the
value). May be null in which case
provisionally removed entries will not be
recorded. Ensures that object is only accessed by one
thread at a timetxn - If the query is being performed under
a transaction the Txn object
associated with that transaction.takeIt - true if this query is a take and
false otherwise.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.void process(EntryTransition transition, long now)
TransitionWatcherTemplateHandle 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.process 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.now - An estimate of the current time (not the time
when the event occured).boolean catchUp(EntryTransition transition, long now)
QueryWatcherTransitionWatchers 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.catchUp in class QueryWatchertransition - 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).true if the query has been resolved, and
false otherwise. Note, even if this
call returns true, waitOnResolution
must still be called.public int prepare(TransactableMgr mgr, OutriggerServerImpl space)
Txn calling us here.)prepare in interface Transactablepublic void commit(TransactableMgr mgr, OutriggerServerImpl space)
NOTCHANGED from prepare.commit in interface Transactablepublic void abort(TransactableMgr mgr, OutriggerServerImpl space)
Txn calling us here.)abort in interface TransactableCopyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.