diff --git a/Sources/ElixxirDAppsSDK/Client.swift b/Sources/ElixxirDAppsSDK/Client.swift index 76832a86c55fb5cff6080a37320f301df55d65bd..5e65fcb081a078a0a9daa8192ade516c05e23b87 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 0000000000000000000000000000000000000000..297f00afde36933b6fb929e7fbde25ce0d67d7da --- /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