blob: 728e9a5a02ebf2c4d210988f1291eafee53e529f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
//
// 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 willFinish: ((OperationType) -> Void)?
private var didFinish: ((OperationType) -> Void)?
init(willFinish: ((OperationType) -> Void)? = nil, didFinish: ((OperationType) -> Void)? = nil) {
self.willFinish = willFinish
self.didFinish = didFinish
}
func operationWillFinish(_ operation: OperationType) {
self.willFinish?(operation)
}
func operationDidFinish(_ operation: OperationType) {
self.didFinish?(operation)
}
}
extension OperationProtocol {
func addDidFinishBlockObserver(_ block: @escaping (Self) -> Void) {
addObserver(OperationBlockObserver(didFinish: block))
}
}
|