diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2018-05-14 08:54:40 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-14 08:54:40 -0400 |
commit | 84a7fc6005ee90cfedd0dbebaa72ae5caca0ad7c (patch) | |
tree | 4c9a5906dad2417684f0978efea280753cd66aad | |
parent | 2a51aa3b92dc8404bda2d3d62c7ba0ab5acc1466 (diff) | |
parent | 8219dccb10fb1d709f2aec29be25bfbaab4c1490 (diff) | |
download | sdl_ios-84a7fc6005ee90cfedd0dbebaa72ae5caca0ad7c.tar.gz |
Merge pull request #949 from smartdevicelink/feature/issue_948_refactor_lower_layers
Refactor lower layers to remove uneeded cruft
28 files changed, 210 insertions, 389 deletions
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index f971257d7..d4bea2ff0 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -226,7 +226,6 @@ 1680B1171A9CD7AD00DBD79E /* SDLProtocolSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B10B1A9CD7AD00DBD79E /* SDLProtocolSpec.m */; }; 1680B1181A9CD7AD00DBD79E /* SDLV1ProtocolMessageSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B10C1A9CD7AD00DBD79E /* SDLV1ProtocolMessageSpec.m */; }; 1680B1191A9CD7AD00DBD79E /* SDLV2ProtocolMessageSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B10D1A9CD7AD00DBD79E /* SDLV2ProtocolMessageSpec.m */; }; - 1680B11A1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B10E1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m */; }; 1680B11B1A9CD7AD00DBD79E /* SDLFunctionIDSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B10F1A9CD7AD00DBD79E /* SDLFunctionIDSpec.m */; }; 1680B11C1A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B1101A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m */; }; 1680B11D1A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B1111A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m */; }; @@ -413,10 +412,7 @@ 5D61FA211A84237100846EE7 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA201A84237100846EE7 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FA331A84237100846EE7 /* SmartDeviceLink.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D61FA1C1A84237100846EE7 /* SmartDeviceLink.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 5D61FA341A84237100846EE7 /* SmartDeviceLink.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5D61FA1C1A84237100846EE7 /* SmartDeviceLink.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 5D61FC291A84238C00846EE7 /* SDLAbstractProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA3C1A84238A00846EE7 /* SDLAbstractProtocol.h */; }; - 5D61FC2A1A84238C00846EE7 /* SDLAbstractProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA3D1A84238A00846EE7 /* SDLAbstractProtocol.m */; }; - 5D61FC2B1A84238C00846EE7 /* SDLAbstractTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA3E1A84238A00846EE7 /* SDLAbstractTransport.h */; }; - 5D61FC2C1A84238C00846EE7 /* SDLAbstractTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA3F1A84238A00846EE7 /* SDLAbstractTransport.m */; }; + 5D61FC2B1A84238C00846EE7 /* SDLTransportType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA3E1A84238A00846EE7 /* SDLTransportType.h */; }; 5D61FC2D1A84238C00846EE7 /* SDLAddCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA401A84238A00846EE7 /* SDLAddCommand.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FC2E1A84238C00846EE7 /* SDLAddCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FA411A84238A00846EE7 /* SDLAddCommand.m */; }; 5D61FC2F1A84238C00846EE7 /* SDLAddCommandResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FA421A84238A00846EE7 /* SDLAddCommandResponse.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -696,8 +692,6 @@ 5D61FD4F1A84238C00846EE7 /* SDLProtocolReceivedMessageRouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB621A84238B00846EE7 /* SDLProtocolReceivedMessageRouter.m */; }; 5D61FD501A84238C00846EE7 /* SDLProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB631A84238B00846EE7 /* SDLProxy.h */; }; 5D61FD511A84238C00846EE7 /* SDLProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB641A84238B00846EE7 /* SDLProxy.m */; }; - 5D61FD521A84238C00846EE7 /* SDLProxyFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB651A84238B00846EE7 /* SDLProxyFactory.h */; }; - 5D61FD531A84238C00846EE7 /* SDLProxyFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB661A84238B00846EE7 /* SDLProxyFactory.m */; }; 5D61FD541A84238C00846EE7 /* SDLProxyListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB671A84238B00846EE7 /* SDLProxyListener.h */; }; 5D61FD551A84238C00846EE7 /* SDLPutFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D61FB681A84238B00846EE7 /* SDLPutFile.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D61FD561A84238C00846EE7 /* SDLPutFile.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D61FB691A84238B00846EE7 /* SDLPutFile.m */; }; @@ -974,6 +968,8 @@ 5DA49CE61F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA49CE41F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m */; }; 5DA8A0E91E955F710039C50D /* SDLStreamingMediaManagerConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = DA8966F31E56977C00413EAB /* SDLStreamingMediaManagerConstants.m */; }; 5DA8A0EA1E955FE00039C50D /* SDLLogModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DBF06301E64A9C600A5CF03 /* SDLLogModel.m */; }; + 5DAB5F562098E5D100A020C8 /* SDLProtocolConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DAB5F542098E5D100A020C8 /* SDLProtocolConstants.h */; }; + 5DAB5F572098E5D100A020C8 /* SDLProtocolConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DAB5F552098E5D100A020C8 /* SDLProtocolConstants.m */; }; 5DAB5F512098994C00A020C8 /* SDLMenuCellSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DAB5F502098994C00A020C8 /* SDLMenuCellSpec.m */; }; 5DAB5F5320989A8300A020C8 /* SDLVoiceCommandSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DAB5F5220989A8300A020C8 /* SDLVoiceCommandSpec.m */; }; 5DAD5F7F204DEDEB0025624C /* SDLScreenManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DAD5F7D204DEDEB0025624C /* SDLScreenManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -1470,7 +1466,6 @@ 1680B10B1A9CD7AD00DBD79E /* SDLProtocolSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLProtocolSpec.m; path = MessageSpecs/SDLProtocolSpec.m; sourceTree = "<group>"; }; 1680B10C1A9CD7AD00DBD79E /* SDLV1ProtocolMessageSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLV1ProtocolMessageSpec.m; sourceTree = "<group>"; }; 1680B10D1A9CD7AD00DBD79E /* SDLV2ProtocolMessageSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLV2ProtocolMessageSpec.m; sourceTree = "<group>"; }; - 1680B10E1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAbstractProtocolSpec.m; sourceTree = "<group>"; }; 1680B10F1A9CD7AD00DBD79E /* SDLFunctionIDSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLFunctionIDSpec.m; sourceTree = "<group>"; }; 1680B1101A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolMessageAssemblerSpec.m; sourceTree = "<group>"; }; 1680B1111A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolMessageDisassemblerSpec.m; sourceTree = "<group>"; }; @@ -1687,10 +1682,7 @@ 5D61FA201A84237100846EE7 /* SmartDeviceLink.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmartDeviceLink.h; sourceTree = "<group>"; wrapsLines = 0; }; 5D61FA261A84237100846EE7 /* SmartDeviceLinkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmartDeviceLinkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 5D61FA2E1A84237100846EE7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 5D61FA3C1A84238A00846EE7 /* SDLAbstractProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAbstractProtocol.h; sourceTree = "<group>"; }; - 5D61FA3D1A84238A00846EE7 /* SDLAbstractProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAbstractProtocol.m; sourceTree = "<group>"; }; - 5D61FA3E1A84238A00846EE7 /* SDLAbstractTransport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAbstractTransport.h; sourceTree = "<group>"; }; - 5D61FA3F1A84238A00846EE7 /* SDLAbstractTransport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAbstractTransport.m; sourceTree = "<group>"; }; + 5D61FA3E1A84238A00846EE7 /* SDLTransportType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTransportType.h; sourceTree = "<group>"; }; 5D61FA401A84238A00846EE7 /* SDLAddCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAddCommand.h; sourceTree = "<group>"; }; 5D61FA411A84238A00846EE7 /* SDLAddCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAddCommand.m; sourceTree = "<group>"; }; 5D61FA421A84238A00846EE7 /* SDLAddCommandResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAddCommandResponse.h; sourceTree = "<group>"; }; @@ -1970,8 +1962,6 @@ 5D61FB621A84238B00846EE7 /* SDLProtocolReceivedMessageRouter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolReceivedMessageRouter.m; sourceTree = "<group>"; }; 5D61FB631A84238B00846EE7 /* SDLProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLProxy.h; sourceTree = "<group>"; }; 5D61FB641A84238B00846EE7 /* SDLProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProxy.m; sourceTree = "<group>"; }; - 5D61FB651A84238B00846EE7 /* SDLProxyFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLProxyFactory.h; sourceTree = "<group>"; }; - 5D61FB661A84238B00846EE7 /* SDLProxyFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProxyFactory.m; sourceTree = "<group>"; }; 5D61FB671A84238B00846EE7 /* SDLProxyListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLProxyListener.h; sourceTree = "<group>"; }; 5D61FB681A84238B00846EE7 /* SDLPutFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLPutFile.h; sourceTree = "<group>"; }; 5D61FB691A84238B00846EE7 /* SDLPutFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLPutFile.m; sourceTree = "<group>"; }; @@ -2245,6 +2235,8 @@ 5DA3F36F1BC4489A0026F2D0 /* SDLManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLManager.m; sourceTree = "<group>"; }; 5DA49CE31F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLControlFramePayloadRPCStartService.h; sourceTree = "<group>"; }; 5DA49CE41F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadRPCStartService.m; sourceTree = "<group>"; }; + 5DAB5F542098E5D100A020C8 /* SDLProtocolConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLProtocolConstants.h; sourceTree = "<group>"; }; + 5DAB5F552098E5D100A020C8 /* SDLProtocolConstants.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolConstants.m; sourceTree = "<group>"; }; 5DAB5F502098994C00A020C8 /* SDLMenuCellSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLMenuCellSpec.m; path = DevAPISpecs/SDLMenuCellSpec.m; sourceTree = "<group>"; }; 5DAB5F5220989A8300A020C8 /* SDLVoiceCommandSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandSpec.m; path = DevAPISpecs/SDLVoiceCommandSpec.m; sourceTree = "<group>"; }; 5DAD5F7D204DEDEB0025624C /* SDLScreenManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLScreenManager.h; sourceTree = "<group>"; }; @@ -2862,7 +2854,6 @@ 5DC09ED71F2F7F1A00F4AB1D /* Control Frame Payloads */, 1680B1051A9CD7AD00DBD79E /* HeaderSpecs */, 1680B1091A9CD7AD00DBD79E /* MessageSpecs */, - 1680B10E1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m */, 1680B10F1A9CD7AD00DBD79E /* SDLFunctionIDSpec.m */, 1680B10B1A9CD7AD00DBD79E /* SDLProtocolSpec.m */, 1680B1101A9CD7AD00DBD79E /* SDLProtocolMessageAssemblerSpec.m */, @@ -3276,8 +3267,6 @@ 5D61FB451A84238B00846EE7 /* SDLPolicyDataParser.m */, 5D61FB631A84238B00846EE7 /* SDLProxy.h */, 5D61FB641A84238B00846EE7 /* SDLProxy.m */, - 5D61FB651A84238B00846EE7 /* SDLProxyFactory.h */, - 5D61FB661A84238B00846EE7 /* SDLProxyFactory.m */, ); name = Proxy; sourceTree = "<group>"; @@ -3289,12 +3278,12 @@ 5D5934FA1A851AC900687FB9 /* @protocols */, 5D5935011A851D7E00687FB9 /* Header */, 5D5935021A851D8700687FB9 /* Message */, - 5D61FA3C1A84238A00846EE7 /* SDLAbstractProtocol.h */, - 5D61FA3D1A84238A00846EE7 /* SDLAbstractProtocol.m */, 5D61FAC01A84238A00846EE7 /* SDLFunctionID.h */, 5D61FAC11A84238A00846EE7 /* SDLFunctionID.m */, 5D61FB561A84238B00846EE7 /* SDLProtocol.h */, 5D61FB571A84238B00846EE7 /* SDLProtocol.m */, + 5DAB5F542098E5D100A020C8 /* SDLProtocolConstants.h */, + 5DAB5F552098E5D100A020C8 /* SDLProtocolConstants.m */, 5D61FB5D1A84238B00846EE7 /* SDLProtocolMessageAssembler.h */, 5D61FB5E1A84238B00846EE7 /* SDLProtocolMessageAssembler.m */, 5D61FB5F1A84238B00846EE7 /* SDLProtocolMessageDisassembler.h */, @@ -3322,18 +3311,9 @@ 5D5934F01A85161A00687FB9 /* Transport */ = { isa = PBXGroup; children = ( + 5DAB5F592098E8CB00A020C8 /* TCP */, + 5DAB5F582098E8BC00A020C8 /* IAP */, 5D5935001A851D0B00687FB9 /* @protocols */, - 5D61FA3E1A84238A00846EE7 /* SDLAbstractTransport.h */, - 5D61FA3F1A84238A00846EE7 /* SDLAbstractTransport.m */, - E9C32B891AB20BA200F283AF /* SDLIAPSession.h */, - E9C32B8A1AB20BA200F283AF /* SDLIAPSession.m */, - E9C32B8B1AB20BA200F283AF /* SDLIAPSessionDelegate.h */, - 5D61FADA1A84238A00846EE7 /* SDLIAPTransport.h */, - 5D61FADB1A84238A00846EE7 /* SDLIAPTransport.m */, - E9C32B8C1AB20BA200F283AF /* SDLStreamDelegate.h */, - E9C32B8D1AB20BA200F283AF /* SDLStreamDelegate.m */, - 5D61FBD81A84238B00846EE7 /* SDLTCPTransport.h */, - 5D61FBD91A84238B00846EE7 /* SDLTCPTransport.m */, ); name = Transport; sourceTree = "<group>"; @@ -3984,6 +3964,7 @@ 5D5935001A851D0B00687FB9 /* @protocols */ = { isa = PBXGroup; children = ( + 5D61FA3E1A84238A00846EE7 /* SDLTransportType.h */, 5D61FBED1A84238C00846EE7 /* SDLTransportDelegate.h */, ); name = "@protocols"; @@ -4404,7 +4385,30 @@ name = "Focus / Haptic"; sourceTree = "<group>"; }; - 5DAD5F8120507DE40025624C /* Screen */ = { + 5DAB5F582098E8BC00A020C8 /* IAP */ = { + isa = PBXGroup; + children = ( + E9C32B891AB20BA200F283AF /* SDLIAPSession.h */, + E9C32B8A1AB20BA200F283AF /* SDLIAPSession.m */, + E9C32B8B1AB20BA200F283AF /* SDLIAPSessionDelegate.h */, + 5D61FADA1A84238A00846EE7 /* SDLIAPTransport.h */, + 5D61FADB1A84238A00846EE7 /* SDLIAPTransport.m */, + E9C32B8C1AB20BA200F283AF /* SDLStreamDelegate.h */, + E9C32B8D1AB20BA200F283AF /* SDLStreamDelegate.m */, + ); + name = IAP; + sourceTree = "<group>"; + }; + 5DAB5F592098E8CB00A020C8 /* TCP */ = { + isa = PBXGroup; + children = ( + 5D61FBD81A84238B00846EE7 /* SDLTCPTransport.h */, + 5D61FBD91A84238B00846EE7 /* SDLTCPTransport.m */, + ); + name = TCP; + sourceTree = "<group>"; + }; + 5DAD5F8120507DE40025624C /* Show */ = { isa = PBXGroup; children = ( 5DF40B24208FA7C500DD6FDA /* Menu */, @@ -4914,7 +4918,6 @@ 5D61FD151A84238C00846EE7 /* SDLOnLockScreenStatus.h in Headers */, 5D61FD291A84238C00846EE7 /* SDLPerformInteraction.h in Headers */, DAC572571D1067270004288B /* SDLTouchManager.h in Headers */, - 5D61FD521A84238C00846EE7 /* SDLProxyFactory.h in Headers */, 5D61FE0D1A84238C00846EE7 /* SDLVrCapabilities.h in Headers */, 5DBF06271E64A91D00A5CF03 /* SDLLogFileModule.h in Headers */, 5D61FC531A84238C00846EE7 /* SDLButtonEventMode.h in Headers */, @@ -4970,7 +4973,7 @@ 5DA3F3541BC448060026F2D0 /* NSMapTable+Subscripting.h in Headers */, 5D61FC591A84238C00846EE7 /* SDLCarModeStatus.h in Headers */, 5D1665C41CF8CA2700CC4CA1 /* SDLListFilesOperation.h in Headers */, - 5D61FC2B1A84238C00846EE7 /* SDLAbstractTransport.h in Headers */, + 5D61FC2B1A84238C00846EE7 /* SDLTransportType.h in Headers */, 5D61FD791A84238C00846EE7 /* SDLScreenParams.h in Headers */, 5D61FDCF1A84238C00846EE7 /* SDLTireStatus.h in Headers */, 5D61FDFD1A84238C00846EE7 /* SDLVehicleDataActiveStatus.h in Headers */, @@ -5065,7 +5068,6 @@ 5DCF76F51ACDBAD300BB647B /* SDLSendLocation.h in Headers */, 5D61FC9E1A84238C00846EE7 /* SDLEncodedSyncPData.h in Headers */, 1FF7DABA1F75B2A800B46C30 /* SDLFocusableItemLocator.h in Headers */, - 5D61FC291A84238C00846EE7 /* SDLAbstractProtocol.h in Headers */, 5D61FDE11A84238C00846EE7 /* SDLTurn.h in Headers */, 5D9FC29B1FD8812F00ACA5C2 /* SDLAudioStreamManagerDelegate.h in Headers */, 5D61FC801A84238C00846EE7 /* SDLDeleteSubMenuResponse.h in Headers */, @@ -5094,6 +5096,7 @@ 5D61FC8C1A84238C00846EE7 /* SDLDIDResult.h in Headers */, 5D61FD1F1A84238C00846EE7 /* SDLOnTouchEvent.h in Headers */, 5D61FCB31A84238C00846EE7 /* SDLGetDTCsResponse.h in Headers */, + 5DAB5F562098E5D100A020C8 /* SDLProtocolConstants.h in Headers */, 5D61FC4D1A84238C00846EE7 /* SDLBitsPerSample.h in Headers */, 5D61FD9B1A84238C00846EE7 /* SDLSlider.h in Headers */, 5D61FD111A84238C00846EE7 /* SDLOnKeyboardInput.h in Headers */, @@ -5535,7 +5538,6 @@ 5D61FDEC1A84238C00846EE7 /* SDLUnsubscribeVehicleData.m in Sources */, 5D61FDBE1A84238C00846EE7 /* SDLSystemContext.m in Sources */, 5D61FC441A84238C00846EE7 /* SDLAppInterfaceUnregisteredReason.m in Sources */, - 5D61FD531A84238C00846EE7 /* SDLProxyFactory.m in Sources */, 5D0A7387203F24060001595D /* SDLSoftButtonState.m in Sources */, 5D61FDCA1A84238C00846EE7 /* SDLTextField.m in Sources */, DAA41D561DF66B2000BC7337 /* SDLH264VideoEncoder.m in Sources */, @@ -5779,6 +5781,7 @@ 5D16545B1D3E7A1600554D93 /* SDLLifecycleManager.m in Sources */, E9C32B971AB20BA200F283AF /* SDLTimer.m in Sources */, 5D61FCB61A84238C00846EE7 /* SDLGetVehicleData.m in Sources */, + 5DAB5F572098E5D100A020C8 /* SDLProtocolConstants.m in Sources */, 5D61FC9F1A84238C00846EE7 /* SDLEncodedSyncPData.m in Sources */, 5D61FE061A84238C00846EE7 /* SDLVehicleDataResultCode.m in Sources */, 5D61FCA41A84238C00846EE7 /* SDLEndAudioPassThru.m in Sources */, @@ -5850,7 +5853,6 @@ 8877F5EF1F34A72200DC128A /* SDLSendHapticDataResponse.m in Sources */, 5D61FD181A84238C00846EE7 /* SDLOnPermissionsChange.m in Sources */, 5D61FD3E1A84238C00846EE7 /* SDLPrimaryAudioSource.m in Sources */, - 5D61FC2A1A84238C00846EE7 /* SDLAbstractProtocol.m in Sources */, 1E5AD0851F20B9290029B8AF /* SDLButtonPressResponse.m in Sources */, 5D82041F1BCD8E6100D0A41B /* SDLConfiguration.m in Sources */, 5D61FD381A84238C00846EE7 /* SDLPredefinedLayout.m in Sources */, @@ -5881,7 +5883,6 @@ 1E5AD0391F1F4E390029B8AF /* SDLClimateControlCapabilities.m in Sources */, 5D61FDA21A84238C00846EE7 /* SDLSoftButtonCapabilities.m in Sources */, 5D8204321BD001C700D0A41B /* SDLArtwork.m in Sources */, - 5D61FC2C1A84238C00846EE7 /* SDLAbstractTransport.m in Sources */, 5D61FD8E1A84238C00846EE7 /* SDLSetMediaClockTimerResponse.m in Sources */, 5D61FD721A84238C00846EE7 /* SDLRPCRequest.m in Sources */, EED5CA081F4D1E2E00F04000 /* SDLRTPH264Packetizer.m in Sources */, @@ -5943,7 +5944,6 @@ 162E83331A9BDE8B00906325 /* SDLPerformInteractionSpec.m in Sources */, 5D0A9F951F15585B00CC80DD /* SDLPhoneCapabilitySpec.m in Sources */, 1EE8C4561F38788A00FDC2CF /* SDLButtonPressSpec.m in Sources */, - 1680B11A1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m in Sources */, 1680B1151A9CD7AD00DBD79E /* SDLV2ProtocolHeaderSpec.m in Sources */, 1EE8C4541F38762E00FDC2CF /* SDLOnInteriorVehicleDataSpec.m in Sources */, 162E83101A9BDE8B00906325 /* SDLOnAudioPassThruSpec.m in Sources */, diff --git a/SmartDeviceLink/SDLAbstractProtocol.h b/SmartDeviceLink/SDLAbstractProtocol.h deleted file mode 100644 index e629e302a..000000000 --- a/SmartDeviceLink/SDLAbstractProtocol.h +++ /dev/null @@ -1,38 +0,0 @@ -// SDLAbstractProtocol.h -// - -@class SDLAbstractTransport; -@class SDLRPCMessage; -@class SDLRPCRequest; - -#import "SDLProtocolListener.h" -#import "SDLSecurityType.h" -#import "SDLTransportDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLAbstractProtocol : NSObject <SDLTransportDelegate> - -@property (strong, nonatomic) NSString *debugConsoleGroupName; -@property (nullable, weak, nonatomic) SDLAbstractTransport *transport; -@property (nullable, strong, nonatomic) NSHashTable<id<SDLProtocolListener>> *protocolDelegateTable; -@property (nullable, nonatomic, strong) id<SDLSecurityType> securityManager; -@property (nonatomic, copy) NSString *appId; - -// Sending -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload; -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL success, NSError *error))completionHandler; -- (void)endServiceWithType:(SDLServiceType)serviceType; - -- (void)sendRPC:(SDLRPCMessage *)message; -- (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError **)error; - -- (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType; -- (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType; - -// Recieving -- (void)handleBytesFromTransport:(NSData *)receivedData; - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAbstractProtocol.m b/SmartDeviceLink/SDLAbstractProtocol.m deleted file mode 100644 index 70b482d5e..000000000 --- a/SmartDeviceLink/SDLAbstractProtocol.m +++ /dev/null @@ -1,77 +0,0 @@ -// SDLAbstractProtocol.m - -#import "SDLAbstractProtocol.h" - -#import "SDLRPCMessage.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAbstractProtocol - -- (instancetype)init { - if (self = [super init]) { - _protocolDelegateTable = [NSHashTable weakObjectsHashTable]; - _debugConsoleGroupName = @"default"; - } - return self; -} - -// Implement in subclasses. -- (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)startSecureServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload completionHandler:(void (^)(BOOL, NSError *))completionHandler { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)endServiceWithType:(SDLServiceType)serviceType { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)sendRPC:(SDLRPCMessage *)message { - [self doesNotRecognizeSelector:_cmd]; -} - -- (BOOL)sendRPC:(SDLRPCMessage *)message encrypted:(BOOL)encryption error:(NSError *__autoreleasing *)error { - [self doesNotRecognizeSelector:_cmd]; - return NO; -} - -- (void)handleBytesFromTransport:(NSData *)receivedData { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)sendRawData:(NSData *)data withServiceType:(SDLServiceType)serviceType { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)sendEncryptedRawData:(NSData *)data onService:(SDLServiceType)serviceType { - [self doesNotRecognizeSelector:_cmd]; -} - - -#pragma mark - SDLTransportListener Implementation -- (void)onTransportConnected { - for (id<SDLProtocolListener> listener in self.protocolDelegateTable.allObjects) { - if ([listener respondsToSelector:@selector(onProtocolOpened)]) { - [listener onProtocolOpened]; - } - } -} - -- (void)onTransportDisconnected { - for (id<SDLProtocolListener> listener in self.protocolDelegateTable.allObjects) { - if ([listener respondsToSelector:@selector(onProtocolClosed)]) { - [listener onProtocolClosed]; - } - } -} - -- (void)onDataReceived:(NSData *)receivedData { - [self handleBytesFromTransport:receivedData]; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLAbstractTransport.m b/SmartDeviceLink/SDLAbstractTransport.m deleted file mode 100644 index 4f2657bd2..000000000 --- a/SmartDeviceLink/SDLAbstractTransport.m +++ /dev/null @@ -1,34 +0,0 @@ -// SDLAbstractTransport.m - -#import "SDLAbstractTransport.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLAbstractTransport - -- (instancetype)init { - if (self = [super init]) { - } - return self; -} - -- (void)connect { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)disconnect { - [self doesNotRecognizeSelector:_cmd]; -} - -- (void)sendData:(NSData *)dataToSend { - [self doesNotRecognizeSelector:_cmd]; -} - -- (double)retryDelay { - [self doesNotRecognizeSelector:_cmd]; - return 0.0; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLIAPTransport.h b/SmartDeviceLink/SDLIAPTransport.h index 94fd01bda..06359edb0 100644 --- a/SmartDeviceLink/SDLIAPTransport.h +++ b/SmartDeviceLink/SDLIAPTransport.h @@ -3,16 +3,18 @@ #import <ExternalAccessory/ExternalAccessory.h> -#import "SDLAbstractTransport.h" +#import "SDLTransportType.h" #import "SDLIAPSessionDelegate.h" NS_ASSUME_NONNULL_BEGIN -@interface SDLIAPTransport : SDLAbstractTransport <SDLIAPSessionDelegate> +@interface SDLIAPTransport : NSObject <SDLTransportType, SDLIAPSessionDelegate> @property (nullable, strong, nonatomic) SDLIAPSession *controlSession; @property (nullable, strong, nonatomic) SDLIAPSession *session; +@property (nullable, weak, nonatomic) id<SDLTransportDelegate> delegate; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m index 854e27848..d2d6f2f99 100644 --- a/SmartDeviceLink/SDLLifecycleManager.m +++ b/SmartDeviceLink/SDLLifecycleManager.m @@ -11,7 +11,6 @@ #import "SDLLifecycleManager.h" #import "NSMapTable+Subscripting.h" -#import "SDLAbstractProtocol.h" #import "SDLAsynchronousRPCRequestOperation.h" #import "SDLChangeRegistration.h" #import "SDLConfiguration.h" @@ -35,8 +34,8 @@ #import "SDLOnHMIStatus.h" #import "SDLOnHashChange.h" #import "SDLPermissionManager.h" +#import "SDLProtocol.h" #import "SDLProxy.h" -#import "SDLProxyFactory.h" #import "SDLRPCNotificationNotification.h" #import "SDLRegisterAppInterface.h" #import "SDLRegisterAppInterfaceResponse.h" @@ -203,9 +202,11 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" if (self.configuration.lifecycleConfig.tcpDebugMode) { - self.proxy = [SDLProxyFactory buildSDLProxyWithListener:self.notificationDispatcher tcpIPAddress:self.configuration.lifecycleConfig.tcpDebugIPAddress tcpPort:[@(self.configuration.lifecycleConfig.tcpDebugPort) stringValue]]; + self.proxy = [SDLProxy tcpProxyWithListener:self.notificationDispatcher + tcpIPAddress:self.configuration.lifecycleConfig.tcpDebugIPAddress + tcpPort:@(self.configuration.lifecycleConfig.tcpDebugPort).stringValue]; } else { - self.proxy = [SDLProxyFactory buildSDLProxyWithListener:self.notificationDispatcher]; + self.proxy = [SDLProxy iapProxyWithListener:self.notificationDispatcher]; } #pragma clang diagnostic pop diff --git a/SmartDeviceLink/SDLProtocol.h b/SmartDeviceLink/SDLProtocol.h index a0a4d1ecd..8567c0cf5 100644 --- a/SmartDeviceLink/SDLProtocol.h +++ b/SmartDeviceLink/SDLProtocol.h @@ -1,9 +1,17 @@ // SDLSmartDeviceLinkProtocol.h // -#import "SDLAbstractProtocol.h" +#import <Foundation/Foundation.h> + +#import "SDLTransportType.h" +#import "SDLProtocolConstants.h" +#import "SDLProtocolListener.h" +#import "SDLSecurityType.h" +#import "SDLTransportDelegate.h" + @class SDLProtocolHeader; @class SDLProtocolRecievedMessageRouter; +@class SDLRPCMessage; NS_ASSUME_NONNULL_BEGIN @@ -14,7 +22,13 @@ typedef NS_ENUM(NSUInteger, SDLProtocolError) { extern NSString *const SDLProtocolSecurityErrorDomain; -@interface SDLProtocol : SDLAbstractProtocol <SDLProtocolListener> +@interface SDLProtocol : NSObject <SDLProtocolListener, SDLTransportDelegate> + +@property (strong, nonatomic) NSString *debugConsoleGroupName; +@property (nullable, weak, nonatomic) id<SDLTransportType> transport; +@property (nullable, strong, nonatomic) NSHashTable<id<SDLProtocolListener>> *protocolDelegateTable; +@property (nullable, nonatomic, strong) id<SDLSecurityType> securityManager; +@property (nonatomic, copy) NSString *appId; // Sending - (void)startServiceWithType:(SDLServiceType)serviceType payload:(nullable NSData *)payload; diff --git a/SmartDeviceLink/SDLProtocol.m b/SmartDeviceLink/SDLProtocol.m index 4093dbfa2..89bd5aeb8 100644 --- a/SmartDeviceLink/SDLProtocol.m +++ b/SmartDeviceLink/SDLProtocol.m @@ -4,7 +4,7 @@ #import "SDLFunctionID.h" -#import "SDLAbstractTransport.h" +#import "SDLTransportType.h" #import "SDLControlFramePayloadConstants.h" #import "SDLControlFramePayloadEndService.h" #import "SDLControlFramePayloadNak.h" @@ -63,6 +63,7 @@ NS_ASSUME_NONNULL_BEGIN _receiveQueue = dispatch_queue_create("com.sdl.protocol.receive", DISPATCH_QUEUE_SERIAL); _sendQueue = dispatch_queue_create("com.sdl.protocol.transmit", DISPATCH_QUEUE_SERIAL); _prioritizedCollection = [[SDLPrioritizedObjectCollection alloc] init]; + _protocolDelegateTable = [NSHashTable weakObjectsHashTable]; _serviceHeaders = [[NSMutableDictionary alloc] init]; _messageRouter = [[SDLProtocolReceivedMessageRouter alloc] init]; _messageRouter.delegate = self; @@ -73,6 +74,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Service metadata + - (UInt8)sdl_retrieveSessionIDforServiceType:(SDLServiceType)serviceType { SDLProtocolHeader *header = self.serviceHeaders[@(serviceType)]; if (header == nil) { @@ -82,6 +84,27 @@ NS_ASSUME_NONNULL_BEGIN return header.sessionID; } +#pragma mark - SDLTransportDelegate + +- (void)onTransportConnected { + for (id<SDLProtocolListener> listener in self.protocolDelegateTable.allObjects) { + if ([listener respondsToSelector:@selector(onProtocolOpened)]) { + [listener onProtocolOpened]; + } + } +} + +- (void)onTransportDisconnected { + for (id<SDLProtocolListener> listener in self.protocolDelegateTable.allObjects) { + if ([listener respondsToSelector:@selector(onProtocolClosed)]) { + [listener onProtocolClosed]; + } + } +} + +- (void)onDataReceived:(NSData *)receivedData { + [self handleBytesFromTransport:receivedData]; +} #pragma mark - Start Service diff --git a/SmartDeviceLink/SDLProtocolConstants.h b/SmartDeviceLink/SDLProtocolConstants.h new file mode 100644 index 000000000..642492b35 --- /dev/null +++ b/SmartDeviceLink/SDLProtocolConstants.h @@ -0,0 +1,42 @@ +// +// SDLProtocolConstants.h +// SmartDeviceLink +// +// Created by Joel Fischer on 5/1/18. +// Copyright © 2018 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> + +typedef NS_ENUM(UInt8, SDLFrameType) { + SDLFrameTypeControl = 0x00, + SDLFrameTypeSingle = 0x01, + SDLFrameTypeFirst = 0x02, + SDLFrameTypeConsecutive = 0x03 +}; + +typedef NS_ENUM(UInt8, SDLServiceType) { + SDLServiceTypeControl = 0x00, + SDLServiceTypeRPC NS_SWIFT_NAME(rpc) = 0x07, + SDLServiceTypeAudio = 0x0A, + SDLServiceTypeVideo = 0x0B, + SDLServiceTypeBulkData = 0x0F +}; + +typedef NS_ENUM(UInt8, SDLFrameInfo) { + SDLFrameInfoHeartbeat = 0x00, + SDLFrameInfoStartService = 0x01, + SDLFrameInfoStartServiceACK = 0x02, + SDLFrameInfoStartServiceNACK = 0x03, + SDLFrameInfoEndService = 0x04, + SDLFrameInfoEndServiceACK = 0x05, + SDLFrameInfoEndServiceNACK = 0x06, + SDLFrameInfoServiceDataAck = 0xFE, + SDLFrameInfoHeartbeatACK = 0xFF, + // If frameType == Single (0x01) + SDLFrameInfoSingleFrame = 0x00, + // If frameType == First (0x02) + SDLFrameInfoFirstFrame = 0x00, + // If frametype == Consecutive (0x03) + SDLFrameInfoConsecutiveLastFrame = 0x00 +}; diff --git a/SmartDeviceLink/SDLProtocolConstants.m b/SmartDeviceLink/SDLProtocolConstants.m new file mode 100644 index 000000000..c60de84dc --- /dev/null +++ b/SmartDeviceLink/SDLProtocolConstants.m @@ -0,0 +1,9 @@ +// +// SDLProtocolConstants.m +// SmartDeviceLink +// +// Created by Joel Fischer on 5/1/18. +// Copyright © 2018 smartdevicelink. All rights reserved. +// + +#import "SDLProtocolConstants.h" diff --git a/SmartDeviceLink/SDLProtocolHeader.h b/SmartDeviceLink/SDLProtocolHeader.h index e28539597..716bfd9f3 100644 --- a/SmartDeviceLink/SDLProtocolHeader.h +++ b/SmartDeviceLink/SDLProtocolHeader.h @@ -3,39 +3,7 @@ #import <Foundation/Foundation.h> - -typedef NS_ENUM(UInt8, SDLFrameType) { - SDLFrameTypeControl = 0x00, - SDLFrameTypeSingle = 0x01, - SDLFrameTypeFirst = 0x02, - SDLFrameTypeConsecutive = 0x03 -}; - -typedef NS_ENUM(UInt8, SDLServiceType) { - SDLServiceTypeControl = 0x00, - SDLServiceTypeRPC NS_SWIFT_NAME(rpc) = 0x07, - SDLServiceTypeAudio = 0x0A, - SDLServiceTypeVideo = 0x0B, - SDLServiceTypeBulkData = 0x0F -}; - -typedef NS_ENUM(UInt8, SDLFrameInfo) { - SDLFrameInfoHeartbeat = 0x00, - SDLFrameInfoStartService = 0x01, - SDLFrameInfoStartServiceACK = 0x02, - SDLFrameInfoStartServiceNACK = 0x03, - SDLFrameInfoEndService = 0x04, - SDLFrameInfoEndServiceACK = 0x05, - SDLFrameInfoEndServiceNACK = 0x06, - SDLFrameInfoServiceDataAck = 0xFE, - SDLFrameInfoHeartbeatACK = 0xFF, - // If frameType == Single (0x01) - SDLFrameInfoSingleFrame = 0x00, - // If frameType == First (0x02) - SDLFrameInfoFirstFrame = 0x00, - // If frametype == Consecutive (0x03) - SDLFrameInfoConsecutiveLastFrame = 0x00 -}; +#import "SDLProtocolConstants.h" NS_ASSUME_NONNULL_BEGIN diff --git a/SmartDeviceLink/SDLProxy.h b/SmartDeviceLink/SDLProxy.h index ec9a63960..62cd3f41e 100644 --- a/SmartDeviceLink/SDLProxy.h +++ b/SmartDeviceLink/SDLProxy.h @@ -1,8 +1,6 @@ // SDLProxy.h // -@class SDLAbstractProtocol; -@class SDLAbstractTransport; @class SDLProtocol; @class SDLPutFile; @class SDLRPCMessage; @@ -12,25 +10,26 @@ #import "SDLProtocolListener.h" #import "SDLProxyListener.h" #import "SDLSecurityType.h" +#import "SDLTransportType.h" NS_ASSUME_NONNULL_BEGIN - @interface SDLProxy : NSObject<SDLProtocolListener, NSStreamDelegate> { +@interface SDLProxy : NSObject <SDLProtocolListener, NSStreamDelegate> { Byte _version; Byte _bulkSessionID; BOOL _isConnected; } -@property (nullable, strong, nonatomic) SDLAbstractProtocol *protocol; -@property (nullable, strong, nonatomic) SDLAbstractTransport *transport; +@property (nullable, strong, nonatomic) SDLProtocol *protocol; +@property (nullable, strong, nonatomic) id<SDLTransportType> transport; @property (readonly, copy, nonatomic) NSSet<NSObject<SDLProxyListener> *> *proxyListeners; @property (strong, nonatomic) SDLTimer *startSessionTimer; -@property (copy, nonatomic) NSString *debugConsoleGroupName; @property (readonly, copy, nonatomic) NSString *proxyVersion; -- (id)initWithTransport:(SDLAbstractTransport *)transport - protocol:(SDLAbstractProtocol *)protocol - delegate:(NSObject<SDLProxyListener> *)delegate; +- (id)initWithTransport:(id<SDLTransportType>)transport delegate:(id<SDLProxyListener>)delegate; + ++ (SDLProxy *)iapProxyWithListener:(id<SDLProxyListener>)delegate; ++ (SDLProxy *)tcpProxyWithListener:(id<SDLProxyListener>)delegate tcpIPAddress:(NSString *)ipaddress tcpPort:(NSString *)port; - (void)addDelegate:(NSObject<SDLProxyListener> *)delegate; - (void)removeDelegate:(NSObject<SDLProxyListener> *)delegate; diff --git a/SmartDeviceLink/SDLProxy.m b/SmartDeviceLink/SDLProxy.m index cc2a5f7ff..2fe4b9253 100644 --- a/SmartDeviceLink/SDLProxy.m +++ b/SmartDeviceLink/SDLProxy.m @@ -6,7 +6,7 @@ #import <UIKit/UIKit.h> #import <objc/runtime.h> -#import "SDLAbstractTransport.h" +#import "SDLTransportType.h" #import "SDLAudioStreamingState.h" #import "SDLLogMacros.h" #import "SDLEncodedSyncPData.h" @@ -14,10 +14,10 @@ #import "SDLFunctionID.h" #import "SDLGlobals.h" #import "SDLHMILevel.h" +#import "SDLIAPTransport.h" #import "SDLLanguage.h" #import "SDLLayoutMode.h" #import "SDLLockScreenStatusManager.h" - #import "SDLOnHMIStatus.h" #import "SDLOnSystemRequest.h" #import "SDLPolicyDataParser.h" @@ -31,6 +31,7 @@ #import "SDLStreamingMediaManager.h" #import "SDLSystemContext.h" #import "SDLSystemRequest.h" +#import "SDLTCPTransport.h" #import "SDLTimer.h" #import "SDLVehicleType.h" @@ -64,18 +65,18 @@ static float DefaultConnectionTimeout = 45.0; @implementation SDLProxy #pragma mark - Object lifecycle -- (instancetype)initWithTransport:(SDLAbstractTransport *)transport protocol:(SDLAbstractProtocol *)protocol delegate:(NSObject<SDLProxyListener> *)theDelegate { +- (instancetype)initWithTransport:(id<SDLTransportType>)transport delegate:(id<SDLProxyListener>)delegate { if (self = [super init]) { SDLLogD(@"Framework Version: %@", self.proxyVersion); - _debugConsoleGroupName = @"default"; _lsm = [[SDLLockScreenStatusManager alloc] init]; _rpcProcessingQueue = dispatch_queue_create("com.sdl.rpcProcessingQueue", DISPATCH_QUEUE_SERIAL); - - _mutableProxyListeners = [NSMutableSet setWithObject:theDelegate]; + _mutableProxyListeners = [NSMutableSet setWithObject:delegate]; _securityManagers = [NSMutableDictionary dictionary]; - _protocol = protocol; + + _protocol = [[SDLProtocol alloc] init]; _transport = transport; - _transport.delegate = protocol; + _transport.delegate = _protocol; + [_protocol.protocolDelegateTable addObject:self]; _protocol.transport = transport; @@ -96,6 +97,21 @@ static float DefaultConnectionTimeout = 45.0; return self; } ++ (SDLProxy *)iapProxyWithListener:(id<SDLProxyListener>)delegate { + SDLIAPTransport *transport = [[SDLIAPTransport alloc] init]; + SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport delegate:delegate]; + + return ret; +} + ++ (SDLProxy *)tcpProxyWithListener:(id<SDLProxyListener>)delegate tcpIPAddress:(NSString *)ipaddress tcpPort:(NSString *)port { + SDLTCPTransport *transport = [[SDLTCPTransport alloc] initWithHostName:ipaddress portNumber:port]; + + SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport delegate:delegate]; + + return ret; +} + - (void)dealloc { if (self.protocol.securityManager != nil) { [self.protocol.securityManager stop]; diff --git a/SmartDeviceLink/SDLProxyFactory.h b/SmartDeviceLink/SDLProxyFactory.h deleted file mode 100644 index f5448d4c4..000000000 --- a/SmartDeviceLink/SDLProxyFactory.h +++ /dev/null @@ -1,22 +0,0 @@ -// SDLProxyFactory.h -// - -#import <Foundation/Foundation.h> - -#import "SDLProxyListener.h" - -@class SDLProxy; - -NS_ASSUME_NONNULL_BEGIN - -@interface SDLProxyFactory : NSObject { -} - -+ (SDLProxy *)buildSDLProxyWithListener:(NSObject<SDLProxyListener> *)listener; - -+ (SDLProxy *)buildSDLProxyWithListener:(NSObject<SDLProxyListener> *)listener - tcpIPAddress:(NSString *)ipaddress - tcpPort:(NSString *)port; -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLProxyFactory.m b/SmartDeviceLink/SDLProxyFactory.m deleted file mode 100644 index 3a703e073..000000000 --- a/SmartDeviceLink/SDLProxyFactory.m +++ /dev/null @@ -1,39 +0,0 @@ -// SDLSyncProxyFactory.m -// - -#import "SDLProxyFactory.h" - -#import "SDLIAPTransport.h" -#import "SDLProtocol.h" -#import "SDLProxy.h" -#import "SDLTCPTransport.h" - -NS_ASSUME_NONNULL_BEGIN - -@implementation SDLProxyFactory - -+ (SDLProxy *)buildSDLProxyWithListener:(NSObject<SDLProxyListener> *)delegate { - SDLIAPTransport *transport = [[SDLIAPTransport alloc] init]; - SDLProtocol *protocol = [[SDLProtocol alloc] init]; - SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport protocol:protocol delegate:delegate]; - - return ret; -} - -+ (SDLProxy *)buildSDLProxyWithListener:(NSObject<SDLProxyListener> *)delegate - tcpIPAddress:(NSString *)ipaddress - tcpPort:(NSString *)port { - SDLTCPTransport *transport = [[SDLTCPTransport alloc] init]; - transport.hostName = ipaddress; - transport.portNumber = port; - - SDLProtocol *protocol = [[SDLProtocol alloc] init]; - - SDLProxy *ret = [[SDLProxy alloc] initWithTransport:transport protocol:protocol delegate:delegate]; - - return ret; -} - -@end - -NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.h b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.h index 008cb2a01..6456e125f 100644 --- a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.h +++ b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.h @@ -15,10 +15,10 @@ #import "SDLStreamingAudioManagerType.h" #import "SDLStreamingMediaManagerConstants.h" -@class SDLAbstractProtocol; @class SDLAudioStreamManager; @class SDLCarWindow; @class SDLImageResolution; +@class SDLProtocol; @class SDLStateMachine; @class SDLStreamingMediaConfiguration; @class SDLTouchManager; @@ -177,7 +177,7 @@ extern SDLAudioStreamState *const SDLAudioStreamStateShuttingDown; /** * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. */ -- (void)startWithProtocol:(SDLAbstractProtocol *)protocol; +- (void)startWithProtocol:(SDLProtocol *)protocol; /** * Stop the manager. This method is used internally. diff --git a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m index 73e2c37fb..ddb617d3a 100644 --- a/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m +++ b/SmartDeviceLink/SDLStreamingMediaLifecycleManager.m @@ -8,7 +8,6 @@ #import "SDLStreamingMediaLifecycleManager.h" -#import "SDLAbstractProtocol.h" #import "SDLAudioStreamManager.h" #import "SDLCarWindow.h" #import "SDLControlFramePayloadAudioStartServiceAck.h" @@ -28,6 +27,7 @@ #import "SDLLogMacros.h" #import "SDLNotificationConstants.h" #import "SDLOnHMIStatus.h" +#import "SDLProtocol.h" #import "SDLProtocolMessage.h" #import "SDLRegisterAppInterfaceResponse.h" #import "SDLRPCNotificationNotification.h" @@ -70,7 +70,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N @interface SDLStreamingMediaLifecycleManager () <SDLVideoEncoderDelegate> @property (weak, nonatomic) id<SDLConnectionManagerType> connectionManager; -@property (weak, nonatomic) SDLAbstractProtocol *protocol; +@property (weak, nonatomic) SDLProtocol *protocol; @property (assign, nonatomic, readonly, getter=isAppStateVideoStreamCapable) BOOL appStateVideoStreamCapable; @property (assign, nonatomic, readonly, getter=isHmiStateAudioStreamCapable) BOOL hmiStateAudioStreamCapable; @@ -170,7 +170,7 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N return self; } -- (void)startWithProtocol:(SDLAbstractProtocol *)protocol { +- (void)startWithProtocol:(SDLProtocol *)protocol { _protocol = protocol; if (![self.protocol.protocolDelegateTable containsObject:self]) { diff --git a/SmartDeviceLink/SDLStreamingMediaManager.h b/SmartDeviceLink/SDLStreamingMediaManager.h index 76f4ab8a2..bad1d90e3 100644 --- a/SmartDeviceLink/SDLStreamingMediaManager.h +++ b/SmartDeviceLink/SDLStreamingMediaManager.h @@ -12,8 +12,8 @@ #import "SDLStreamingAudioManagerType.h" #import "SDLStreamingMediaManagerConstants.h" -@class SDLAbstractProtocol; @class SDLAudioStreamManager; +@class SDLProtocol; @class SDLStreamingMediaConfiguration; @class SDLTouchManager; @class SDLVideoStreamingFormat; @@ -120,7 +120,7 @@ NS_ASSUME_NONNULL_BEGIN /** * Start the manager with a completion block that will be called when startup completes. This is used internally. To use an SDLStreamingMediaManager, you should use the manager found on `SDLManager`. */ -- (void)startWithProtocol:(SDLAbstractProtocol *)protocol; +- (void)startWithProtocol:(SDLProtocol *)protocol; /** * Stop the manager. This method is used internally. diff --git a/SmartDeviceLink/SDLStreamingMediaManager.m b/SmartDeviceLink/SDLStreamingMediaManager.m index 4a0b08b28..ade1165e7 100644 --- a/SmartDeviceLink/SDLStreamingMediaManager.m +++ b/SmartDeviceLink/SDLStreamingMediaManager.m @@ -41,7 +41,7 @@ NS_ASSUME_NONNULL_BEGIN return self; } -- (void)startWithProtocol:(SDLAbstractProtocol *)protocol { +- (void)startWithProtocol:(SDLProtocol *)protocol { [self.lifecycleManager startWithProtocol:protocol]; } diff --git a/SmartDeviceLink/SDLTCPTransport.h b/SmartDeviceLink/SDLTCPTransport.h index ed8da7e41..66a526da4 100644 --- a/SmartDeviceLink/SDLTCPTransport.h +++ b/SmartDeviceLink/SDLTCPTransport.h @@ -1,16 +1,19 @@ // SDLTCPTransport.h // -#import "SDLAbstractTransport.h" +#import "SDLTransportType.h" NS_ASSUME_NONNULL_BEGIN -@interface SDLTCPTransport : SDLAbstractTransport { +@interface SDLTCPTransport : NSObject <SDLTransportType> { _Nullable CFSocketRef socket; } +- (instancetype)initWithHostName:(NSString *)hostName portNumber:(NSString *)portNumber; + @property (strong, nonatomic) NSString *hostName; @property (strong, nonatomic) NSString *portNumber; +@property (nullable, weak, nonatomic) id<SDLTransportDelegate> delegate; @end diff --git a/SmartDeviceLink/SDLTCPTransport.m b/SmartDeviceLink/SDLTCPTransport.m index 920af4d38..b8b0a9520 100644 --- a/SmartDeviceLink/SDLTCPTransport.m +++ b/SmartDeviceLink/SDLTCPTransport.m @@ -41,6 +41,16 @@ static void TCPCallback(CFSocketRef socket, CFSocketCallBackType type, CFDataRef return self; } +- (instancetype)initWithHostName:(NSString *)hostName portNumber:(NSString *)portNumber { + self = [self init]; + if (!self) { return nil; } + + _hostName = hostName; + _portNumber = portNumber; + + return self; +} + - (void)dealloc { [self disconnect]; } diff --git a/SmartDeviceLink/SDLAbstractTransport.h b/SmartDeviceLink/SDLTransportType.h index 0273b8425..5d516808d 100644 --- a/SmartDeviceLink/SDLAbstractTransport.h +++ b/SmartDeviceLink/SDLTransportType.h @@ -1,4 +1,4 @@ -// SDLAbstractTransport.h +// SDLTransportType.h #import <Foundation/Foundation.h> @@ -6,15 +6,13 @@ NS_ASSUME_NONNULL_BEGIN -@interface SDLAbstractTransport : NSObject +@protocol SDLTransportType <NSObject> @property (nullable, weak, nonatomic) id<SDLTransportDelegate> delegate; -@property (strong, nonatomic) NSString *debugConsoleGroupName; - (void)connect; - (void)disconnect; - (void)sendData:(NSData *)dataToSend; -- (double)retryDelay; @end diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m index dd2f11dbf..acdcb833c 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleManagerSpec.m @@ -19,7 +19,6 @@ #import "SDLOnHMIStatus.h" #import "SDLPermissionManager.h" #import "SDLProxy.h" -#import "SDLProxyFactory.h" #import "SDLProtocol.h" #import "SDLRegisterAppInterface.h" #import "SDLRegisterAppInterfaceResponse.h" @@ -63,8 +62,7 @@ describe(@"a lifecycle manager", ^{ __block SDLLifecycleManager *testManager = nil; __block SDLConfiguration *testConfig = nil; - __block id protocolMock = OCMClassMock([SDLAbstractProtocol class]); - __block id proxyBuilderClassMock = OCMStrictClassMock([SDLProxyFactory class]); + __block id protocolMock = OCMClassMock([SDLProtocol class]); __block id proxyMock = OCMClassMock([SDLProxy class]); __block id lockScreenManagerMock = OCMClassMock([SDLLockScreenManager class]); __block id fileManagerMock = OCMClassMock([SDLFileManager class]); @@ -73,7 +71,7 @@ describe(@"a lifecycle manager", ^{ __block id systemCapabilityMock = OCMClassMock([SDLSystemCapabilityManager class]); beforeEach(^{ - OCMStub([proxyBuilderClassMock buildSDLProxyWithListener:[OCMArg any]]).andReturn(proxyMock); + OCMStub([proxyMock iapProxyWithListener:[OCMArg any]]).andReturn(proxyMock); OCMStub([(SDLProxy*)proxyMock protocol]).andReturn(protocolMock); SDLLifecycleConfiguration *testLifecycleConfig = [SDLLifecycleConfiguration defaultConfigurationWithAppName:@"Test App" appId:@"Test Id"]; diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m index 68678e230..abf411bde 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m @@ -309,6 +309,10 @@ describe(@"menu manager", ^{ }); }); }); + + afterEach(^{ + testManager = nil; + }); }); QuickSpecEnd diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m index 8adb0a6ad..410d24386 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLResponseDispatcherSpec.m @@ -273,6 +273,7 @@ describe(@"a response dispatcher", ^{ beforeEach(^{ testOnCommand = [[SDLOnCommand alloc] init]; testOnCommand.cmdID = @(testCommandId); + testOnCommand.triggerSource = SDLTriggerSourceMenu; SDLRPCNotificationNotification *commandNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveCommandNotification object:nil rpcNotification:testOnCommand]; diff --git a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m index 635dea80d..4131fed51 100644 --- a/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m +++ b/SmartDeviceLinkTests/ProtocolSpecs/MessageSpecs/SDLProtocolSpec.m @@ -9,7 +9,7 @@ #import <Nimble/Nimble.h> #import <OCMock/OCMock.h> -#import "SDLAbstractTransport.h" +#import "SDLTransportType.h" #import "SDLProtocolHeader.h" #import "SDLProtocol.h" #import "SDLProtocolMessage.h" @@ -38,7 +38,7 @@ describe(@"Send StartService Tests", ^ { SDLProtocol* testProtocol = [[SDLProtocol alloc] init]; __block BOOL verified = NO; - id transportMock = OCMClassMock([SDLAbstractTransport class]); + id transportMock = OCMProtocolMock(@protocol(SDLTransportType)); [[[transportMock stub] andDo:^(NSInvocation* invocation) { verified = YES; @@ -77,7 +77,7 @@ describe(@"Send EndSession Tests", ^ { [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; __block BOOL verified = NO; - id transportMock = OCMClassMock([SDLAbstractTransport class]); + id transportMock = OCMProtocolMock(@protocol(SDLTransportType)); [[[transportMock stub] andDo:^(NSInvocation* invocation) { verified = YES; @@ -106,7 +106,7 @@ describe(@"Send EndSession Tests", ^ { [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; __block BOOL verified = NO; - id transportMock = OCMClassMock([SDLAbstractTransport class]); + id transportMock = OCMProtocolMock(@protocol(SDLTransportType)); [[[transportMock stub] andDo:^(NSInvocation* invocation) { verified = YES; @@ -144,7 +144,7 @@ describe(@"SendRPCRequest Tests", ^ { [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; __block BOOL verified = NO; - id transportMock = OCMClassMock([SDLAbstractTransport class]); + id transportMock = OCMProtocolMock(@protocol(SDLTransportType)); [[[transportMock stub] andDo:^(NSInvocation* invocation) { verified = YES; @@ -184,7 +184,7 @@ describe(@"SendRPCRequest Tests", ^ { [testProtocol handleProtocolStartServiceACKMessage:[SDLProtocolMessage messageWithHeader:testHeader andPayload:nil]]; __block BOOL verified = NO; - id transportMock = OCMClassMock([SDLAbstractTransport class]); + id transportMock = OCMProtocolMock(@protocol(SDLTransportType)); [[[transportMock stub] andDo:^(NSInvocation* invocation) { verified = YES; diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLAbstractProtocolSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLAbstractProtocolSpec.m deleted file mode 100644 index 38d6f3c03..000000000 --- a/SmartDeviceLinkTests/ProtocolSpecs/SDLAbstractProtocolSpec.m +++ /dev/null @@ -1,57 +0,0 @@ -// -// SDLAbstractProtocolSpec.m -// SmartDeviceLink-iOS - - -#import <Foundation/Foundation.h> - -#import <Quick/Quick.h> -#import <Nimble/Nimble.h> -#import <OCMock/OCMock.h> - -#import "SDLAbstractProtocol.h" -#import "SDLProtocolListener.h" - -QuickSpecBegin(SDLAbstractProtocolSpec) - -xdescribe(@"OnTransportConnected Tests", ^ { - it(@"Should invoke the correct method", ^ { - id delegateMock = OCMProtocolMock(@protocol(SDLProtocolListener)); - - SDLAbstractProtocol* abstractProtocol = [[SDLAbstractProtocol alloc] init]; - [abstractProtocol.protocolDelegateTable addObject:delegateMock]; - - __block BOOL verified = NO; - [[[delegateMock stub] andDo:^(NSInvocation* invocation) {verified = YES;}] onProtocolOpened]; - - [abstractProtocol onTransportConnected]; - - //Verifications don't work with Nimble at this point - //OCMVerify([delegateMock onProtocolOpened]); - - //Workaround for now - expect(@(verified)).to(beTruthy()); - }); -}); - -xdescribe(@"OnTransportDisconnected Tests", ^ { - it(@"Should invoke the correct method", ^ { - id delegateMock = OCMProtocolMock(@protocol(SDLProtocolListener)); - - SDLAbstractProtocol* abstractProtocol = [[SDLAbstractProtocol alloc] init]; - [abstractProtocol.protocolDelegateTable addObject:delegateMock]; - - __block BOOL verified = NO; - [[[delegateMock stub] andDo:^(NSInvocation* invocation) {verified = YES;}] onProtocolClosed]; - - [abstractProtocol onTransportDisconnected]; - - //Verifications don't work with Nimble at this point - //OCMVerify([delegateMock onProtocolClosed]); - - //Workaround for now - expect(@(verified)).to(beTruthy()); - }); -}); - -QuickSpecEnd diff --git a/SmartDeviceLinkTests/SDLStreamingMediaLifecycleManagerSpec.m b/SmartDeviceLinkTests/SDLStreamingMediaLifecycleManagerSpec.m index c33499ecc..9a1ebc2f0 100644 --- a/SmartDeviceLinkTests/SDLStreamingMediaLifecycleManagerSpec.m +++ b/SmartDeviceLinkTests/SDLStreamingMediaLifecycleManagerSpec.m @@ -101,7 +101,7 @@ describe(@"the streaming media manager", ^{ __block BOOL readyHandlerSuccess = NO; __block NSError *readyHandlerError = nil; - __block id protocolMock = OCMClassMock([SDLAbstractProtocol class]); + __block id protocolMock = OCMClassMock([SDLProtocol class]); beforeEach(^{ readyHandlerSuccess = NO; |