From 53b3d03f723f44a89af612b5b03226b854e0d4c0 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 2 Jun 2022 14:38:58 +0200 Subject: [PATCH] Add ClientProcessStatusProvider --- Sources/ElixxirDAppsSDK/Client.swift | 3 +++ .../ClientProcessStatusProvider.swift | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/ClientProcessStatusProvider.swift diff --git a/Sources/ElixxirDAppsSDK/Client.swift b/Sources/ElixxirDAppsSDK/Client.swift index 76832a86..5e65fcb0 100644 --- a/Sources/ElixxirDAppsSDK/Client.swift +++ b/Sources/ElixxirDAppsSDK/Client.swift @@ -2,6 +2,7 @@ import Bindings public struct Client { public var getId: ClientIdProvider + public var hasRunningProcesses: ClientProcessStatusProvider public var networkFollower: NetworkFollower public var waitForNetwork: NetworkWaiter public var isNetworkHealthy: NetworkHealthProvider @@ -16,6 +17,7 @@ extension Client { public static func live(bindingsClient: BindingsClient) -> Client { Client( getId: .live(bindingsClient: bindingsClient), + hasRunningProcesses: .live(bindingsClient: bindingsClient), networkFollower: .live(bindingsClient: bindingsClient), waitForNetwork: .live(bindingsClient: bindingsClient), isNetworkHealthy: .live(bindingsClient: bindingsClient), @@ -32,6 +34,7 @@ extension Client { extension Client { public static let failing = Client( getId: .failing, + hasRunningProcesses: .failing, networkFollower: .failing, waitForNetwork: .failing, isNetworkHealthy: .failing, diff --git a/Sources/ElixxirDAppsSDK/ClientProcessStatusProvider.swift b/Sources/ElixxirDAppsSDK/ClientProcessStatusProvider.swift new file mode 100644 index 00000000..297f00af --- /dev/null +++ b/Sources/ElixxirDAppsSDK/ClientProcessStatusProvider.swift @@ -0,0 +1,23 @@ +import Bindings + +public struct ClientProcessStatusProvider { + public var get: () -> Bool + + public func callAsFunction() -> Bool { + get() + } +} + +extension ClientProcessStatusProvider { + public static func live(bindingsClient: BindingsClient) -> ClientProcessStatusProvider { + ClientProcessStatusProvider(get: bindingsClient.hasRunningProcessies) + } +} + +#if DEBUG +extension ClientProcessStatusProvider { + public static let failing = ClientProcessStatusProvider { + fatalError("Not implemented") + } +} +#endif -- GitLab