diff --git a/Sources/ElixxirDAppsSDK/Client.swift b/Sources/ElixxirDAppsSDK/Client.swift index 01c50419586ed9b19f0fcd8e0ecca5fcdb5969b1..fd027ac794d78851ed72c2992f3d255a6ca41d9c 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 0000000000000000000000000000000000000000..aba7ef8fb0239af8f07b908799a8877cca92666d --- /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