From 28d8f45a60d7887f7346066c3ba5ef2ebe155f7e Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 2 Jun 2022 14:02:39 +0200 Subject: [PATCH] Add NetworkHealthProvider --- Sources/ElixxirDAppsSDK/Client.swift | 3 +++ .../NetworkHealthProvider.swift | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 Sources/ElixxirDAppsSDK/NetworkHealthProvider.swift diff --git a/Sources/ElixxirDAppsSDK/Client.swift b/Sources/ElixxirDAppsSDK/Client.swift index 01c50419..fd027ac7 100644 --- a/Sources/ElixxirDAppsSDK/Client.swift +++ b/Sources/ElixxirDAppsSDK/Client.swift @@ -6,6 +6,7 @@ public struct Client { public var makeIdentity: IdentityMaker public var connect: ConnectionMaker public var waitForDelivery: MessageDeliveryWaiter + public var isNetworkHealthy: NetworkHealthProvider public var networkHealth: NetworkHealthListener } @@ -17,6 +18,7 @@ extension Client { makeIdentity: .live(bindingsClient: bindingsClient), connect: .live(bindingsClient: bindingsClient), waitForDelivery: .live(bindingsClient: bindingsClient), + isNetworkHealthy: .live(bindingsClient: bindingsClient), networkHealth: .live(bindingsClient: bindingsClient) ) } @@ -30,6 +32,7 @@ extension Client { makeIdentity: .failing, connect: .failing, waitForDelivery: .failing, + isNetworkHealthy: .failing, networkHealth: .failing ) } diff --git a/Sources/ElixxirDAppsSDK/NetworkHealthProvider.swift b/Sources/ElixxirDAppsSDK/NetworkHealthProvider.swift new file mode 100644 index 00000000..aba7ef8f --- /dev/null +++ b/Sources/ElixxirDAppsSDK/NetworkHealthProvider.swift @@ -0,0 +1,23 @@ +import Bindings + +public struct NetworkHealthProvider { + public var get: () -> Bool + + public func callAsFunction() -> Bool { + get() + } +} + +extension NetworkHealthProvider { + public static func live(bindingsClient: BindingsClient) -> NetworkHealthProvider { + NetworkHealthProvider(get: bindingsClient.isNetworkHealthy) + } +} + +#if DEBUG +extension NetworkHealthProvider { + public static let failing = NetworkHealthProvider { + fatalError("Not implemented") + } +} +#endif -- GitLab