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(); }
public StreamDownloadTaskSnapshotWrapper(StreamDownloadTask.TaskSnapshot taskSnapshot) { _taskSnapshot = taskSnapshot ?? throw new ArgumentNullException(nameof(taskSnapshot)); }