net.spy.memcached.protocol.binary
Class OptimizedSetImpl

java.lang.Object
  extended by net.spy.memcached.compat.SpyObject
      extended by net.spy.memcached.protocol.BaseOperationImpl
          extended by net.spy.memcached.protocol.binary.OptimizedSetImpl
All Implemented Interfaces:
Operation

public class OptimizedSetImpl
extends BaseOperationImpl
implements Operation


Field Summary
protected static byte[] EMPTY_BYTES
           
protected static int ERR_EINVAL
           
protected static int ERR_EXISTS
           
protected static int ERR_NOT_FOUND
          Error code for items that were not found.
protected static int ERR_NOT_STORED
           
protected  int errorCode
           
protected static OperationStatus EXISTS_STATUS
           
protected  int keyLen
           
protected static int MIN_RECV_PACKET
           
protected static OperationStatus NOT_FOUND_STATUS
           
protected static OperationStatus NOT_STORED_STATUS
           
protected  int opaque
           
protected static byte REQ_MAGIC
           
protected static byte RES_MAGIC
           
protected  long responseCas
           
protected  int responseCmd
           
protected  int responseOpaque
           
protected static OperationStatus STATUS_OK
           
 
Fields inherited from class net.spy.memcached.protocol.BaseOperationImpl
callback, CANCELLED
 
Constructor Summary
OptimizedSetImpl(CASOperation firstStore)
          Construct an optimized get starting with the given get operation.
 
Method Summary
 void addOperation(CASOperation op)
           
 int bytes()
           
protected  void decodePayload(byte[] pl)
          Decode the given payload for this command.
protected  void finishedPayload(byte[] pl)
           
protected  OperationStatus getStatusForErrorCode(int errCode, byte[] errPl)
          Get the OperationStatus object for the given error code.
 void initialize()
          Initialize this operation.
protected  boolean opaqueIsValid()
          Validate an opaque value from the header.
protected  void prepareBuffer(String key, long cas, byte[] val, Object... extraHeaders)
          Prepare a send buffer.
 void readFromBuffer(ByteBuffer b)
           
protected  void resetInput()
           
 int size()
           
 
Methods inherited from class net.spy.memcached.protocol.BaseOperationImpl
cancel, getBuffer, getCallback, getException, getHandlingNode, getState, handleError, handleRead, hasErrored, isCancelled, setBuffer, setCallback, setHandlingNode, transitionState, wasCancelled, writeComplete
 
Methods inherited from class net.spy.memcached.compat.SpyObject
getLogger
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.spy.memcached.ops.Operation
cancel, getBuffer, getCallback, getException, getHandlingNode, getState, handleRead, hasErrored, isCancelled, readFromBuffer, setHandlingNode, writeComplete
 

Field Detail

REQ_MAGIC

protected static final byte REQ_MAGIC
See Also:
Constant Field Values

RES_MAGIC

protected static final byte RES_MAGIC
See Also:
Constant Field Values

MIN_RECV_PACKET

protected static final int MIN_RECV_PACKET
See Also:
Constant Field Values

ERR_NOT_FOUND

protected static final int ERR_NOT_FOUND
Error code for items that were not found.

See Also:
Constant Field Values

ERR_EXISTS

protected static final int ERR_EXISTS
See Also:
Constant Field Values

ERR_EINVAL

protected static final int ERR_EINVAL
See Also:
Constant Field Values

ERR_NOT_STORED

protected static final int ERR_NOT_STORED
See Also:
Constant Field Values

NOT_FOUND_STATUS

protected static final OperationStatus NOT_FOUND_STATUS

EXISTS_STATUS

protected static final OperationStatus EXISTS_STATUS

NOT_STORED_STATUS

protected static final OperationStatus NOT_STORED_STATUS

EMPTY_BYTES

protected static final byte[] EMPTY_BYTES

STATUS_OK

protected static final OperationStatus STATUS_OK

opaque

protected final int opaque

keyLen

protected int keyLen

responseCmd

protected int responseCmd

errorCode

protected int errorCode

responseOpaque

protected int responseOpaque

responseCas

protected long responseCas
Constructor Detail

OptimizedSetImpl

public OptimizedSetImpl(CASOperation firstStore)
Construct an optimized get starting with the given get operation.

Method Detail

addOperation

public void addOperation(CASOperation op)

size

public int size()

bytes

public int bytes()

initialize

public void initialize()
Description copied from interface: Operation
Initialize this operation. This is used to prepare output byte buffers and stuff.

Specified by:
initialize in interface Operation
Specified by:
initialize in class BaseOperationImpl

finishedPayload

protected void finishedPayload(byte[] pl)
                        throws IOException
Throws:
IOException

getStatusForErrorCode

protected OperationStatus getStatusForErrorCode(int errCode,
                                                byte[] errPl)
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

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.


resetInput

protected void resetInput()

readFromBuffer

public void readFromBuffer(ByteBuffer b)
                    throws IOException
Specified by:
readFromBuffer in class BaseOperationImpl
Throws:
IOException

decodePayload

protected void decodePayload(byte[] pl)
Decode the given payload for this command.

Parameters:
pl - the payload.

prepareBuffer

protected void prepareBuffer(String key,
                             long cas,
                             byte[] val,
                             Object... extraHeaders)
Prepare a send buffer.

Parameters:
key - the key (for keyed ops)
cas - the cas value
val - the data payload
extraHeaders - any additional headers that need to be sent