Class OperationImpl
java.lang.Object
net.spy.memcached.compat.SpyObject
net.spy.memcached.protocol.BaseOperationImpl
net.spy.memcached.protocol.binary.OperationImpl
- All Implemented Interfaces:
Operation
- Direct Known Subclasses:
GetAndTouchOperationImpl,GetlOperationImpl,GetsOperationImpl,KeyStatsOperationImpl,MultiGetOperationImpl,OptimizedSetImpl,ReplicaGetOperationImpl,ReplicaGetsOperationImpl,SASLBaseOperationImpl,StatsOperationImpl,TapOperationImpl,TouchOperationImpl
Base class for binary operations.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final byteprotected static final byte[]protected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected static final intprotected intprotected intprotected static final intprotected final intprotected static final byteprotected static final byteprotected longprotected byteprotected intprotected static final OperationStatusprotected static final intError code for operations.protected shortFields inherited from class net.spy.memcached.protocol.BaseOperationImpl
callback, CANCELLED, notMyVbucketNodes, TIMED_OUT -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedOperationImpl(byte c, int o, OperationCallback cb) Construct with opaque. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddecodePayload(byte[] pl) Decode the given payload for this command.protected voidfinishedPayload(byte[] pl) byte[]Returns the raw bytes of the error message content.protected OperationStatusgetStatusForErrorCode(int errCode, byte[] errPl) Get the OperationStatus object for the given error code.protected booleanValidate an opaque value from the header.protected voidprepareBuffer(String key, long cas, byte[] val, Object... extraHeaders) Prepare the buffer for sending.voidreadFromBuffer(ByteBuffer buffer) Read from the incomingByteBuffer.protected voidtoString()Methods inherited from class net.spy.memcached.protocol.BaseOperationImpl
addClone, cancel, getBuffer, getCallback, getCloneCount, getException, getHandlingNode, getState, getWriteCompleteTimestamp, handleError, handleRead, hasErrored, initialize, isCancelled, isTimedOut, isTimedOut, isTimedOutUnsent, setBuffer, setCallback, setCloneCount, setHandlingNode, timeOut, transitionState, wasCancelled, writeComplete, writingMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface net.spy.memcached.ops.Operation
addClone, cancel, getBuffer, getCallback, getCloneCount, getException, getHandlingNode, getState, getWriteCompleteTimestamp, handleRead, hasErrored, initialize, isCancelled, isTimedOut, isTimedOut, isTimedOutUnsent, setCloneCount, setHandlingNode, timeOut, writeComplete, writing
-
Field Details
-
REQ_MAGIC
protected static final byte REQ_MAGIC- See Also:
-
RES_MAGIC
protected static final byte RES_MAGIC- See Also:
-
DUMMY_OPCODE
protected static final byte DUMMY_OPCODE- See Also:
-
MIN_RECV_PACKET
protected static final int MIN_RECV_PACKET- See Also:
-
SUCCESS
protected static final int SUCCESSError code for operations.- See Also:
-
ERR_NOT_FOUND
protected static final int ERR_NOT_FOUND- See Also:
-
ERR_EXISTS
protected static final int ERR_EXISTS- See Also:
-
ERR_2BIG
protected static final int ERR_2BIG- See Also:
-
ERR_INVAL
protected static final int ERR_INVAL- See Also:
-
ERR_NOT_STORED
protected static final int ERR_NOT_STORED- See Also:
-
ERR_DELTA_BADVAL
protected static final int ERR_DELTA_BADVAL- See Also:
-
ERR_NOT_MY_VBUCKET
protected static final int ERR_NOT_MY_VBUCKET- See Also:
-
ERR_UNKNOWN_COMMAND
protected static final int ERR_UNKNOWN_COMMAND- See Also:
-
ERR_NO_MEM
protected static final int ERR_NO_MEM- See Also:
-
ERR_NOT_SUPPORTED
protected static final int ERR_NOT_SUPPORTED- See Also:
-
ERR_INTERNAL
protected static final int ERR_INTERNAL- See Also:
-
ERR_BUSY
protected static final int ERR_BUSY- See Also:
-
ERR_TEMP_FAIL
protected static final int ERR_TEMP_FAIL- See Also:
-
EMPTY_BYTES
protected static final byte[] EMPTY_BYTES -
STATUS_OK
-
vbucket
protected short vbucket -
opaque
protected final int opaque -
keyLen
protected int keyLen -
responseCmd
protected byte responseCmd -
errorCode
protected int errorCode -
responseOpaque
protected int responseOpaque -
responseCas
protected long responseCas
-
-
Constructor Details
-
OperationImpl
Construct with opaque.- Parameters:
o- the opaque value.cb-
-
-
Method Details
-
resetInput
protected void resetInput() -
readFromBuffer
Read from the incomingByteBuffer. Reading from the buffer is done in stages, depending on how much data can be read at once. First, the header is read and then parsed (24 bytes, indicated byMIN_RECV_PACKET). Then, the payload is read (if one is available for this operation and can be loaded fully).- Specified by:
readFromBufferin interfaceOperation- Specified by:
readFromBufferin classBaseOperationImpl- Parameters:
buffer- the buffer to read from.- Throws:
IOException- if an error happened during parsing/reading.
-
finishedPayload
- Throws:
IOException
-
getStatusForErrorCode
Get the OperationStatus object for the given error code.- Parameters:
errCode- the error code- Returns:
- the status to return, or null if this is an exceptional case
- Throws:
IOException
-
decodePayload
protected void decodePayload(byte[] pl) Decode the given payload for this command.- Parameters:
pl- the payload.
-
opaqueIsValid
protected boolean opaqueIsValid()Validate an opaque value from the header. This may be overridden from a subclass where the opaque isn't expected to always be the same as the request opaque. -
prepareBuffer
Prepare the buffer for sending.- Parameters:
key- the key (for keyed ops).cas- the cas value.val- the data payload.extraHeaders- any additional headers that need to be sent.
-
toString
-
getErrorMsg
public byte[] getErrorMsg()Description copied from interface:OperationReturns the raw bytes of the error message content.- Specified by:
getErrorMsgin interfaceOperation- Returns:
- the raw error message content.
-