int readRawInt() { return _buffer.getInt(); }
@Override public Accepted readValue() { DecoderImpl decoder = getDecoder(); byte typeCode = decoder.getBuffer().get(); switch (typeCode) { case EncodingCodes.LIST0: break; case EncodingCodes.LIST8: decoder.getBuffer().get(); decoder.getBuffer().get(); break; case EncodingCodes.LIST32: decoder.getBuffer().getInt(); decoder.getBuffer().getInt(); break; default: throw new DecodeException("Incorrect type found in Accepted type encoding: " + typeCode); } return Accepted.getInstance(); }
@Override public Data readValue() { ReadableBuffer buffer = getDecoder().getBuffer(); byte encodingCode = buffer.get(); int size = 0; switch (encodingCode) { case EncodingCodes.VBIN8: size = buffer.get() & 0xFF; break; case EncodingCodes.VBIN32: size = buffer.getInt(); break; case EncodingCodes.NULL: return new Data(null); default: throw new ProtonException("Expected Binary type but found encoding: " + encodingCode); } if (size > buffer.remaining()) { throw new IllegalArgumentException("Binary data size " + size + " is specified to be greater than the " + "amount of data available ("+ buffer.remaining()+")"); } byte[] data = new byte[size]; buffer.get(data, 0, size); return new Data(new Binary(data)); }