From 1a1a91088051a6a0d2ac856bb810df3621499a9f Mon Sep 17 00:00:00 2001 From: jacobkeeler Date: Thu, 24 Jan 2019 10:34:39 -0500 Subject: Update PublishAppService in AppServiceManager --- .../include/application_manager/app_service_manager.h | 3 ++- .../include/application_manager/application_manager_impl.h | 2 +- .../src/commands/hmi/as_publish_app_service_request.cc | 9 +++------ .../src/commands/mobile/publish_app_service_request.cc | 8 ++------ .../application_manager/src/app_service_manager.cc | 13 +++++++++---- .../include/application_manager/application_manager.h | 2 +- .../test/application_manager/mock_application_manager.h | 3 +-- 7 files changed, 19 insertions(+), 21 deletions(-) diff --git a/src/components/application_manager/include/application_manager/app_service_manager.h b/src/components/application_manager/include/application_manager/app_service_manager.h index afbf9b8dcd..a15921d9f7 100644 --- a/src/components/application_manager/include/application_manager/app_service_manager.h +++ b/src/components/application_manager/include/application_manager/app_service_manager.h @@ -59,7 +59,8 @@ class AppServiceManager { * @brief TODO * @param manifest */ - bool PublishAppService(const smart_objects::SmartObject& manifest); + smart_objects::SmartObject PublishAppService( + const smart_objects::SmartObject& manifest); /** * @brief TODO diff --git a/src/components/application_manager/include/application_manager/application_manager_impl.h b/src/components/application_manager/include/application_manager/application_manager_impl.h index 418161b0ff..fcdc7dc966 100644 --- a/src/components/application_manager/include/application_manager/application_manager_impl.h +++ b/src/components/application_manager/include/application_manager/application_manager_impl.h @@ -213,7 +213,7 @@ class ApplicationManagerImpl return *plugin_manager_; } - virtual application_manager::AppServiceManager& GetAppServiceManager() + virtual AppServiceManager& GetAppServiceManager() OVERRIDE { DCHECK(app_service_manager_); return *app_service_manager_; diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc index 835762f78a..1e235c1282 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc @@ -80,17 +80,14 @@ void ASPublishAppServiceRequest::Run() { LOG4CXX_AUTO_TRACE(logger_); smart_objects::SmartObject response_params = smart_objects::SmartObject(smart_objects::SmartType_Map); - smart_objects::SmartObject service_record = - smart_objects::SmartObject(smart_objects::SmartType_Map); smart_objects::SmartObject manifest = (*message_)[strings::msg_params][strings::app_service_manifest]; if (!ValidateManifest(manifest)) { return; } - service_record[strings::service_manifest] = manifest; - service_record[strings::service_id] = "This is a service ID"; - service_record[strings::service_published] = true; - service_record[strings::service_active] = true; + smart_objects::SmartObject service_record = + application_manager_.GetAppServiceManager().PublishAppService(manifest); + response_params[strings::app_service_record] = service_record; // TODO: Add AppServiceRecord to response SendResponse(true, diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_request.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_request.cc index b22d0a8c6e..bf1fbae4f5 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_request.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_request.cc @@ -84,17 +84,13 @@ void PublishAppServiceRequest::Run() { smart_objects::SmartObject response_params = smart_objects::SmartObject(smart_objects::SmartType_Map); - smart_objects::SmartObject service_record = - smart_objects::SmartObject(smart_objects::SmartType_Map); smart_objects::SmartObject manifest = (*message_)[strings::msg_params][strings::app_service_manifest]; if (!ValidateManifest(manifest)) { return; } - service_record[strings::service_manifest] = manifest; - service_record[strings::service_id] = "This is a service ID"; - service_record[strings::service_published] = true; - service_record[strings::service_active] = true; + smart_objects::SmartObject service_record = + application_manager_.GetAppServiceManager().PublishAppService(manifest); response_params[strings::app_service_record] = service_record; diff --git a/src/components/application_manager/src/app_service_manager.cc b/src/components/application_manager/src/app_service_manager.cc index 2c5a31e86e..d11203feec 100644 --- a/src/components/application_manager/src/app_service_manager.cc +++ b/src/components/application_manager/src/app_service_manager.cc @@ -58,12 +58,17 @@ AppServiceManager::~AppServiceManager() { LOG4CXX_AUTO_TRACE(logger_); } -bool AppServiceManager::PublishAppService( +smart_objects::SmartObject AppServiceManager::PublishAppService( const smart_objects::SmartObject& manifest) { std::string service_id = "SERVICE_UUID"; // TODO: Generate UUID - published_services_.insert( - std::pair(service_id, manifest)); - return true; + smart_objects::SmartObject service_record; + service_record[strings::service_manifest] = manifest; + service_record[strings::service_id] = service_id; + service_record[strings::service_published] = true; + service_record[strings::service_active] = true; + published_services_.insert(std::pair( + service_id, service_record)); + return service_record; } bool AppServiceManager::UnpublishAppService(const std::string service_id) { diff --git a/src/components/include/application_manager/application_manager.h b/src/components/include/application_manager/application_manager.h index adb47c8a99..b542a66b83 100644 --- a/src/components/include/application_manager/application_manager.h +++ b/src/components/include/application_manager/application_manager.h @@ -189,7 +189,7 @@ class ApplicationManager { virtual plugin_manager::RPCPluginManager& GetPluginManager() = 0; - virtual application_manager::AppServiceManager& GetAppServiceManager() = 0; + virtual AppServiceManager& GetAppServiceManager() = 0; #ifdef BUILD_TESTS virtual void SetPluginManager( diff --git a/src/components/include/test/application_manager/mock_application_manager.h b/src/components/include/test/application_manager/mock_application_manager.h index 582884e1e7..04029adda3 100644 --- a/src/components/include/test/application_manager/mock_application_manager.h +++ b/src/components/include/test/application_manager/mock_application_manager.h @@ -59,7 +59,6 @@ namespace test { namespace components { namespace application_manager_test { using application_manager::plugin_manager::RPCPluginManager; -using application_manager::AppServiceManager; class MockApplicationManager : public application_manager::ApplicationManager { public: @@ -92,7 +91,7 @@ class MockApplicationManager : public application_manager::ApplicationManager { MOCK_METHOD1(SetPluginManager, void(std::unique_ptr& plugin_manager)); - MOCK_METHOD0(GetAppServiceManager, AppServiceManager&()); + MOCK_METHOD0(GetAppServiceManager, application_manager::AppServiceManager&()); MOCK_CONST_METHOD1( application_by_hmi_app, -- cgit v1.2.1 From 476f1de934d912b6f2fb6bffbe9d3597b1240d5a Mon Sep 17 00:00:00 2001 From: ShobhitAd Date: Mon, 28 Jan 2019 23:45:22 -0500 Subject: Add PublishAppService to policies --- src/appMain/sdl_preloaded_pt.json | 12 +++++++++++- .../policy_external/include/policy/policy_table/enums.h | 5 +++++ .../policy/policy_external/src/policy_table/enums.cc | 5 +++++ .../policy_regular/include/policy/policy_table/enums.h | 5 +++++ .../policy/policy_regular/src/policy_table/enums.cc | 9 +++++++++ 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/appMain/sdl_preloaded_pt.json b/src/appMain/sdl_preloaded_pt.json index 3c84fc96bd..06ab56bc39 100644 --- a/src/appMain/sdl_preloaded_pt.json +++ b/src/appMain/sdl_preloaded_pt.json @@ -574,6 +574,16 @@ } } }, + "AppService":{ + "rpcs":{ + "PublishAppService":{ + "hmi_levels":["BACKGROUND", + "FULL", + "LIMITED", + "NONE"] + } + } + }, "RemoteControl": { "rpcs": { "ButtonPress": { @@ -2414,7 +2424,7 @@ "steal_focus": false, "priority": "NONE", "default_hmi": "NONE", - "groups": ["Base-4"], + "groups": ["Base-4", "AppService"], "RequestType": [], "RequestSubType": [] }, diff --git a/src/components/policy/policy_external/include/policy/policy_table/enums.h b/src/components/policy/policy_external/include/policy/policy_table/enums.h index 5b494629bb..0b571823f9 100644 --- a/src/components/policy/policy_external/include/policy/policy_table/enums.h +++ b/src/components/policy/policy_external/include/policy/policy_table/enums.h @@ -445,6 +445,11 @@ enum FunctionID { */ SetCloudAppPropertiesID = 50, + /** + * @brief PublishAppServiceID + */ + PublishAppServiceID = 52, + /** * @brief OnHMIStatusID. */ diff --git a/src/components/policy/policy_external/src/policy_table/enums.cc b/src/components/policy/policy_external/src/policy_table/enums.cc index d7d5a241de..72dd7aea72 100644 --- a/src/components/policy/policy_external/src/policy_table/enums.cc +++ b/src/components/policy/policy_external/src/policy_table/enums.cc @@ -1126,6 +1126,11 @@ bool EnumFromJsonString(const std::string& literal, FunctionID* result) { return true; } + if ("PublishAppService" == literal) { + *result = PublishAppServiceID; + return true; + } + if ("OnHMIStatus" == literal) { *result = OnHMIStatusID; return true; diff --git a/src/components/policy/policy_regular/include/policy/policy_table/enums.h b/src/components/policy/policy_regular/include/policy/policy_table/enums.h index 563e822a36..f8f4e9e029 100644 --- a/src/components/policy/policy_regular/include/policy/policy_table/enums.h +++ b/src/components/policy/policy_regular/include/policy/policy_table/enums.h @@ -431,6 +431,11 @@ enum FunctionID { */ SetCloudAppPropertiesID = 50, + /** + * @brief PublishAppServiceID + */ + PublishAppServiceID = 52, + /** * @brief OnHMIStatusID. */ diff --git a/src/components/policy/policy_regular/src/policy_table/enums.cc b/src/components/policy/policy_regular/src/policy_table/enums.cc index 91d0a6990f..f53b27776d 100644 --- a/src/components/policy/policy_regular/src/policy_table/enums.cc +++ b/src/components/policy/policy_regular/src/policy_table/enums.cc @@ -849,6 +849,8 @@ bool IsValidEnum(FunctionID val) { return true; case SetCloudAppPropertiesID: return true; + case PublishAppServiceID: + return true; case OnHMIStatusID: return true; case OnAppInterfaceUnregisteredID: @@ -998,6 +1000,8 @@ const char* EnumToJsonString(FunctionID val) { return "SendHapticData"; case SetCloudAppPropertiesID: return "SetCloudAppProperties"; + case PublishAppServiceID: + return "PublishAppService"; case OnHMIStatusID: return "OnHMIStatus"; case OnAppInterfaceUnregisteredID: @@ -1292,6 +1296,11 @@ bool EnumFromJsonString(const std::string& literal, FunctionID* result) { return true; } + if ("PublishAppService" == literal) { + *result = PublishAppServiceID; + return true; + } + if ("OnHMIStatus" == literal) { *result = OnHMIStatusID; return true; -- cgit v1.2.1 From c0bc15dbfcf78eaa3bcecb34b28fe98a5c9a1757 Mon Sep 17 00:00:00 2001 From: ShobhitAd Date: Tue, 29 Jan 2019 11:43:27 -0500 Subject: Style fix --- .../include/application_manager/application_manager_impl.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/application_manager/include/application_manager/application_manager_impl.h b/src/components/application_manager/include/application_manager/application_manager_impl.h index fcdc7dc966..f72b02e320 100644 --- a/src/components/application_manager/include/application_manager/application_manager_impl.h +++ b/src/components/application_manager/include/application_manager/application_manager_impl.h @@ -213,8 +213,7 @@ class ApplicationManagerImpl return *plugin_manager_; } - virtual AppServiceManager& GetAppServiceManager() - OVERRIDE { + virtual AppServiceManager& GetAppServiceManager() OVERRIDE { DCHECK(app_service_manager_); return *app_service_manager_; } -- cgit v1.2.1