Ejemplo n.º 1
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     ChannelMax = buffer.GetUInt16();
     FrameMax = buffer.GetUInt32();
     Heartbeat = buffer.GetUInt16();
     		 
 }
Ejemplo n.º 2
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     ReplyCode = buffer.GetUInt16();
     ReplyText = EncodingUtils.ReadShortString(buffer);
     ClassId = buffer.GetUInt16();
     MethodId = buffer.GetUInt16();
     		 
 }
Ejemplo n.º 3
0
 public void PopulateFromBuffer(ByteBuffer buffer, uint size)
 {     
     ClassId = buffer.GetUInt16();
     Weight = buffer.GetUInt16();
     BodySize = buffer.GetUInt64();
     ushort propertyFlags = buffer.GetUInt16();
     ContentHeaderPropertiesFactory factory = ContentHeaderPropertiesFactory.GetInstance();
     Properties = factory.CreateContentHeaderProperties(ClassId, propertyFlags, buffer);    
 }
Ejemplo n.º 4
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     ReplyCode = buffer.GetUInt16();
     ReplyText = EncodingUtils.ReadShortString(buffer);
     Details = EncodingUtils.ReadFieldTable(buffer);
     		 
 }
Ejemplo n.º 5
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     PrefetchSize = buffer.GetUInt32();
     PrefetchCount = buffer.GetUInt16();
     bool[] bools = EncodingUtils.ReadBooleans(buffer);Global = bools[0];
     		 
 }
Ejemplo n.º 6
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     Ticket = buffer.GetUInt16();
     Queue = EncodingUtils.ReadShortString(buffer);
     bool[] bools = EncodingUtils.ReadBooleans(buffer);Nowait = bools[0];
     		 
 }
Ejemplo n.º 7
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     ReplyCode = buffer.GetUInt16();
     ReplyText = EncodingUtils.ReadShortString(buffer);
     Exchange = EncodingUtils.ReadShortString(buffer);
     RoutingKey = EncodingUtils.ReadShortString(buffer);
     		 
 }
Ejemplo n.º 8
0
        public MessageDecoderResult Decodable(ByteBuffer input)
        {
            if (_disabled)
            {
                return MessageDecoderResult.NOT_OK;
            }
            // final +1 represents the command end which we know we must require even
            // if there is an empty body
            if (input.Remaining < 1)
            {
                return MessageDecoderResult.NEED_DATA;
            }
            byte type = input.GetByte();

            // we have to check this isn't a protocol initiation frame here - we can't tell later on and we end up
            // waiting for more data. This could be improved if MINA supported some kind of state awareness when decoding
            if ((char)type == 'A')
            {
                _logger.Error("Received what appears to be a protocol initiation frame");
                return MessageDecoderResult.NOT_OK;
            }
            // zero, channel, body size and end byte
            if (input.Remaining < (1 + 2 + 4 + 1))
            {
                return MessageDecoderResult.NEED_DATA;
            }

            int channel = input.GetUInt16();
            long bodySize = input.GetUInt32();            

            // bodySize can be zero
            if (type <= 0 || channel < 0 || bodySize < 0)
            {
                _logger.Error(String.Format("Error decoding frame: Type={0}, Channel={1}, BodySize={2}", type, channel, bodySize));                
                return MessageDecoderResult.NOT_OK;
            }

            if (input.Remaining < (bodySize + 1))
            {
                return MessageDecoderResult.NEED_DATA;
            }

            if (IsSupportedFrameType(type))
            {
                if (_logger.IsDebugEnabled)
                {
                    // we have read 7 bytes so far, so output 7 + bodysize + 1 (for end byte) to get complete data block size
                    // this logging statement is useful when looking at exactly what size of data is coming in/out
                    // the broker
                    _logger.Debug("Able to decode data block of size " + (bodySize + 8));
                }
                return MessageDecoderResult.OK;
            }
            else
            {
                return MessageDecoderResult.NOT_OK;
            }
        }
Ejemplo n.º 9
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     Integer1 = buffer.GetByte();
     Integer2 = buffer.GetUInt16();
     Integer3 = buffer.GetUInt32();
     Integer4 = buffer.GetUInt64();
     Operation = buffer.GetByte();
     		 
 }
Ejemplo n.º 10
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     Ticket = buffer.GetUInt16();
     Exchange = EncodingUtils.ReadShortString(buffer);
     RoutingKey = EncodingUtils.ReadShortString(buffer);
     bool[] bools = EncodingUtils.ReadBooleans(buffer);Mandatory = bools[0];
     Immediate = bools[1];
     		 
 }
Ejemplo n.º 11
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     Ticket = buffer.GetUInt16();
     Queue = EncodingUtils.ReadShortString(buffer);
     Exchange = EncodingUtils.ReadShortString(buffer);
     RoutingKey = EncodingUtils.ReadShortString(buffer);
     bool[] bools = EncodingUtils.ReadBooleans(buffer);Nowait = bools[0];
     Arguments = EncodingUtils.ReadFieldTable(buffer);
     		 
 }
Ejemplo n.º 12
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     Ticket = buffer.GetUInt16();
     Queue = EncodingUtils.ReadShortString(buffer);
     ConsumerTag = EncodingUtils.ReadShortString(buffer);
     bool[] bools = EncodingUtils.ReadBooleans(buffer);NoLocal = bools[0];
     Exclusive = bools[1];
     Nowait = bools[2];
     		 
 }
Ejemplo n.º 13
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     Ticket = buffer.GetUInt16();
     Queue = EncodingUtils.ReadShortString(buffer);
     bool[] bools = EncodingUtils.ReadBooleans(buffer);Passive = bools[0];
     Durable = bools[1];
     Exclusive = bools[2];
     AutoDelete = bools[3];
     Nowait = bools[4];
     Arguments = EncodingUtils.ReadFieldTable(buffer);
     		 
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Creates the body.
 /// </summary>
 /// <param name="inbuf">The ByteBuffer containing data from the network</param>
 /// <returns></returns>
 /// <exception>AMQFrameDecodingException</exception>
 public IBody CreateBody(ByteBuffer inbuf)
 {
    return MethodBodyDecoderRegistry.Get(inbuf.GetUInt16(), inbuf.GetUInt16());
 }
Ejemplo n.º 15
0
 public static ushort ReadUnsignedShort(ByteBuffer buffer)
 {
    return buffer.GetUInt16();
 }
Ejemplo n.º 16
0
        protected Object CreateAndPopulateFrame(ByteBuffer input)
        {
            byte type = input.GetByte();
            ushort channel = input.GetUInt16();
            uint bodySize = input.GetUInt32();

            IBodyFactory bodyFactory = (IBodyFactory)_supportedBodies[type];
            if (bodyFactory == null)
            {
                throw new AMQFrameDecodingException("Unsupported body type: " + type);
            }
            AMQFrame frame = new AMQFrame();

            frame.PopulateFromBuffer(input, channel, bodySize, bodyFactory);

            byte marker = input.GetByte();
            if (marker != 0xCE) {
           		throw new FormatException("marker is not 0xCE"); 	
            }
            return frame;
        }
Ejemplo n.º 17
0
 protected override void PopulateMethodBodyFromBuffer(ByteBuffer buffer)
 {
     Ticket = buffer.GetUInt16();
     		 
 }