public void DoInBackground(StreamDownloadTask.TaskSnapshot state, Stream stream)
            {
                var buffer = new ByteArrayOutputStream();

                try
                {
                    var  data  = new byte[16384];
                    int  n     = 0;
                    long total = 0;
                    while ((n = stream.Read(data, 0, data.Length)) > 0)
                    {
                        total += n;
                        if (total > _maxDownloadSizeBytes)
                        {
                            throw new FirebaseStorageException("the maximum allowed buffer size was exceeded.", ErrorType.DownloadSizeExceeded);
                        }
                        buffer.Write(data, 0, n);
                    }
                    buffer.Flush();
                    _tcs.TrySetResult(buffer.ToByteArray() !);
                }
                catch (FirebaseStorageException e)
                {
                    _tcs.TrySetException(e);
                }
                finally
                {
                    stream.Close();
                    buffer.Close();
                }
            }
 public StreamDownloadTaskSnapshotWrapper(StreamDownloadTask.TaskSnapshot taskSnapshot)
 {
     _taskSnapshot = taskSnapshot;
 }
 public void DoInBackground(StreamDownloadTask.TaskSnapshot snapshot, Stream stream)
 {
     stream.Close();
 }
Exemple #4
0
 public StreamDownloadTaskSnapshotWrapper(StreamDownloadTask.TaskSnapshot taskSnapshot)
 {
     _taskSnapshot = taskSnapshot ?? throw new ArgumentNullException(nameof(taskSnapshot));
 }