Skip to content
Snippets Groups Projects
Commit 0c86ff05 authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Add CmixConnect functor

parent 562332f3
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!18Update Bindings
......@@ -13,6 +13,7 @@ public struct Cmix {
public var registerClientErrorCallback: CmixRegisterClientErrorCallback
public var addHealthCallback: CmixAddHealthCallback
public var waitForMessageDelivery: CmixWaitForMessageDelivery
public var connect: CmixConnect
}
extension Cmix {
......@@ -29,7 +30,8 @@ extension Cmix {
waitForNetwork: .live(bindingsCmix),
registerClientErrorCallback: .live(bindingsCmix),
addHealthCallback: .live(bindingsCmix),
waitForMessageDelivery: .live(bindingsCmix)
waitForMessageDelivery: .live(bindingsCmix),
connect: .live(bindingsCmix)
)
}
}
......@@ -47,6 +49,7 @@ extension Cmix {
waitForNetwork: .unimplemented,
registerClientErrorCallback: .unimplemented,
addHealthCallback: .unimplemented,
waitForMessageDelivery: .unimplemented
waitForMessageDelivery: .unimplemented,
connect: .unimplemented
)
}
import Bindings
import XCTestDynamicOverlay
public struct CmixConnect {
public var run: (Bool, Int, Data, Data) throws -> Connection
public func callAsFunction(
withAuthentication: Bool,
e2eId: Int,
recipientContact: Data,
e2eParamsJSON: Data
) throws -> Connection {
try run(withAuthentication, e2eId, recipientContact, e2eParamsJSON)
}
}
extension CmixConnect {
public static func live(_ bindingsCmix: BindingsCmix) -> CmixConnect {
CmixConnect { withAuthentication, e2eId, recipientContact, e2eParamsJSON in
if withAuthentication {
return .live(try bindingsCmix.connect(
withAuthentication: e2eId,
recipientContact: recipientContact,
e2eParamsJSON: e2eParamsJSON
))
} else {
return .live(try bindingsCmix.connect(
e2eId,
recipientContact: recipientContact,
e2eParamsJSON: e2eParamsJSON
))
}
}
}
}
extension CmixConnect {
public static let unimplemented = CmixConnect(
run: XCTUnimplemented("\(Self.self)")
)
}
import Bindings
public struct Connection {
// TODO:
}
extension Connection {
public static func live(_ bindingsConnection: BindingsConnection) -> Connection {
Connection()
}
public static func live(_ bindingsConnection: BindingsAuthenticatedConnection) -> Connection {
Connection()
}
}
extension Connection {
public static let unimplemented = Connection()
}
//import Bindings
//
//public struct Connection {
// public var getId: ConnectionIdProvider
// public var isAuthenticated: ConnectionAuthStatusProvider
// public var getPartner: ConnectionPartnerProvider
// public var send: MessageSender
// public var listen: MessageListener
// public var close: ConnectionCloser
//}
//
//extension Connection {
// public static func live(
// bindingsConnection: BindingsConnection
// ) -> Connection {
// Connection(
// getId: .live(bindingsConnection: bindingsConnection),
// isAuthenticated: .live(bindingsConnection: bindingsConnection),
// getPartner: .live(bindingsConnection: bindingsConnection),
// send: .live(bindingsConnection: bindingsConnection),
// listen: .live(bindingsConnection: bindingsConnection),
// close: .live(bindingsConnection: bindingsConnection)
// )
// }
//
// public static func live(
// bindingsAuthenticatedConnection: BindingsAuthenticatedConnection
// ) -> Connection {
// Connection(
// getId: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
// isAuthenticated: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
// getPartner: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
// send: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
// listen: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection),
// close: .live(bindingsAuthenticatedConnection: bindingsAuthenticatedConnection)
// )
// }
//}
//
//#if DEBUG
//extension Connection {
// public static let failing = Connection(
// getId: .failing,
// isAuthenticated: .failing,
// getPartner: .failing,
// send: .failing,
// listen: .failing,
// close: .failing
// )
//}
//#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment