From ee3ce54758032957ba58ef8318458d6e10305372 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Tue, 8 Nov 2022 21:11:36 +0100 Subject: [PATCH] Add CMixTrackServicesWithIdentity --- Sources/XXClient/CMix/CMix.swift | 7 +++-- .../CMixTrackServicesWithIdentity.swift | 30 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 Sources/XXClient/CMix/Functions/CMixTrackServicesWithIdentity.swift diff --git a/Sources/XXClient/CMix/CMix.swift b/Sources/XXClient/CMix/CMix.swift index 166e0eb0..9ec8007e 100644 --- a/Sources/XXClient/CMix/CMix.swift +++ b/Sources/XXClient/CMix/CMix.swift @@ -20,6 +20,7 @@ public struct CMix { public var waitForRoundResult: CMixWaitForRoundResult public var connect: CMixConnect public var trackServices: CMixTrackServices + public var trackServicesWithIdentity: CMixTrackServicesWithIdentity } extension CMix { @@ -43,7 +44,8 @@ extension CMix { addHealthCallback: .live(bindingsCMix), waitForRoundResult: .live(bindingsCMix), connect: .live(bindingsCMix), - trackServices: .live(bindingsCMix) + trackServices: .live(bindingsCMix), + trackServicesWithIdentity: .live(bindingsCMix) ) } } @@ -68,6 +70,7 @@ extension CMix { addHealthCallback: .unimplemented, waitForRoundResult: .unimplemented, connect: .unimplemented, - trackServices: .unimplemented + trackServices: .unimplemented, + trackServicesWithIdentity: .unimplemented ) } diff --git a/Sources/XXClient/CMix/Functions/CMixTrackServicesWithIdentity.swift b/Sources/XXClient/CMix/Functions/CMixTrackServicesWithIdentity.swift new file mode 100644 index 00000000..088565c0 --- /dev/null +++ b/Sources/XXClient/CMix/Functions/CMixTrackServicesWithIdentity.swift @@ -0,0 +1,30 @@ +import Bindings +import XCTestDynamicOverlay + +public struct CMixTrackServicesWithIdentity { + public var run: (Int, TrackServicesCallback) throws -> Void + + public func callAsFunction( + _ identity: Int, + callback: TrackServicesCallback + ) throws -> Void { + try run(identity, callback) + } +} + +extension CMixTrackServicesWithIdentity { + public static func live(_ bindingsCMix: BindingsCmix) -> CMixTrackServicesWithIdentity { + CMixTrackServicesWithIdentity { identity, callback in + try bindingsCMix.trackServices( + withIdentity: identity, + cb: callback.makeBindingsHealthCallback() + ) + } + } +} + +extension CMixTrackServicesWithIdentity { + public static let unimplemented = CMixTrackServicesWithIdentity( + run: XCTUnimplemented("\(Self.self)") + ) +} -- GitLab