public void WriteMessage(QueueDelete message, IBufferWriter <byte> output) { ValueWriter writer = new ValueWriter(output); writer.WriteOctet(RabbitMQConstants.FrameMethod); writer.WriteShortInt(_channelId); var reserved = writer.Reserve(4); var checkpoint = writer.Written; FrameWriter.WriteMethodFrame(50, 40, ref writer); writer.WriteShortInt(0); //reserved-1 writer.WriteShortStr(message.Name); writer.WriteBit(message.IfUnused); writer.WriteBit(message.IfEmpty); writer.WriteBit(message.NoWait); writer.BitFlush(); var payloadSize = writer.Written - checkpoint; writer.WriteOctet(RabbitMQConstants.FrameEnd); Span <byte> span = stackalloc byte[4]; BinaryPrimitives.WriteInt32BigEndian(span, payloadSize); reserved.Write(span); writer.Commit(); }
public void WriteMessage(AckInfo message, IBufferWriter <byte> output) { ValueWriter writer = new ValueWriter(output); FrameWriter.WriteFrameHeader(Constants.FrameMethod, _channelId, 13, ref writer); FrameWriter.WriteMethodFrame(60, 80, ref writer); writer.WriteLongLong(message.DeliveryTag); writer.WriteBit(message.Multiple); writer.BitFlush(); writer.WriteOctet(Constants.FrameEnd); writer.Commit(); }
internal void WriteMessage(ref BasicPublishInfo message, ref ValueWriter writer) { var payloadSize = 9 + message.ExchangeName.Length + message.RoutingKey.Length; FrameWriter.WriteFrameHeader(RabbitMQConstants.FrameMethod, _channelid, payloadSize, ref writer); //var checkpoint = writer.Written; FrameWriter.WriteMethodFrame(60, 40, ref writer); writer.WriteShortInt(0); //reserved-1 writer.WriteShortStr(message.ExchangeName); writer.WriteShortStr(message.RoutingKey); writer.WriteBit(message.Mandatory); writer.WriteBit(message.Immediate); writer.BitFlush(); //var size = writer.Written - checkpoint; writer.WriteOctet(RabbitMQConstants.FrameEnd); writer.Commit(); }
public void WriteMessage(BasicPublishInfo message, IBufferWriter <byte> output) { ValueWriter writer = new ValueWriter(output); var payloadSize = 9 + message.ExchangeName.Length + message.RoutingKey.Length; FrameWriter.WriteFrameHeader(Constants.FrameMethod, _channelid, payloadSize, ref writer); //var checkpoint = writer.Written; FrameWriter.WriteMethodFrame(60, 40, ref writer); writer.WriteShortInt(0); //reserved-1 writer.WriteShortStr(message.ExchangeName); writer.WriteShortStr(message.RoutingKey); writer.WriteBit(message.Mandatory); writer.WriteBit(message.Immediate); writer.BitFlush(); //var size = writer.Written - checkpoint; writer.WriteOctet(Constants.FrameEnd); writer.Commit(); }
public void WriteMessage(PublishAllInfo message, IBufferWriter <byte> output) { var writer = new ValueWriter(output); var framePayloadSize = 9 + message.Info.ExchangeName.Length + message.Info.RoutingKey.Length; FrameWriter.WriteFrameHeader(RabbitMQConstants.FrameMethod, message.ChannelId, framePayloadSize, ref writer); FrameWriter.WriteMethodFrame(60, 40, ref writer); writer.WriteShortInt(0); //reserved-1 writer.WriteShortStr(message.Info.ExchangeName); writer.WriteShortStr(message.Info.RoutingKey); writer.WriteBit(message.Info.Mandatory); writer.WriteBit(message.Info.Immediate); writer.BitFlush(); writer.WriteOctet(RabbitMQConstants.FrameEnd); _bitCount = 0; _flagWord = 0; writer.WriteOctet(RabbitMQConstants.FrameHeader); writer.WriteShortInt(message.ChannelId); var reserved = writer.Reserve(4); var checkpoint = writer.Written; writer.WriteShortInt(message.Header.ClassId); writer.WriteShortInt(message.Header.Weight); writer.WriteLongLong(message.Header.BodySize); WriteBitFlagsAndContinuation(ref message.Header.Properties, ref writer); var payloadSize = writer.Written - checkpoint; writer.WriteOctet(RabbitMQConstants.FrameEnd); Span <byte> span = stackalloc byte[4]; BinaryPrimitives.WriteInt32BigEndian(span, payloadSize); reserved.Write(span); FrameWriter.WriteFrameHeader(RabbitMQConstants.FrameBody, message.ChannelId, message.Body.Length, ref writer); writer.WriteBytes(message.Body.Span); writer.WriteOctet(RabbitMQConstants.FrameEnd); writer.Commit(); }