diff options
| author | Bug Magnet <marco.nikic@mullvad.net> | 2023-09-08 09:04:26 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2023-09-08 09:04:26 +0200 |
| commit | 350719c2879dd4cf0272d5f4e86c0c9c0c8138c9 (patch) | |
| tree | c49abf99f8e95d032a158e07c2d2bbe6796caee1 /ios/Operations/OperationBlockObserverSupport.swift | |
| parent | 827a84c9287705e30487f2f53b360e05dc418f54 (diff) | |
| parent | 944c07ef95f33d8b5798cdb779a2138ec33c3cd2 (diff) | |
| download | mullvadvpn-350719c2879dd4cf0272d5f4e86c0c9c0c8138c9.tar.xz mullvadvpn-350719c2879dd4cf0272d5f4e86c0c9c0c8138c9.zip | |
Merge branch 'fix-swiftlint-warnings-in-xcode-ios-296'
Diffstat (limited to 'ios/Operations/OperationBlockObserverSupport.swift')
| -rw-r--r-- | ios/Operations/OperationBlockObserverSupport.swift | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ios/Operations/OperationBlockObserverSupport.swift b/ios/Operations/OperationBlockObserverSupport.swift new file mode 100644 index 0000000000..9f9855abff --- /dev/null +++ b/ios/Operations/OperationBlockObserverSupport.swift @@ -0,0 +1,33 @@ +// +// OperationBlockObserverSupport.swift +// Operations +// +// Created by Jon Petersson on 2023-09-07. +// Copyright © 2023 Mullvad VPN AB. All rights reserved. +// + +import Foundation + +public protocol OperationBlockObserverSupport {} + +extension OperationBlockObserverSupport where Self: AsyncOperation { + /// Add observer responding to cancellation event. + public func onCancel(_ fn: @escaping (Self) -> Void) { + addBlockObserver(OperationBlockObserver(didCancel: fn)) + } + + /// Add observer responding to finish event. + public func onFinish(_ fn: @escaping (Self, Error?) -> Void) { + addBlockObserver(OperationBlockObserver(didFinish: fn)) + } + + /// Add observer responding to start event. + public func onStart(_ fn: @escaping (Self) -> Void) { + addBlockObserver(OperationBlockObserver(didStart: fn)) + } + + /// Add block-based observer. + public func addBlockObserver(_ observer: OperationBlockObserver<Self>) { + addObserver(observer) + } +} |
