Example #1
0
 public void WriteUsingArrayPoolMemoryStream()
 {
     using (var ms = new ArrayPoolMemoryStream(bigArrayPool))
     {
         WriteAndConvertToArray(ms);
     }
 }
        public override async Task <AsyncDisposableValue <Stream> > OpenWriteAsync(CancellationToken cancellationToken = new CancellationToken())
        {
            var stream = new ArrayPoolMemoryStream(InitialCapacity, ArrayPool ?? ArrayPool <byte> .Shared);

            return(new AsyncDisposableValue <Stream>(stream, async() =>
            {
                stream.Seek(0, SeekOrigin.Begin);
                await BlockBlob.UploadFromStreamAsync(stream, cancellationToken);
            }));
        }
        public override async Task <AsyncDisposableValue <Stream> > OpenReadAsync(CancellationToken cancellationToken = new CancellationToken())
        {
            if (!await BlockBlob.ExistsAsync(cancellationToken))
            {
                throw new ResourceNotFoundException("Metadata not found for this store");
            }

            cancellationToken.ThrowIfCancellationRequested();

            var stream = new ArrayPoolMemoryStream(InitialCapacity, ArrayPool ?? ArrayPool <byte> .Shared);

            await BlockBlob.DownloadToStreamAsync(stream, cancellationToken);

            cancellationToken.ThrowIfCancellationRequested();

            stream.Seek(0, SeekOrigin.Begin);

            return(new AsyncDisposableValue <Stream>(stream, async() => stream.Dispose()));
        }