37 lines
1.0 KiB
Swift
37 lines
1.0 KiB
Swift
//
|
|
// CompactBlockProcessingOperation.swift
|
|
// ZcashLightClientKit
|
|
//
|
|
// Created by Francisco Gindre on 10/15/19.
|
|
// Copyright © 2019 Electric Coin Company. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
class CompactBlockScanningOperation: ZcashOperation {
|
|
|
|
override var isConcurrent: Bool { false }
|
|
|
|
override var isAsynchronous: Bool { false }
|
|
|
|
var rustBackend: ZcashRustBackendWelding.Type
|
|
|
|
private var cacheDb: URL
|
|
private var dataDb: URL
|
|
init(rustWelding: ZcashRustBackendWelding.Type, cacheDb: URL, dataDb: URL) {
|
|
rustBackend = rustWelding
|
|
self.cacheDb = cacheDb
|
|
self.dataDb = dataDb
|
|
super.init()
|
|
}
|
|
|
|
override func main() {
|
|
guard self.rustBackend.scanBlocks(dbCache: self.cacheDb, dbData: self.dataDb) else {
|
|
self.error = self.rustBackend.lastError() ?? ZcashOperationError.unknown
|
|
print("block scanning failed with error: \(String(describing: self.error))")
|
|
self.cancel()
|
|
return
|
|
}
|
|
}
|
|
}
|