summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadVPN/Operations/OperationBlockObserver.swift
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2021-09-14 13:59:01 +0200
committerAndrej Mihajlov <and@mullvad.net>2021-09-15 10:54:31 +0200
commit76dd2c99bf92d608022efbf05ffcbfebda43e0c1 (patch)
tree8cccb074a033089ac531e425f4a825df62b616c3 /ios/MullvadVPN/Operations/OperationBlockObserver.swift
parente553d10b869c46e7ab922b86c32f4bd016e4fdac (diff)
downloadmullvadvpn-76dd2c99bf92d608022efbf05ffcbfebda43e0c1.tar.xz
mullvadvpn-76dd2c99bf92d608022efbf05ffcbfebda43e0c1.zip
Operations: simplify AsyncOperation, remove advanced features
Diffstat (limited to 'ios/MullvadVPN/Operations/OperationBlockObserver.swift')
-rw-r--r--ios/MullvadVPN/Operations/OperationBlockObserver.swift67
1 files changed, 0 insertions, 67 deletions
diff --git a/ios/MullvadVPN/Operations/OperationBlockObserver.swift b/ios/MullvadVPN/Operations/OperationBlockObserver.swift
deleted file mode 100644
index 1ba2f1ae50..0000000000
--- a/ios/MullvadVPN/Operations/OperationBlockObserver.swift
+++ /dev/null
@@ -1,67 +0,0 @@
-//
-// OperationBlockObserver.swift
-// MullvadVPN
-//
-// Created by pronebird on 06/07/2020.
-// Copyright © 2020 Mullvad VPN AB. All rights reserved.
-//
-
-import Foundation
-
-class OperationBlockObserver<OperationType: OperationProtocol>: OperationObserver {
- private var willExecute: ((OperationType) -> Void)?
- private var willFinish: ((OperationType) -> Void)?
- private var didFinish: ((OperationType) -> Void)?
-
- let queue: DispatchQueue?
-
- init(
- queue: DispatchQueue? = nil,
- willExecute: ((OperationType) -> Void)? = nil,
- willFinish: ((OperationType) -> Void)? = nil,
- didFinish: ((OperationType) -> Void)? = nil
- ) {
- self.queue = queue
- self.willExecute = willExecute
- self.willFinish = willFinish
- self.didFinish = didFinish
- }
-
- func operationWillExecute(_ operation: OperationType) {
- if let willExecute = willExecute {
- scheduleEvent {
- willExecute(operation)
- }
- }
- }
-
- func operationWillFinish(_ operation: OperationType) {
- if let willFinish = self.willFinish {
- scheduleEvent {
- willFinish(operation)
- }
- }
- }
-
- func operationDidFinish(_ operation: OperationType) {
- if let didFinish = self.didFinish {
- scheduleEvent {
- didFinish(operation)
- }
- }
- }
-
- private func scheduleEvent(_ body: @escaping () -> Void) {
- if let queue = queue {
- queue.async(execute: body)
- } else {
- body()
- }
- }
-}
-
-extension OperationProtocol {
- func addDidFinishBlockObserver(queue: DispatchQueue? = nil, _ block: @escaping (Self) -> Void) {
- addObserver(OperationBlockObserver(queue: queue, didFinish: block))
- }
-}