summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackLivio <jack@livio.io>2019-01-30 14:11:12 -0500
committerJackLivio <jack@livio.io>2019-01-30 14:11:12 -0500
commit59e638c2ae6722b07e70423eff9d3eb44c9581bb (patch)
treeb83d53c524baf51b94c49c15800f840a29e13cc1
parent2f5fe1b89dc6d15fb9bb2e42083db23edf3de276 (diff)
parentc0bc15dbfcf78eaa3bcecb34b28fe98a5c9a1757 (diff)
downloadsdl_core-59e638c2ae6722b07e70423eff9d3eb44c9581bb.tar.gz
Merge remote-tracking branch 'origin/feature/base_app_services_implementation' into feature/app_service_policies
-rw-r--r--src/appMain/sdl_preloaded_pt.json12
-rw-r--r--src/components/application_manager/include/application_manager/app_service_manager.h3
-rw-r--r--src/components/application_manager/include/application_manager/application_manager_impl.h3
-rw-r--r--src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_request.cc9
-rw-r--r--src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_request.cc8
-rw-r--r--src/components/application_manager/src/app_service_manager.cc13
-rw-r--r--src/components/include/application_manager/application_manager.h2
-rw-r--r--src/components/include/test/application_manager/mock_application_manager.h3
-rw-r--r--src/components/policy/policy_external/include/policy/policy_table/enums.h5
-rw-r--r--src/components/policy/policy_external/src/policy_table/enums.cc5
-rw-r--r--src/components/policy/policy_regular/include/policy/policy_table/enums.h5
-rw-r--r--src/components/policy/policy_regular/src/policy_table/enums.cc9
12 files changed, 54 insertions, 23 deletions
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/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..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 application_manager::AppServiceManager& GetAppServiceManager()
- OVERRIDE {
+ 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 c19cd22859..f975cb0543 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);
std::string requested_service_name =
(*message_)[strings::msg_params][strings::app_service_manifest]
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<std::string, smart_objects::SmartObject>(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<std::string, smart_objects::SmartObject>(
+ 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<RPCPluginManager>& plugin_manager));
- MOCK_METHOD0(GetAppServiceManager, AppServiceManager&());
+ MOCK_METHOD0(GetAppServiceManager, application_manager::AppServiceManager&());
MOCK_CONST_METHOD1(
application_by_hmi_app,
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
@@ -446,6 +446,11 @@ enum FunctionID {
SetCloudAppPropertiesID = 50,
/**
+ * @brief PublishAppServiceID
+ */
+ PublishAppServiceID = 52,
+
+ /**
* @brief OnHMIStatusID.
*/
OnHMIStatusID = 32768,
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
@@ -432,6 +432,11 @@ enum FunctionID {
SetCloudAppPropertiesID = 50,
/**
+ * @brief PublishAppServiceID
+ */
+ PublishAppServiceID = 52,
+
+ /**
* @brief OnHMIStatusID.
*/
OnHMIStatusID = 32768,
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;