Ejemplo n.º 1
0
        public void WriteMessage(QoSInfo message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            FrameWriter.WriteFrameHeader(1, _channel, 11, ref writer);
            FrameWriter.WriteMethodFrame(60, 10, ref writer);
            writer.WriteLong(message.PrefetchSize);
            writer.WriteShortInt(message.PrefetchCount);
            writer.WriteBool(message.Global);
            writer.WriteOctet(RabbitMQConstants.FrameEnd);

            writer.Commit();
        }
        public void WriteMessage(ConsumeCancelInfo message, IBufferWriter <byte> output)
        {
            ValueWriter writer = new ValueWriter(output);

            writer.WriteOctet(1);
            writer.WriteShortInt(_channelId);
            var reserved   = writer.Reserve(4);
            var checkpoint = writer.Written;

            FrameWriter.WriteMethodFrame(60, 30, ref writer);
            writer.WriteShortStr(message.ConsumerTag);
            writer.WriteBool(message.NoWait);
            var payloadSize = writer.Written - checkpoint;

            writer.WriteOctet(RabbitMQConstants.FrameEnd);

            Span <byte> sizeSpan = stackalloc byte[4];

            BinaryPrimitives.WriteInt32BigEndian(sizeSpan, 18);
            reserved.Write(sizeSpan);

            writer.Commit();
        }