public static AMQPState getState(TLVList list) { AMQPState state = null; Byte byteCode = list.Constructor.getDescriptorCode().Value; StateCodes code = (StateCodes)byteCode; switch (code) { case StateCodes.ACCEPTED: state = new AMQPAccepted(); break; case StateCodes.MODIFIED: state = new AMQPModified(); break; case StateCodes.RECEIVED: state = new AMQPReceived(); break; case StateCodes.REJECTED: state = new AMQPRejected(); break; case StateCodes.RELEASED: state = new AMQPReleased(); break; default: throw new MalformedMessageException("Received header with unrecognized state code"); } return(state); }
public override void fillArguments(TLVList list) { int size = list.getList().Count; if (size < 2) { throw new MalformedMessageException("Received malformed Disposition header: role and first can't be null"); } if (size > 6) { throw new MalformedMessageException("Received malformed Disposition header. Invalid number of arguments: " + size); } if (size > 0) { TLVAmqp element = list.getList()[0]; if (element.isNull()) { throw new MalformedMessageException("Received malformed Disposition header: role can't be null"); } Boolean role = AMQPUnwrapper <AMQPSymbol> .unwrapBool(element); if (role) { _role = RoleCodes.RECEIVER; } else { _role = RoleCodes.SENDER; } } if (size > 1) { TLVAmqp element = list.getList()[1]; if (element.isNull()) { throw new MalformedMessageException("Received malformed Disposition header: first can't be null"); } _first = AMQPUnwrapper <AMQPSymbol> .unwrapUInt(element); } if (size > 2) { TLVAmqp element = list.getList()[2]; if (!element.isNull()) { _last = AMQPUnwrapper <AMQPSymbol> .unwrapUInt(element); } } if (size > 3) { TLVAmqp element = list.getList()[3]; if (!element.isNull()) { _settled = AMQPUnwrapper <AMQPSymbol> .unwrapBool(element); } } if (size > 4) { TLVAmqp element = list.getList()[4]; if (!element.isNull()) { AMQPType code = element.Code; if (code != AMQPType.LIST_0 && code != AMQPType.LIST_8 && code != AMQPType.LIST_32) { throw new MalformedMessageException("Expected type 'STATE' - received: " + element.Code); } _state = AMQPFactory.getState((TLVList)element); _state.fill((TLVList)element); } } if (size > 5) { TLVAmqp element = list.getList()[5]; if (!element.isNull()) { _batchable = AMQPUnwrapper <AMQPSymbol> .unwrapBool(element); } } }
public override void fillArguments(TLVList list) { int size = list.getList().Count; if (size == 0) { throw new MalformedMessageException("Received malformed Transfer header: handle can't be null"); } if (size > 11) { throw new MalformedMessageException("Received malformed Transfer header. Invalid number of arguments: " + size); } if (size > 0) { TLVAmqp element = list.getList()[0]; if (element.isNull()) { throw new MalformedMessageException("Received malformed Transfer header: handle can't be null"); } _handle = AMQPUnwrapper <SectionCodes> .unwrapUInt(element); } if (size > 1) { TLVAmqp element = list.getList()[1]; if (!element.isNull()) { _deliveryId = AMQPUnwrapper <SectionCodes> .unwrapUInt(element); } } if (size > 2) { TLVAmqp element = list.getList()[2]; if (!element.isNull()) { _deliveryTag = AMQPUnwrapper <SectionCodes> .unwrapBinary(element); } } if (size > 3) { TLVAmqp element = list.getList()[3]; if (!element.isNull()) { _messageFormat = new AMQPMessageFormat(AMQPUnwrapper <SectionCodes> .unwrapUInt(element)); } } if (size > 4) { TLVAmqp element = list.getList()[4]; if (!element.isNull()) { _settled = AMQPUnwrapper <SectionCodes> .unwrapBool(element); } } if (size > 5) { TLVAmqp element = list.getList()[5]; if (!element.isNull()) { _more = AMQPUnwrapper <SectionCodes> .unwrapBool(element); } } if (size > 6) { TLVAmqp element = list.getList()[6]; if (!element.isNull()) { _rcvSettleMode = (ReceiveCodes)(AMQPUnwrapper <SectionCodes> .unwrapUByte(element)); } } if (size > 7) { TLVAmqp element = list.getList()[7]; if (!element.isNull()) { AMQPType code = element.Code; if (code != AMQPType.LIST_0 && code != AMQPType.LIST_8 && code != AMQPType.LIST_32) { throw new MalformedMessageException("Expected type 'STATE' - received: " + element.Code); } _state = AMQPFactory.getState((TLVList)element); _state.fill((TLVList)element); } } if (size > 8) { TLVAmqp element = list.getList()[8]; if (!element.isNull()) { _resume = AMQPUnwrapper <SectionCodes> .unwrapBool(element); } } if (size > 9) { TLVAmqp element = list.getList()[9]; if (!element.isNull()) { _aborted = AMQPUnwrapper <SectionCodes> .unwrapBool(element); } } if (size > 10) { TLVAmqp element = list.getList()[10]; if (!element.isNull()) { _batchable = AMQPUnwrapper <SectionCodes> .unwrapBool(element); } } }