From da55199f6a115dab9bf277465517cb5fd5ed0f34 Mon Sep 17 00:00:00 2001 From: George Miller Date: Tue, 16 Aug 2022 13:30:28 -0400 Subject: demo --- SmartDeviceLinkSwift/SDLManagerSwift.swift | 34 ++++++++++++++++-------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/SmartDeviceLinkSwift/SDLManagerSwift.swift b/SmartDeviceLinkSwift/SDLManagerSwift.swift index 3ee228ac7..38a2b677b 100644 --- a/SmartDeviceLinkSwift/SDLManagerSwift.swift +++ b/SmartDeviceLinkSwift/SDLManagerSwift.swift @@ -7,28 +7,30 @@ // import Foundation - import SmartDeviceLink public class SDLManagerSwift { - - public class func sendRPC(rpc: SDLRPCMessage) -> Void{ - do { - try await(SDLManager.send(rpc)); - } catch { - //my dude, an error has occured + @available(iOS 13.0.0, *) + //pass in the request. + //instead of passing in the response handler, the response handler is done in the continueation, which is called when the internal send returns + public class func sendRPCRequest(_ request: SDLRPCRequest, using manager: SDLManager) async throws -> (SDLRPCRequest, SDLRPCResponse){ + try await withCheckedThrowingContinuation{ continuation in + manager.send(request: request) {req, res, err in + if let error = err { + continuation.resume(throwing: error) + } else if let request = req, let response = res { + continuation.resume(returning: (request, response)) + } else { + continuation.resume(throwing: SendError.unknownError) + } + } } } - - public class func sendRequest(request:SDLRPCRequest){ - sendRequest(request: request, responseHandler: nil) - } - public class func sendRequest(request: SDLRPCRequest, responseHandler:handler()->Void){ - SDLManager.send(request: request, responseHandler: responseHandler); - } - public class func sendRequest(request: SDLRPCRequest, progressHandler: progressHandler()->Void ,responseHandler:handler()->Void){ - SDLManager.send(request: request, progressHandler: progressHandler responseHandler: responseHandler); + + enum SendError: Error { + case unknownError } + } -- cgit v1.2.1