diff --git a/Sources/XXClient/CMix/CMix.swift b/Sources/XXClient/CMix/CMix.swift index 166e0eb0ccacb09e91b69cfb69720920a5cd241a..9ec8007ec8fa3a555988c6fd749913eabc08b398 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 0000000000000000000000000000000000000000..088565c0777882c0084d722e7ff92de3712ec8a3 --- /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)") + ) +}