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 + -
显示快捷键?