Ejemplo n.º 1
0
            public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
            {
                Debug.Assert(buffer != _arrayPoolBuffer);
                _deflateStream.EnsureNotDisposed();
                if (count <= 0)
                {
                    return(Task.CompletedTask);
                }
                else if (count > buffer.Length - offset)
                {
                    // The buffer stream is either malicious or poorly implemented and returned a number of
                    // bytes larger than the buffer supplied to it.
                    return(Task.FromException(new InvalidDataException(SR.GenericInvalidData)));
                }

                return(WriteAsyncCore(buffer.AsMemory(offset, count), cancellationToken).AsTask());
            }