public async ValueTask SendAsync( byte[] payload, CancellationToken cancellationToken = default) { await _networkClient.SendAsync(payload, cancellationToken) .ConfigureAwait(false); }
public async ValueTask SendAsync( TSendPayload payload, CancellationToken cancellationToken = default) { var buffer = new MemoryStream(); await using var _ = buffer.ConfigureAwait(false); var writer = new KafkaWriter(buffer); await using (writer.ConfigureAwait(false)) { await payload .WriteToAsync(writer, cancellationToken) .ConfigureAwait(false); } var lengthBuffer = new MemoryStream(); await using (lengthBuffer .ConfigureAwait(false)) { var lengthWriter = new KafkaWriter(lengthBuffer); await using (lengthWriter.ConfigureAwait(false)) { await lengthWriter .WriteInt32Async(Int32.From((int)buffer.Length), cancellationToken) .ConfigureAwait(false); } await _networkClient.SendAsync( lengthBuffer .GetBuffer() .AsMemory() .Slice(0, (int)lengthBuffer.Length), cancellationToken) .ConfigureAwait(false); } await _networkClient.SendAsync( buffer.GetBuffer().AsMemory() .Slice(0, (int)buffer.Length), cancellationToken) .ConfigureAwait(false); }
internal static async Task SendAsync( this INetworkClient networkClient, Frame frame, CancellationToken cancellationToken = default) { await foreach (var bufferSequence in frame .WriteAsync(cancellationToken) .ConfigureAwait(false)) { foreach (var buffer in bufferSequence) { await networkClient.SendAsync( buffer, cancellationToken) .ConfigureAwait(false); } } }
public async ValueTask <int> SendAsync(ReadOnlyMemory <byte> buffer, CancellationToken cancellationToken = default) { return(await _second .SendAsync(buffer, cancellationToken) .ConfigureAwait(false)); }