package com.meidusa.amoeba.memcached.packet;
import com.meidusa.amoeba.net.packet.AbstractPacketBuffer;
public class AbstractMemcachedPacketBuffer extends AbstractPacketBuffer {
public AbstractMemcachedPacketBuffer(byte[] buf) {
super(buf);
}
public AbstractMemcachedPacketBuffer(int size) {
super(size);
}
public void writeShort(short value) {
ensureCapacity(2);
buffer[position++] = (byte) ((value >>> 8) & 0xff);
buffer[position++] = (byte) (value & 0xff);
}
public short readShort() {
byte[] b = this.buffer; // a little bit optimization
return (short)(((b[this.position++] & 0xff) << 8) | (b[this.position++] & 0xff));
}
public int readInt() {
byte[] b = this.buffer; // a little bit optimization
return ((b[this.position++] & 0xff) << 24) |((b[this.position++] & 0xff) << 16)
|((b[this.position++] & 0xff) << 8) | (b[this.position++] & 0xff);
}
public void writeInt(int value) {
ensureCapacity(4);
buffer[position++] = (byte) ((value >>> 24) & 0xff);
buffer[position++] = (byte) ((value >>> 16) & 0xff);
buffer[position++] = (byte) ((value >>> 8) & 0xff);
buffer[position++] = (byte) (value & 0xff);
}
public static void main(String[] args) {
System.out.println(Integer.toHexString(2147483647));
}
}