protected long parseLong(EzyByteBuffer buffer, int size)
 {
     buffer.get();
     return(buffer.getLong(size));
 }
 protected EzyObject parseMap32(EzyByteBuffer buffer)
 {
     return(parseMap(buffer, getMapSize(buffer, 5)));
 }
 protected String parseStr32(EzyByteBuffer buffer)
 {
     return(parseString(buffer, 5));
 }
 protected Object parseTrue(EzyByteBuffer buffer)
 {
     return(parseValue(buffer, true));
 }
 protected Object parseNil(EzyByteBuffer buffer)
 {
     return(parseValue(buffer, null));
 }
 public override bool handle(EzyByteBuffer input, Queue <EzyMessage> queue)
 {
     return(messageReader.readSize(input, maxSize));
 }
 protected int getBinLength(EzyByteBuffer buffer, int size)
 {
     buffer.get();
     return(buffer.getInt(size));
 }
 protected void updateBufferPosition(EzyByteBuffer buffer, int offset)
 {
     buffer.position(buffer.position() + offset);
 }
 public int deserialize(EzyByteBuffer buffer, int nbytes)
 {
     return(nbytes == 1
                                 ? getFix(buffer)
                                 : getOther(buffer, nbytes));
 }
 protected int parseArraySize(EzyByteBuffer buffer, int nbytes)
 {
     return(arraySizeDeserializer.deserialize(buffer, nbytes));
 }
 protected void updateBufferPosition(EzyByteBuffer buffer)
 {
     updateBufferPosition(buffer, -1);
 }
 protected EzyArray parseArray32(EzyByteBuffer buffer)
 {
     return(parseArray(buffer, parseArraySize(buffer, 5)));
 }
        public T deserialize <T>(MemoryStream stream)
        {
            Object answer = deserialize(EzyByteBuffer.wrap(stream));

            return((T)answer);
        }
 protected EzyArray parseFixArray(EzyByteBuffer buffer)
 {
     return(parseArray(buffer, parseArraySize(buffer, 1)));
 }
 public abstract bool handle(EzyByteBuffer input, Queue <EzyMessage> output);
 protected abstract int getFix(EzyByteBuffer buffer);
 public override bool handle(EzyByteBuffer input, Queue <EzyMessage> queue)
 {
     messageReader.clear();
     return(true);
 }
 protected int getOther(EzyByteBuffer buffer, int nbytes)
 {
     buffer.get();
     return(buffer.getUInt(nbytes - 1));
 }
 protected Object parseBin8(EzyByteBuffer buffer)
 {
     return(parseBin(buffer, getBinLength(buffer, 1)));
 }
 public Object deserialize(EzyByteBuffer buffer)
 {
     return(deserialize(buffer, buffer.get() & 0xff));
 }
 protected Object parseBin(EzyByteBuffer buffer, int length)
 {
     return(buffer.getBytes(length));
 }
 protected override int getFix(EzyByteBuffer buffer)
 {
     return(buffer.get() & 0xF);
 }
 protected Object parseFalse(EzyByteBuffer buffer)
 {
     return(parseValue(buffer, false));
 }
 protected Object parseFloat32(EzyByteBuffer buffer)
 {
     buffer.get();
     return(buffer.getFloat());
 }
 protected Object parseValue(EzyByteBuffer buffer, Object value)
 {
     buffer.get();
     return(value);
 }
 protected Object parseFloat64(EzyByteBuffer buffer)
 {
     buffer.get();
     return(buffer.getDouble());
 }
 protected int getMapSize(EzyByteBuffer buffer, int nbytes)
 {
     return(mapSizeDeserializer.deserialize(buffer, nbytes));
 }
 public void decode(EzyByteBuffer bytes, Queue <EzyMessage> queue)
 {
     handlers.handle(bytes, queue);
 }
 protected String parseStr16(EzyByteBuffer buffer)
 {
     return(parseString(buffer, 3));
 }
 protected int parseInt(EzyByteBuffer buffer, int size)
 {
     return((int)parseLong(buffer, size));
 }