Ejemplo n.º 1
0
        public override void fillArguments(TLVList list)
        {
            int size = list.getList().Count;

            if (size == 0)
            {
                throw new MalformedMessageException("Received malformed Detach header: handle can't be null");
            }

            if (size > 3)
            {
                throw new MalformedMessageException("Received malformed Detach header. Invalid number of arguments: " + size);
            }

            if (size > 0)
            {
                TLVAmqp element = list.getList()[0];
                if (element.isNull())
                {
                    throw new MalformedMessageException("Received malformed Detach header: handle can't be null");
                }

                _handle = AMQPUnwrapper <AMQPSymbol> .unwrapUInt(element);
            }

            if (size > 1)
            {
                TLVAmqp element = list.getList()[1];
                if (!element.isNull())
                {
                    _closed = AMQPUnwrapper <AMQPSymbol> .unwrapBool(element);
                }
            }

            if (size > 2)
            {
                TLVAmqp element = list.getList()[2];
                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 'ERROR' - received: " + element.Code);
                    }

                    _error = new AMQPError();
                    _error.fill((TLVList)element);
                }
            }
        }
        public override void fillArguments(TLVList list)
        {
            if (list.getList().Count > 0)
            {
                TLVAmqp element = list.getList()[0];
                if (!element.isNull())
                {
                    AMQPType code = element.Code;
                    if (code != AMQPType.LIST_0 && code != AMQPType.LIST_8 && code != AMQPType.LIST_32)
                    {
                        throw new ArgumentException("Expected type 'ERROR' - received: " + element.Code);
                    }

                    _error = new AMQPError();
                    _error.fill((TLVList)element);
                }
            }
        }