1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-08-16 06:31:42 +02:00
Files
.github
.idea
bld
lib
TweetLib.Api
TweetLib.Browser
TweetLib.Browser.CEF
Component
Data
ByteArrayResource.cs
ContextMenuActionRegistry.cs
DownloadCallbacks.cs
ResourceHandlerRegistry.cs
Dialogs
Interfaces
Logic
Utils
Lib.cs
TweetLib.Browser.CEF.csproj
TweetLib.Communication
TweetLib.Core
TweetLib.Utils
TweetTest.Browser.CEF
TweetTest.Core
TweetTest.Utils
linux
resources
windows
.gitattributes
.gitignore
LICENSE.md
README.md
TweetDuck.sln
TweetDuck.sln.DotSettings
Version.cs
global.json

34 lines
773 B
C#

using System;
using System.IO;
namespace TweetLib.Browser.CEF.Data {
public sealed class DownloadCallbacks {
internal bool HasData { get; private set; }
private readonly FileStream fileStream;
private readonly Action? onSuccess;
private readonly Action<Exception>? onError;
internal DownloadCallbacks(FileStream fileStream, Action? onSuccess, Action<Exception>? onError) {
this.fileStream = fileStream;
this.onSuccess = onSuccess;
this.onError = onError;
}
internal void OnData(Stream data) {
data.CopyTo(fileStream);
HasData |= fileStream.Position > 0;
}
internal void OnSuccess() {
fileStream.Dispose();
onSuccess?.Invoke();
}
internal void OnError(Exception e) {
fileStream.Dispose();
onError?.Invoke(e);
}
}
}