summaryrefslogtreecommitdiffhomepage
path: root/ios/Operations/BlockCondition.swift
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2022-09-25 16:34:23 +0200
committerAndrej Mihajlov <and@mullvad.net>2022-09-26 16:35:38 +0200
commitf389956c2cd884df142adbf00ff2ac7e2f69c2b2 (patch)
tree5f7d4869324760eb4ba0107c0356edc89efd1457 /ios/Operations/BlockCondition.swift
parent2e83b1ca27ff243a615ff10c94c20840b38dfd45 (diff)
downloadmullvadvpn-f389956c2cd884df142adbf00ff2ac7e2f69c2b2.tar.xz
mullvadvpn-f389956c2cd884df142adbf00ff2ac7e2f69c2b2.zip
Move AsyncOperation into Operations static library and add separate tests
Diffstat (limited to 'ios/Operations/BlockCondition.swift')
-rw-r--r--ios/Operations/BlockCondition.swift30
1 files changed, 30 insertions, 0 deletions
diff --git a/ios/Operations/BlockCondition.swift b/ios/Operations/BlockCondition.swift
new file mode 100644
index 0000000000..e6aafa1e2d
--- /dev/null
+++ b/ios/Operations/BlockCondition.swift
@@ -0,0 +1,30 @@
+//
+// BlockCondition.swift
+// Operations
+//
+// Created by pronebird on 25/09/2022.
+// Copyright © 2022 Mullvad VPN AB. All rights reserved.
+//
+
+import Foundation
+
+public final class BlockCondition: OperationCondition {
+ public typealias HandlerBlock = (Operation, @escaping (Bool) -> Void) -> Void
+
+ public var name: String {
+ return "BlockCondition"
+ }
+
+ public var isMutuallyExclusive: Bool {
+ return false
+ }
+
+ public let block: HandlerBlock
+ public init(block: @escaping HandlerBlock) {
+ self.block = block
+ }
+
+ public func evaluate(for operation: Operation, completion: @escaping (Bool) -> Void) {
+ block(operation, completion)
+ }
+}