package com.taobao.tair.extend.packet.zet.request; import com.taobao.tair.comm.Transcoder; import com.taobao.tair.etc.TairConstant; import com.taobao.tair.helper.BytesHelper; import com.taobao.tair.packet.BasePacket; public class RequestZCountPacket extends BasePacket { private final static int HEADER_LEN = 1 + 2 + 4 + 8 + 8; private short namespace = 0; private Object key = null; private double start = 0; private double end = 0; public RequestZCountPacket(Transcoder transcoder) { super(transcoder); pcode = TairConstant.TAIR_REQ_ZCOUNT_PACKET; } public int encode() { byte[] keybytes = null; if (key == null) { return TairConstant.SERIALIZEERROR; } try { keybytes = transcoder.encode(key); } catch (Throwable e) { return TairConstant.SERIALIZEERROR; } if (keybytes == null) { return TairConstant.SERIALIZEERROR; } if(keybytes.length >= TairConstant.TAIR_KEY_MAX_LENTH) { return TairConstant.KEYTOLARGE; } writePacketBegin(HEADER_LEN + keybytes.length); byteBuffer.put((byte)0); byteBuffer.putShort(namespace); byteBuffer.put(BytesHelper.DoubleToBytes_With_Little_Endian(start)); byteBuffer.put(BytesHelper.DoubleToBytes_With_Little_Endian(end)); byteBuffer.putInt(keybytes.length); byteBuffer.put(keybytes); writePacketEnd(); return 0; } public RequestZCountPacket() { super(); pcode = TairConstant.TAIR_REQ_ZCOUNT_PACKET; } public boolean decode() { throw new UnsupportedOperationException(); } public void setNamespace(short namespace) { this.namespace = namespace; } public short getNamespace() { return this.namespace; } public void setKey(Object key) { this.key = key; } public Object getKey() { return this.key; } public void setStartScore(double start) { this.start = start; } public double getStartScore() { return this.start; } public void setEndScore(double end) { this.end = end; } public double getEndScore() { return this.end; } }