Class ReadWriteBackingMap.ReadLatch
- Enclosing class:
ReadWriteBackingMap
The refresh-ahead thread places a new ReadLatch in the control
map before performing a load operation on the cache store. The presence of
the latch signals to a thread executing the ReadWriteBackingMap.get(java.lang.Object)
method that an asynchronous load is in progress. This thread can then
wait on the latch to get the results of the asynchronous load. This thread
is then responsible for removing the latch from the control map.
Additionally, a thread performing a ReadWriteBackingMap.put(java.lang.Object, java.lang.Object)
or
ReadWriteBackingMap.remove(java.lang.Object)
operation can cancel an ongoing
asynchronous load using the latch. This thread is also responsible for
removing the latch from the control map.
- Author:
- jh 2005.02.11
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
cancel()
Cancel the load operation.void
Cancel the load operation due to an exception.void
Complete the load operation.getKey()
Return the key that is being loaded by the refresh-ahead thread.getValue()
Return the result of the load operation.boolean
Return true if the load operation has been canceled.boolean
Return true if the load operation is complete.
-
Constructor Details
-
ReadLatch
Create a new ReadLatch for the specified key.- Parameters:
oKey
- the key that is being loaded by the refresh-ahead thread
-
-
Method Details
-
cancel
public void cancel()Cancel the load operation. This method has no effect if the operation has already been completed or canceled. -
cancel
Cancel the load operation due to an exception. This method has no effect if the operation has already been completed or canceled.- Parameters:
t
- the exception responsible for cancelling the load
-
complete
Complete the load operation. The specified value and entry is the result of the load operation. This method has no effect if the operation has already been completed or canceled.- Parameters:
oValue
- the result of the load operation
-
isComplete
public boolean isComplete()Return true if the load operation is complete. The results of the load operation can be retrieved using thegetValue()
method.- Returns:
- true if the load operation is complete
-
isCanceled
public boolean isCanceled()Return true if the load operation has been canceled.- Returns:
- true if the load operation has been canceled
-
getKey
Return the key that is being loaded by the refresh-ahead thread.- Returns:
- the key that is being loaded
-
getValue
Return the result of the load operation.Note: this method should not be called by the refresh-ahead daemon thread
- Returns:
- the result of the load operation
-