getoperationimpl.java
来自「memcached JAVA客户端API,应用广泛,运行比较稳定。」· Java 代码 · 共 63 行
JAVA
63 行
package net.spy.memcached.protocol.binary;import java.util.Collection;import java.util.Collections;import net.spy.memcached.ops.GetOperation;import net.spy.memcached.ops.GetsOperation;import net.spy.memcached.ops.OperationStatus;class GetOperationImpl extends OperationImpl implements GetOperation, GetsOperation { static final int CMD=0; /** * Length of the extra header stuff for a GET response. */ static final int EXTRA_HDR_LEN=4; private final String key; public GetOperationImpl(String k, GetOperation.Callback cb) { super(CMD, generateOpaque(), cb); key=k; } public GetOperationImpl(String k, GetsOperation.Callback cb) { super(CMD, generateOpaque(), cb); key=k; } @Override public void initialize() { prepareBuffer(key, 0, EMPTY_BYTES); } @Override protected void decodePayload(byte[] pl) { final int flags=decodeInt(pl, 0); final byte[] data=new byte[pl.length - EXTRA_HDR_LEN]; System.arraycopy(pl, EXTRA_HDR_LEN, data, 0, pl.length-EXTRA_HDR_LEN); // Assume we're processing a get unless the cast fails. try { GetOperation.Callback cb=(GetOperation.Callback)getCallback(); cb.gotData(key, flags, data); } catch(ClassCastException e) { GetsOperation.Callback cb=(GetsOperation.Callback)getCallback(); cb.gotData(key, flags, responseCas, data); } getCallback().receivedStatus(STATUS_OK); } @Override protected OperationStatus getStatusForErrorCode(int errCode, byte[] errPl) { return errCode == ERR_NOT_FOUND ? NOT_FOUND_STATUS : null; } public Collection<String> getKeys() { return Collections.singleton(key); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?