Skip to content
Snippets Groups Projects
Commit 581c1b0d authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Update FileTransferProgressCallback

parent fd39571c
No related branches found
No related tags found
2 merge requests!132Update Bindings,!102Release 1.0.0
...@@ -5,21 +5,24 @@ public struct FileTransferProgressCallback { ...@@ -5,21 +5,24 @@ public struct FileTransferProgressCallback {
public struct Callback { public struct Callback {
public init( public init(
progress: Progress, progress: Progress,
partTracker: FilePartTracker partTracker: FilePartTracker,
error: Error?
) { ) {
self.progress = progress self.progress = progress
self.partTracker = partTracker self.partTracker = partTracker
self.error = error
} }
public var progress: Progress public var progress: Progress
public var partTracker: FilePartTracker public var partTracker: FilePartTracker
public var error: Error?
} }
public init(handle: @escaping (Result<Callback, NSError>) -> Void) { public init(handle: @escaping (Callback) -> Void) {
self.handle = handle self.handle = handle
} }
public var handle: (Result<Callback, NSError>) -> Void public var handle: (Callback) -> Void
} }
extension FileTransferProgressCallback { extension FileTransferProgressCallback {
...@@ -51,24 +54,23 @@ extension FileTransferProgressCallback { ...@@ -51,24 +54,23 @@ extension FileTransferProgressCallback {
let debugName: String let debugName: String
func callback(_ payload: Data?, t: BindingsFilePartTracker?, err: Error?) { func callback(_ payload: Data?, t: BindingsFilePartTracker?, err: Error?) {
if let error = err {
callback.handle(.failure(error as NSError))
return
}
guard let payload = payload else { guard let payload = payload else {
fatalError("\(debugName) received `nil` payload without providing error") fatalError("\(debugName) received `nil` payload without providing error")
} }
guard let tracker = t else { let progress: Progress
fatalError("\(debugName) received `nil` tracker without providing error")
}
do { do {
callback.handle(.success(.init( progress = try Progress.decode(payload)
progress: try Progress.decode(payload),
partTracker: .live(tracker)
)))
} catch { } catch {
callback.handle(.failure(error as NSError)) fatalError("\(debugName) payload decoding failed with error: \(error)")
}
guard let tracker = t else {
fatalError("\(debugName) received `nil` tracker without providing error")
} }
callback.handle(.init(
progress: progress,
partTracker: .live(tracker),
error: err
))
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment