Ejemplo n.º 1
0
        internal static void Write(INatsStreamWriter writer, ReadOnlySpan <char> subject, ReadOnlySpan <char> subscriptionId, ReadOnlySpan <char> queueGroup)
        {
            var trg = new Span <byte>(new byte[3 + 1 + subject.Length + 1 + (queueGroup.IsEmpty ? 0 : queueGroup.Length + 1) + subscriptionId.Length + NatsEncoder.CrlfBytesLen]);

            Fill(trg, subject, subscriptionId, queueGroup);

            writer.Write(trg, false);
        }
Ejemplo n.º 2
0
        internal static async Task WriteAsync(INatsStreamWriter writer, ReadOnlyMemory <char> subject, ReadOnlyMemory <char> subscriptionId, ReadOnlyMemory <char> queueGroup)
        {
            var trg = new Memory <byte>(new byte[3 + 1 + subject.Length + 1 + (queueGroup.IsEmpty ? 0 : queueGroup.Length + 1) + subscriptionId.Length + NatsEncoder.CrlfBytesLen]);

            Fill(trg.Span, subject.Span, subscriptionId.Span, queueGroup.Span);

            await writer.WriteAsync(trg, false).ConfigureAwait(false);
        }
Ejemplo n.º 3
0
        internal static void Write(INatsStreamWriter writer, ReadOnlySpan <char> subscriptionId, int?maxMessages = null)
        {
            var maxMessagesString = maxMessages.ToString().AsSpan();
            var trg = new Span <byte>(new byte[5 + 1 + subscriptionId.Length + (maxMessagesString.IsEmpty ? 0 : maxMessagesString.Length + 1) + NatsEncoder.CrlfBytesLen]);

            Fill(trg, subscriptionId, maxMessagesString);

            writer.Write(trg, false);
        }
Ejemplo n.º 4
0
        internal static async Task WriteAsync(INatsStreamWriter writer, ReadOnlyMemory <char> subscriptionId, int?maxMessages = null)
        {
            var maxMessagesString = maxMessages.ToString().AsMemory();
            var trg = new Memory <byte>(new byte[5 + 1 + subscriptionId.Length + (maxMessagesString.IsEmpty ? 0 : maxMessagesString.Length + 1) + NatsEncoder.CrlfBytesLen]);

            Fill(trg.Span, subscriptionId.Span, maxMessagesString.Span);

            await writer.WriteAsync(trg, false).ConfigureAwait(false);
        }
Ejemplo n.º 5
0
        internal static void Write(INatsStreamWriter writer, ReadOnlySpan <char> subject, ReadOnlySpan <char> replyTo, ReadOnlyMemory <byte> body)
        {
            var bodySize    = body.Length.ToString().AsSpan();
            var preBodySize = 3 + 1 + subject.Length + 1 + (replyTo.IsEmpty ? 0 : replyTo.Length + 1) + bodySize.Length + NatsEncoder.CrlfBytesLen;
            var preBody     = new Span <byte>(new byte[preBodySize]);

            FillPreBody(preBody, subject, replyTo, bodySize);

            writer.Write(preBody, false);
            writer.Write(body.Span, false);
            writer.Write(NatsEncoder.CrlfBytes, false);
        }
Ejemplo n.º 6
0
        internal static async Task WriteAsync(INatsStreamWriter writer, ReadOnlyMemory <char> subject, ReadOnlyMemory <char> replyTo, ReadOnlyMemory <byte> body)
        {
            var bodySize    = body.Length.ToString().AsMemory();
            var preBodySize = 3 + 1 + subject.Length + 1 + (replyTo.Length > 0 ? replyTo.Length + 1 : 0) + bodySize.Length + NatsEncoder.CrlfBytesLen;
            var preBody     = new Memory <byte>(new byte[preBodySize]);

            FillPreBody(preBody.Span, subject.Span, replyTo.Span, bodySize.Span);

            await writer.WriteAsync(preBody, false).ConfigureAwait(false);

            await writer.WriteAsync(body, false).ConfigureAwait(false);

            await writer.WriteAsync(NatsEncoder.CrlfBytes, false).ConfigureAwait(false);
        }
Ejemplo n.º 7
0
 internal Publisher(INatsStreamWriter writer, int maxPayload)
 {
     _writer     = writer;
     _maxPayload = maxPayload;
 }
Ejemplo n.º 8
0
 internal static void Write(INatsStreamWriter writer)
 => writer.Write(Bytes.Span, true);
Ejemplo n.º 9
0
 internal static Task WriteAsync(INatsStreamWriter writer)
 => writer.WriteAsync(Bytes, true);