public static Task Send <T>( this IConnectionStream <T> connectionStream, bool async, T stream, byte[] buffer, int offset, int count, CancellationToken cancellationToken) { if (!async) { connectionStream.Send(stream, buffer, offset, count); return(Task.CompletedTask); } return(connectionStream.SendAsync( stream, buffer, offset, count, cancellationToken)); }
public static ValueTask <int> Receive <T>( this IConnectionStream <T> connectionStream, bool async, T stream, byte[] buffer, int offset, int count, CancellationToken cancellationToken) { if (!async) { var nread = connectionStream.Receive( stream, buffer, offset, count); return(new ValueTask <int>(nread)); } var receiveTask = connectionStream.ReceiveAsync( stream, buffer, offset, count, cancellationToken); return(new ValueTask <int>(receiveTask)); }