public IMethod GetMethod(IAmqpReader reader)
        {
            if (_protocolExtensions.TryGetMethod(reader.Clone(), out var method))
            {
                return(method);
            }

            return(_protocol.GetMethod(reader));
        }
        private Amqp091Frame(IAmqpReader reader)
        {
            Type = reader.ReadByte();
            AssertValidFrameType(Type);

            Channel = reader.ReadShortInteger();
            Size    = reader.ReadLongInteger();
            Payload = reader.ReadBytes(Size);

            var frameEnd = reader.ReadByte();

            if (frameEnd != Constants.FrameEnd)
            {
                throw new FrameErrorException($"Expected '{Constants.FrameEnd}', got '{frameEnd}'.");
            }
        }
        public bool TryGetMethod(IAmqpReader reader, out IMethod method)
        {
            method = default;

            var classId = reader.ReadShortUnsignedInteger();

            if (_classRegister.TryGetValue(classId, out var methodRegister) == false)
            {
                return(false);
            }

            var methodId = reader.ReadShortUnsignedInteger();

            if (methodRegister.TryGetValue(methodId, out var methodFactory) == false)
            {
                return(false);
            }

            method = methodFactory();
            return(true);
        }
 public static Amqp091Frame ReadFrom(IAmqpReader reader)
 {
     return(new Amqp091Frame(reader));
 }
 public IHeartbeat GetHeartbeat(IAmqpReader reader)
 {
     return(_protocol.GetHeartbeat(reader));
 }
 public IContentBody GetContentBody(IAmqpReader reader)
 {
     return(_protocol.GetContentBody(reader));
 }
 public IContentHeader GetContentHeader(IAmqpReader reader)
 {
     return(_protocol.GetContentHeader(reader));
 }
 public IProtocolHeader GetProtocolHeader(IAmqpReader reader)
 {
     return(_protocol.GetProtocolHeader(reader));
 }
예제 #9
0
 public IFrame Create(IAmqpReader reader)
 {
     return(Amqp091Frame.ReadFrom(reader));
 }
예제 #10
0
 public void ReadFrom(IAmqpReader reader)
 {
 }
예제 #11
0
 public void ReadFrom(IAmqpReader reader)
 {
     Nowait = reader.ReadBit();
 }