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(); }