Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }