From 2cbd112d57019a8bb0d51991ee3e75090272667f Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Thu, 2 Jun 2022 10:29:33 +0200 Subject: [PATCH] Add NetworkWaiter --- Sources/ElixxirDAppsSDK/Client.swift | 7 ++++-- Sources/ElixxirDAppsSDK/NetworkWaiter.swift | 25 +++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 Sources/ElixxirDAppsSDK/NetworkWaiter.swift diff --git a/Sources/ElixxirDAppsSDK/Client.swift b/Sources/ElixxirDAppsSDK/Client.swift index 47f4b2ef..7183cc63 100644 --- a/Sources/ElixxirDAppsSDK/Client.swift +++ b/Sources/ElixxirDAppsSDK/Client.swift @@ -2,12 +2,14 @@ import Bindings public struct Client { public var networkFollower: NetworkFollower + public var waitForNetwork: NetworkWaiter } extension Client { public static func live(bindingsClient: BindingsClient) -> Client { Client( - networkFollower: .live(bindingsClient: bindingsClient) + networkFollower: .live(bindingsClient: bindingsClient), + waitForNetwork: .live(bindingsClient: bindingsClient) ) } } @@ -15,7 +17,8 @@ extension Client { #if DEBUG extension Client { public static let failing = Client( - networkFollower: .failing + networkFollower: .failing, + waitForNetwork: .failing ) } #endif diff --git a/Sources/ElixxirDAppsSDK/NetworkWaiter.swift b/Sources/ElixxirDAppsSDK/NetworkWaiter.swift new file mode 100644 index 00000000..2f1ac828 --- /dev/null +++ b/Sources/ElixxirDAppsSDK/NetworkWaiter.swift @@ -0,0 +1,25 @@ +import Bindings + +public struct NetworkWaiter { + public var wait: (_ timeoutMS: Int) -> Bool + + public func callAsFunction(timeoutMS: Int) -> Bool { + wait(timeoutMS) + } +} + +extension NetworkWaiter { + public static func live(bindingsClient: BindingsClient) -> NetworkWaiter { + NetworkWaiter { timeoutMS in + bindingsClient.wait(forNetwork: timeoutMS) + } + } +} + +#if DEBUG +extension NetworkWaiter { + public static let failing = NetworkWaiter { _ in + false + } +} +#endif -- GitLab