public Object readObject(final Object defaultValue) { Object val = readObject(); return val == null ? defaultValue : val; }
@Override public Binary readBinary() { return readBinary(null); }
@Override public Boolean readBoolean() { return readBoolean(null); }
@Override public Properties readValue() { DecoderImpl decoder = getDecoder(); ReadableBuffer buffer = decoder.getBuffer(); byte typeCode = decoder.getBuffer().get(); switch (index) { case 0: properties.setMessageId(decoder.readObject()); break; case 1: properties.setUserId(decoder.readBinary(null)); break; case 2: properties.setTo(decoder.readString(null)); break; case 3: properties.setSubject(decoder.readString(null)); break; case 4: properties.setReplyTo(decoder.readString(null)); break; case 5: properties.setCorrelationId(decoder.readObject()); break; case 6: properties.setContentType(decoder.readSymbol(null)); break; case 7: properties.setContentEncoding(decoder.readSymbol(null));
@Override public Transfer readValue() { DecoderImpl decoder = getDecoder(); byte typeCode = decoder.getBuffer().get(); size = ((int)decoder.getBuffer().get()) & 0xff; count = ((int)decoder.getBuffer().get()) & 0xff; break; case EncodingCodes.LIST32: size = decoder.getBuffer().getInt(); count = decoder.getBuffer().getInt(); break; default: switch (index) { case 0: transfer.setHandle(decoder.readUnsignedInteger(null)); break; case 1: transfer.setDeliveryId(decoder.readUnsignedInteger(null)); break; case 2: transfer.setDeliveryTag(decoder.readBinary(null)); break; case 3: transfer.setMessageFormat(decoder.readUnsignedInteger(null)); break; case 4: transfer.setSettled(decoder.readBoolean(null)); break;
/** * Given an encoded AMQP Section, decode the value previously written there. * * @param encoded * the AMQP Section value to decode. * * @return a Section object read from its encoded form. */ public static Section decode(ByteBuf encoded) { if (encoded == null || !encoded.isReadable()) { return null; } DecoderImpl decoder = TLS_CODEC.get().decoder; decoder.setByteBuffer(encoded.nioBuffer()); Section result = (Section) decoder.readObject(); decoder.setByteBuffer(null); encoded.resetReaderIndex(); return result; }
public List readValue() { DecoderImpl decoder = getDecoder(); int size = ((int)decoder.readRawByte()) & 0xff; // todo - limit the decoder with size int count = ((int)decoder.readRawByte()) & 0xff; List list = new ArrayList(count); for(int i = 0; i < count; i++) { list.add(decoder.readObject()); } return list; }
decoder.setBuffer(messageBytes); section = (Section) decoder.readObject(); decoder.setByteBuffer(null);
@Override public int decode(byte[] data, int offset, int length) DecoderImpl decoder = new DecoderImpl(); EncoderImpl encoder = new EncoderImpl(decoder); decoder.setByteBuffer(buffer); section = (Section) decoder.readObject(); if(buffer.hasRemaining()) section = (Section) decoder.readObject(); section = (Section) decoder.readObject(); section = (Section) decoder.readObject(); section = (Section) decoder.readObject(); section = (Section) decoder.readObject(); section = (Section) decoder.readObject();
@Override public Disposition readValue() { DecoderImpl decoder = getDecoder(); byte typeCode = decoder.getBuffer().get(); size = ((int)decoder.getBuffer().get()) & 0xff; count = ((int)decoder.getBuffer().get()) & 0xff; break; case EncodingCodes.LIST32: size = decoder.getBuffer().getInt(); count = decoder.getBuffer().getInt(); break; default: switch (index) { case 0: disposition.setRole(Boolean.TRUE.equals(decoder.readBoolean()) ? Role.RECEIVER : Role.SENDER); break; case 1: disposition.setFirst(decoder.readUnsignedInteger(null)); break; case 2: disposition.setLast(decoder.readUnsignedInteger(null)); break; case 3: disposition.setSettled(decoder.readBoolean(false)); break; case 4: disposition.setState((DeliveryState) decoder.readObject()); break;
public List readValue() { DecoderImpl decoder = getDecoder(); int size = decoder.readRawInt(); // todo - limit the decoder with size int count = decoder.readRawInt(); List list = new ArrayList(count); for(int i = 0; i < count; i++) { list.add(decoder.readObject()); } return list; }
private static Object[] decodeArray(final DecoderImpl decoder, final int count) { TypeConstructor constructor = decoder.readConstructor(true); return decodeNonPrimitive(decoder, constructor, count); }
private synchronized void partialDecode(ReadableBuffer buffer) { DecoderImpl decoder = TLSEncode.getDecoder(); decoder.setBuffer(buffer.rewind()); while (buffer.hasRemaining()) { int constructorPos = buffer.position(); TypeConstructor<?> constructor = decoder.readConstructor(); if (Header.class.equals(constructor.getTypeClass())) { _header = (Header) constructor.readValue(); constructor = decoder.peekConstructor(); if (ApplicationProperties.class.equals(constructor.getTypeClass())) { appLocation = buffer.position(); decoder.setByteBuffer(null); buffer.position(0);
@Override public Header readValue() { DecoderImpl decoder = getDecoder(); ReadableBuffer buffer = decoder.getBuffer(); byte typeCode = decoder.getBuffer().get(); switch (index) { case 0: header.setDurable(decoder.readBoolean(null)); break; case 1: header.setPriority(decoder.readUnsignedByte(null)); break; case 2: header.setTtl(decoder.readUnsignedInteger(null)); break; case 3: header.setFirstAcquirer(decoder.readBoolean(null)); break; case 4: header.setDeliveryCount(decoder.readUnsignedInteger(null)); break; default:
@Override public Flow readValue() { DecoderImpl decoder = getDecoder(); byte typeCode = decoder.getBuffer().get(); size = ((int)decoder.getBuffer().get()) & 0xff; count = ((int)decoder.getBuffer().get()) & 0xff; break; case EncodingCodes.LIST32: size = decoder.getBuffer().getInt(); count = decoder.getBuffer().getInt(); break; default: switch (index) { case 0: flow.setNextIncomingId(decoder.readUnsignedInteger(null)); break; case 1: flow.setIncomingWindow(decoder.readUnsignedInteger(null)); break; case 2: flow.setNextOutgoingId(decoder.readUnsignedInteger(null)); break; case 3: flow.setOutgoingWindow(decoder.readUnsignedInteger(null)); break; case 4: flow.setHandle(decoder.readUnsignedInteger(null)); break;
private synchronized void scanMessageData() { DecoderImpl decoder = TLSEncode.getDecoder(); decoder.setBuffer(data.rewind()); while (data.hasRemaining()) { int constructorPos = data.position(); TypeConstructor<?> constructor = decoder.readConstructor(); if (Header.class.equals(constructor.getTypeClass())) { header = (Header) constructor.readValue(); decoder.setByteBuffer(null); data.rewind();
private DeliveryAnnotations getDeliveryAnnotations() { parseHeaders(); if (_deliveryAnnotations == null && deliveryAnnotationsPosition >= 0) { ReadableBuffer buffer = data.duplicate(); buffer.position(deliveryAnnotationsPosition); TLSEncode.getDecoder().setBuffer(buffer); Object section = TLSEncode.getDecoder().readObject(); _deliveryAnnotations = (DeliveryAnnotations) section; deliveryAnnotationsPosition = -1; TLSEncode.getDecoder().setBuffer(null); } return _deliveryAnnotations; }
TestDecoder(byte[] data) { decoder = new DecoderImpl(); encoder = new EncoderImpl(decoder); AMQPDefinedTypes.registerAllTypes(decoder, encoder); buffer = ByteBuffer.allocate(data.length); buffer.put(data); buffer.rewind(); decoder.setByteBuffer(buffer); }
@Override public Decimal32 readDecimal32() { return readDecimal32(null); }
@Override public Character readCharacter() { return readCharacter(null); }