Package net.spy.memcached.protocol
Class BaseOperationImpl
java.lang.Object
net.spy.memcached.compat.SpyObject
net.spy.memcached.protocol.BaseOperationImpl
- All Implemented Interfaces:
Operation
- Direct Known Subclasses:
BaseGetOpImpl,ConcatenationOperationImpl,OperationImpl,RefreshCertOperationImpl
Base class for protocol-specific operation implementations.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected OperationCallbackstatic final OperationStatusStatus object for canceled operations.protected Collection<MemcachedNode> static final OperationStatus -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd the clone from this operation.final voidcancel()Cancel this operation.final ByteBufferGet the write buffer for this operation.final OperationCallbackGet the operation callback associated with this operation.intReturns the number of times this operation has been cloned.final OperationExceptionGet the exception that occurred (or null if no exception occurred).Get the node that should've been handling this operation.final OperationStategetState()Get the current state of this operation.longReturns the timestamp from the point where the WRITE was completed.protected voidhandleError(OperationErrorType eType, String line) voidhandleRead(ByteBuffer data) Handle a raw data read.final booleanTrue if an error occurred while processing this operation.abstract voidInitialize this operation.final booleanHas this operation been cancelled?booleanTrue if the operation has timed out.booleanisTimedOut(long ttlMillis) True if the operation has timed out.booleanTrue if the operation has timed out and has not been sent.abstract voidreadFromBuffer(ByteBuffer data) Read data from the given byte buffer and dispatch to the appropriate read mechanism.protected final voidsetBuffer(ByteBuffer to) Set the write buffer for this operation.protected voidSet the callback for this instance.voidsetCloneCount(int count) Sets the clone count for this operation.voidSet a reference to the node that will be/is handling this operation.voidtimeOut()Mark this operation as one which has exceeded its timeout value.protected final voidtransitionState(OperationState newState) Transition the state of this operation to the given state.protected voidThis is called on each subclass whenever an operation was cancelled.final voidInvoked after having written all of the bytes from the supplied output buffer.final voidwriting()Invoked when we start writing all of the bytes from this operation to the sockets write buffer.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.spy.memcached.ops.Operation
getErrorMsg
-
Field Details
-
CANCELLED
Status object for canceled operations. -
TIMED_OUT
-
callback
-
notMyVbucketNodes
-
-
Constructor Details
-
BaseOperationImpl
public BaseOperationImpl()
-
-
Method Details
-
getCallback
Get the operation callback associated with this operation.- Specified by:
getCallbackin interfaceOperation
-
setCallback
Set the callback for this instance. -
isCancelled
public final boolean isCancelled()Description copied from interface:OperationHas this operation been cancelled?- Specified by:
isCancelledin interfaceOperation
-
hasErrored
public final boolean hasErrored()Description copied from interface:OperationTrue if an error occurred while processing this operation.- Specified by:
hasErroredin interfaceOperation
-
getException
Description copied from interface:OperationGet the exception that occurred (or null if no exception occurred).- Specified by:
getExceptionin interfaceOperation
-
cancel
public final void cancel()Description copied from interface:OperationCancel this operation. -
wasCancelled
protected void wasCancelled()This is called on each subclass whenever an operation was cancelled. -
getState
Description copied from interface:OperationGet the current state of this operation. -
getBuffer
Description copied from interface:OperationGet the write buffer for this operation. -
setBuffer
Set the write buffer for this operation. -
transitionState
Transition the state of this operation to the given state. -
writing
public final void writing()Description copied from interface:OperationInvoked when we start writing all of the bytes from this operation to the sockets write buffer. -
writeComplete
public final void writeComplete()Description copied from interface:OperationInvoked after having written all of the bytes from the supplied output buffer.- Specified by:
writeCompletein interfaceOperation
-
initialize
public abstract void initialize()Description copied from interface:OperationInitialize this operation. This is used to prepare output byte buffers and stuff.- Specified by:
initializein interfaceOperation
-
readFromBuffer
Description copied from interface:OperationRead data from the given byte buffer and dispatch to the appropriate read mechanism.- Specified by:
readFromBufferin interfaceOperation- Throws:
IOException
-
handleError
- Throws:
IOException
-
handleRead
Description copied from interface:OperationHandle a raw data read.- Specified by:
handleReadin interfaceOperation
-
getHandlingNode
Description copied from interface:OperationGet the node that should've been handling this operation.- Specified by:
getHandlingNodein interfaceOperation
-
setHandlingNode
Description copied from interface:OperationSet a reference to the node that will be/is handling this operation.- Specified by:
setHandlingNodein interfaceOperation- Parameters:
to- a memcached node
-
timeOut
public void timeOut()Description copied from interface:OperationMark this operation as one which has exceeded its timeout value. -
isTimedOut
public boolean isTimedOut()Description copied from interface:OperationTrue if the operation has timed out.A timed out operation may or may not have been sent to the server already, but it exceeded either the specified or the default timeout value.
- Specified by:
isTimedOutin interfaceOperation
-
isTimedOut
public boolean isTimedOut(long ttlMillis) Description copied from interface:OperationTrue if the operation has timed out. The ttl allows the caller to specify how long the operation should have been given since its creation, returning true if the operation has exceeded that time period.A timed out operation may or may not have been sent to the server already, but it exceeded either the specified or the default timeout value.
In the rare case this may be called with a longer timeout value after having been called with a shorter value that caused the operation to be timed out, an IllegalArgumentException may be thrown.
- Specified by:
isTimedOutin interfaceOperation- Parameters:
ttlMillis- the max amount of time an operation may have existed since its creation in milliseconds.
-
isTimedOutUnsent
public boolean isTimedOutUnsent()Description copied from interface:OperationTrue if the operation has timed out and has not been sent. If the client has timed out this operation and knows it has not been written to the network, this will be true.- Specified by:
isTimedOutUnsentin interfaceOperation
-
getWriteCompleteTimestamp
public long getWriteCompleteTimestamp()Description copied from interface:OperationReturns the timestamp from the point where the WRITE was completed. This can be used to calculate the roundtrip time of the operation.- Specified by:
getWriteCompleteTimestampin interfaceOperation
-
addClone
Description copied from interface:OperationAdd the clone from this operation. -
getCloneCount
public int getCloneCount()Description copied from interface:OperationReturns the number of times this operation has been cloned.- Specified by:
getCloneCountin interfaceOperation- Returns:
- the number of clones.
-
setCloneCount
public void setCloneCount(int count) Description copied from interface:OperationSets the clone count for this operation.- Specified by:
setCloneCountin interfaceOperation
-