in proton-j/src/main/java/org/apache/qpid/proton/codec/messaging/FastPathHeaderType.java [59:108]
public Header readValue() {
DecoderImpl decoder = getDecoder();
ReadableBuffer buffer = decoder.getBuffer();
byte typeCode = decoder.getBuffer().get();
@SuppressWarnings("unused")
int size = 0;
int count = 0;
switch (typeCode) {
case EncodingCodes.LIST0:
break;
case EncodingCodes.LIST8:
size = buffer.get() & 0xff;
count = buffer.get() & 0xff;
break;
case EncodingCodes.LIST32:
size = buffer.getInt();
count = buffer.getInt();
break;
default:
throw new DecodeException("Incorrect type found in Header encoding: " + typeCode);
}
Header header = new Header();
for (int index = 0; index < count; ++index) {
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:
throw new IllegalStateException("To many entries in Header encoding");
}
}
return header;
}