diff options
author | JackLivio <jack@livio.io> | 2019-02-13 10:55:30 -0500 |
---|---|---|
committer | JackLivio <jack@livio.io> | 2019-02-13 10:55:30 -0500 |
commit | 26d4a6ac85727082682dae72d85a73d3df117fea (patch) | |
tree | f6b85e30acb6d12226b020bce5db0d474a4eb95d | |
parent | e114b44bb0d240bfa42a406ae1a217a8250da3e5 (diff) | |
parent | cc8cd684d68306a3c09436a6ae8ab7ec70df1a94 (diff) | |
download | sdl_core-26d4a6ac85727082682dae72d85a73d3df117fea.tar.gz |
Merge remote-tracking branch 'origin/feature/base_app_services_implementation' into feature/app_service_policies
18 files changed, 169 insertions, 43 deletions
diff --git a/src/appMain/hmi_capabilities.json b/src/appMain/hmi_capabilities.json index 93292d1023..873c80d32e 100755 --- a/src/appMain/hmi_capabilities.json +++ b/src/appMain/hmi_capabilities.json @@ -6,7 +6,7 @@ "JA-JP", "AR-SA", "KO-KR", "PT-BR", "CS-CZ", "DA-DK", "NO-NO" ], "displayCapabilities": { - "displayType": "GEN2_8_DMA", + "displayType": "SDL_GENERIC", "displayName": "GENERIC_DISPLAY", "textFields": [{ "name": "mainField1", @@ -921,9 +921,9 @@ } }, "VehicleInfo": { - "make": "Ford", - "model": "Fiesta", - "modelYear": "2013", + "make": "SDL", + "model": "Generic", + "modelYear": "2019", "trim": "SE" }, "SyncMessageVersion": { 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 a15921d9f7..97df35e2b4 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 @@ -37,6 +37,13 @@ namespace application_manager { +struct AppService { + uint32_t connection_key; + bool mobile_service; + bool default_service = false; + smart_objects::SmartObject record; +}; + class ApplicationManager; /** @@ -60,23 +67,56 @@ class AppServiceManager { * @param manifest */ smart_objects::SmartObject PublishAppService( - const smart_objects::SmartObject& manifest); + const smart_objects::SmartObject& manifest, + const bool mobile_service, + const uint32_t connection_key); /** * @brief TODO - * @param manifest + * @param service_id */ bool UnpublishAppService(const std::string service_id); /** * @brief TODO + * @param service_id + */ + bool SetDefaultService(const std::string service_id); + + /** + * @brief TODO + * @param service_id + */ + bool RemoveDefaultService(const std::string service_id); + + /** + * @brief TODO + * @param service_id + */ + bool ActivateAppService(const std::string service_id); + + /** + * @brief TODO + * @param service_id + */ + bool DeactivateAppService(const std::string service_id); + + /** + * @brief TODO * @param manifest */ std::vector<smart_objects::SmartObject> GetAllServices(); + std::pair<std::string, AppService> ActiveServiceByType( + std::string service_type); + + std::pair<std::string, AppService> FindServiceByName(std::string name); + + std::string DefaultServiceByType(std::string service_type); + private: ApplicationManager& app_manager_; - std::map<std::string, smart_objects::SmartObject> published_services_; + std::map<std::string, AppService> published_services_; }; } // namespace application_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 1e235c1282..89da1e744c 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 @@ -49,9 +49,9 @@ ASPublishAppServiceRequest::ASPublishAppServiceRequest( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( hmi_apis::FunctionID::AppService_PublishAppService, - app_mngr::commands::Command::CommandSource::SOURCE_HMI)); + app_mngr::commands::Command::CommandSource::SOURCE_HMI); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } @@ -86,10 +86,10 @@ void ASPublishAppServiceRequest::Run() { return; } smart_objects::SmartObject service_record = - application_manager_.GetAppServiceManager().PublishAppService(manifest); + application_manager_.GetAppServiceManager().PublishAppService( + manifest, false, UINT32_MAX); response_params[strings::app_service_record] = service_record; - // TODO: Add AppServiceRecord to response SendResponse(true, (*message_)[strings::params][strings::correlation_id].asUInt(), hmi_apis::FunctionID::AppService_PublishAppService, diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_response.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_response.cc index 2513a92f15..1191b07abe 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_response.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/as_publish_app_service_response.cc @@ -49,9 +49,9 @@ ASPublishAppServiceResponse::ASPublishAppServiceResponse( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( hmi_apis::FunctionID::AppService_PublishAppService, - app_mngr::commands::Command::CommandSource::SOURCE_HMI)); + app_mngr::commands::Command::CommandSource::SOURCE_HMI); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc index 0cd269b04e..29562d3086 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification.cc @@ -49,9 +49,9 @@ OnASAppServiceDataNotification::OnASAppServiceDataNotification( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( hmi_apis::FunctionID::AppService_OnAppServiceData, - app_mngr::commands::Command::CommandSource::SOURCE_HMI)); + app_mngr::commands::Command::CommandSource::SOURCE_HMI); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification_from_hmi.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification_from_hmi.cc index 01a8e817a2..ce68192d13 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification_from_hmi.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/hmi/on_as_app_service_data_notification_from_hmi.cc @@ -49,9 +49,9 @@ OnASAppServiceDataNotificationFromHMI::OnASAppServiceDataNotificationFromHMI( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( hmi_apis::FunctionID::AppService_OnAppServiceData, - app_mngr::commands::Command::CommandSource::SOURCE_HMI)); + app_mngr::commands::Command::CommandSource::SOURCE_HMI); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification.cc index 33ab1a7246..ef2ab7a4ab 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification.cc @@ -52,9 +52,9 @@ OnAppServiceDataNotification::OnAppServiceDataNotification( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( mobile_apis::FunctionID::OnAppServiceDataID, - app_mngr::commands::Command::CommandSource::SOURCE_MOBILE)); + app_mngr::commands::Command::CommandSource::SOURCE_MOBILE); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification_from_mobile.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification_from_mobile.cc index d4396d49a8..6c69eae3b6 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification_from_mobile.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/on_app_service_data_notification_from_mobile.cc @@ -52,9 +52,9 @@ OnAppServiceDataNotificationFromMobile::OnAppServiceDataNotificationFromMobile( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( mobile_apis::FunctionID::OnAppServiceDataID, - app_mngr::commands::Command::CommandSource::SOURCE_MOBILE)); + app_mngr::commands::Command::CommandSource::SOURCE_MOBILE); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } 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 03c1b91785..052ad9751a 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 @@ -52,9 +52,9 @@ PublishAppServiceRequest::PublishAppServiceRequest( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( mobile_apis::FunctionID::PublishAppServiceID, - app_mngr::commands::Command::CommandSource::SOURCE_MOBILE)); + app_mngr::commands::Command::CommandSource::SOURCE_MOBILE); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } @@ -90,7 +90,8 @@ void PublishAppServiceRequest::Run() { return; } smart_objects::SmartObject service_record = - application_manager_.GetAppServiceManager().PublishAppService(manifest); + application_manager_.GetAppServiceManager().PublishAppService( + manifest, true, connection_key()); std::string requested_service_name = (*message_)[strings::msg_params][strings::app_service_manifest] diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc index 6c3e9344bf..b302189ef7 100644 --- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc +++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/commands/mobile/publish_app_service_response.cc @@ -52,9 +52,9 @@ PublishAppServiceResponse::PublishAppServiceResponse( hmi_capabilities, policy_handler) , plugin_(NULL) { - auto plugin = (application_manager.GetPluginManager().FindPluginToProcess( + auto plugin = application_manager.GetPluginManager().FindPluginToProcess( mobile_apis::FunctionID::PublishAppServiceID, - app_mngr::commands::Command::CommandSource::SOURCE_MOBILE)); + app_mngr::commands::Command::CommandSource::SOURCE_MOBILE); if (plugin) { plugin_ = dynamic_cast<AppServiceRpcPlugin*>(&(*plugin)); } diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc index 863e179040..628eaa2e58 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/button_get_capabilities_response.cc @@ -68,8 +68,12 @@ void ButtonGetCapabilitiesResponse::Run() { hmi_capabilities.set_button_capabilities( (*message_)[strings::msg_params][hmi_response::capabilities]); - hmi_capabilities.set_preset_bank_capabilities( - (*message_)[strings::msg_params][hmi_response::preset_bank_capabilities]); + if ((*message_)[strings::msg_params].keyExists( + hmi_response::preset_bank_capabilities)) { + hmi_capabilities.set_preset_bank_capabilities( + (*message_)[strings::msg_params] + [hmi_response::preset_bank_capabilities]); + } } } // namespace commands diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc index b78e541f17..10b0b41a58 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc @@ -36,6 +36,7 @@ #include "sdl_rpc_plugin/commands/mobile/on_system_request_notification.h" #include "interfaces/MOBILE_API.h" #include "utils/file_system.h" +#include "utils/helpers.h" #include "policy/policy_table/enums.h" #include "application_manager/application_manager.h" #include "application_manager/policies/policy_handler_interface.h" @@ -65,6 +66,7 @@ void OnSystemRequestNotification::Run() { LOG4CXX_AUTO_TRACE(logger_); using namespace application_manager; using namespace mobile_apis; + using namespace helpers; ApplicationSharedPtr app = application_manager_.application(connection_key()); @@ -106,17 +108,33 @@ void OnSystemRequestNotification::Run() { } } - if (mobile_apis::RequestType::PROPRIETARY == request_type) { - /* According to requirements: - "If the requestType = PROPRIETARY, add to mobile API fileType = JSON - If the requestType = HTTP, add to mobile API fileType = BINARY" - Also in Genivi SDL we don't save the PT to file - we put it directly in - binary_data */ + LOG4CXX_DEBUG(logger_, + "Processing Request type : " << stringified_request_type); + + const bool binary_data_is_required = + Compare<mobile_apis::RequestType::eType, EQ, ONE>( + request_type, + mobile_apis::RequestType::PROPRIETARY, + mobile_apis::RequestType::OEM_SPECIFIC); + BinaryMessage binary_data; + if (binary_data_is_required) { const std::string filename = (*message_)[strings::msg_params][strings::file_name].asString(); - BinaryMessage binary_data; file_system::ReadBinaryFile(filename, binary_data); + } + + if (mobile_apis::RequestType::OEM_SPECIFIC == request_type) { + (*message_)[strings::params][strings::binary_data] = binary_data; + } + + if (mobile_apis::RequestType::PROPRIETARY == request_type) { +/* According to requirements: + "If the requestType = PROPRIETARY, add to mobile API fileType = JSON + If the requestType = HTTP, add to mobile API fileType = BINARY" + Also in Genivi SDL we don't save the PT to file - we put it directly in + binary_data */ + #if defined(PROPRIETARY_MODE) AddHeader(binary_data); #endif // PROPRIETARY_MODE @@ -126,7 +144,9 @@ void OnSystemRequestNotification::Run() { #endif // PROPRIETARY_MODE (*message_)[strings::msg_params][strings::file_type] = FileType::JSON; - } else if (mobile_apis::RequestType::HTTP == request_type) { + } + + if (mobile_apis::RequestType::HTTP == request_type) { (*message_)[strings::msg_params][strings::file_type] = FileType::BINARY; if ((*message_)[strings::msg_params].keyExists(strings::url)) { (*message_)[strings::msg_params][strings::timeout] = diff --git a/src/components/application_manager/src/app_service_manager.cc b/src/components/application_manager/src/app_service_manager.cc index edfdfa26bc..c52e6a12f1 100644 --- a/src/components/application_manager/src/app_service_manager.cc +++ b/src/components/application_manager/src/app_service_manager.cc @@ -60,7 +60,9 @@ AppServiceManager::~AppServiceManager() { } smart_objects::SmartObject AppServiceManager::PublishAppService( - const smart_objects::SmartObject& manifest) { + const smart_objects::SmartObject& manifest, + const bool mobile_service, + const uint32_t connection_key) { std::string str_to_hash = ""; std::string service_id = ""; @@ -70,13 +72,21 @@ smart_objects::SmartObject AppServiceManager::PublishAppService( service_id = encryption::MakeHash(str_to_hash); } while (published_services_.find(service_id) != published_services_.end()); + AppService app_service; + app_service.connection_key = connection_key; + app_service.mobile_service = mobile_service; + 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)); + + app_service.record = service_record; + + published_services_.insert( + std::pair<std::string, AppService>(service_id, app_service)); + return service_record; } @@ -91,9 +101,36 @@ std::vector<smart_objects::SmartObject> AppServiceManager::GetAllServices() { std::vector<smart_objects::SmartObject> services; for (auto it = published_services_.begin(); it != published_services_.end(); ++it) { - services.push_back(it->second); + services.push_back(it->second.record); } return services; } + +std::pair<std::string, AppService> AppServiceManager::ActiveServiceByType( + std::string service_type) { + for (auto it = published_services_.begin(); it != published_services_.end(); + ++it) { + if (it->second.record[strings::app_service_manifest][strings::service_type] + .asString() == service_type && + it->second.record[strings::service_active].asBool()) { + return *it; + } + } + AppService empty; + return std::make_pair(std::string(), empty); +} + +std::pair<std::string, AppService> AppServiceManager::FindServiceByName( + std::string name) { + for (auto it = published_services_.begin(); it != published_services_.end(); + ++it) { + if (it->second.record[strings::app_service_manifest][strings::service_name] + .asString() == name) { + return *it; + } + } + AppService empty; + return std::make_pair(std::string(), empty); +} } // namespace application_manager diff --git a/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc b/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc index 712b91afe7..bbd0011298 100644 --- a/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc +++ b/src/components/application_manager/src/plugin_manager/rpc_plugin_manager_impl.cc @@ -54,7 +54,6 @@ RPCPluginPtr LoadPlugin(const std::string& full_plugin_path) { return RPCPluginPtr(); } RPCPlugin* plugin = create_plugin(); - dlclose(plugin_dll); return RPCPluginPtr(plugin); } 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 0b571823f9..094e5cc7c6 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,7 +446,7 @@ enum FunctionID { SetCloudAppPropertiesID = 50, /** - * @brief PublishAppServiceID + * @brief PublishAppServiceID. */ PublishAppServiceID = 52, @@ -541,6 +541,11 @@ enum FunctionID { OnRCStatusID = 32785, /** + * @brief OnAppServiceDataID. + */ + OnAppServiceDataID = 32786, + + /** * @brief EncodedSyncPDataID. */ EncodedSyncPDataID = 65536, 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 72dd7aea72..2260d7e320 100644 --- a/src/components/policy/policy_external/src/policy_table/enums.cc +++ b/src/components/policy/policy_external/src/policy_table/enums.cc @@ -1221,6 +1221,11 @@ bool EnumFromJsonString(const std::string& literal, FunctionID* result) { return true; } + if ("OnAppServiceData" == literal) { + *result = OnAppServiceDataID; + return true; + } + if ("EncodedSyncPData" == literal) { *result = EncodedSyncPDataID; 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 f8f4e9e029..a62a60f2e9 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,7 +432,7 @@ enum FunctionID { SetCloudAppPropertiesID = 50, /** - * @brief PublishAppServiceID + * @brief PublishAppServiceID. */ PublishAppServiceID = 52, @@ -527,6 +527,11 @@ enum FunctionID { OnRCStatusID = 32785, /** + * @brief OnAppServiceDataID. + */ + OnAppServiceDataID = 32786, + + /** * @brief EncodedSyncPDataID. */ EncodedSyncPDataID = 65536, 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 f53b27776d..5c011fbfa0 100644 --- a/src/components/policy/policy_regular/src/policy_table/enums.cc +++ b/src/components/policy/policy_regular/src/policy_table/enums.cc @@ -887,6 +887,8 @@ bool IsValidEnum(FunctionID val) { return true; case OnRCStatusID: return true; + case OnAppServiceDataID: + return true; case EncodedSyncPDataID: return true; case SyncPDataID: @@ -1038,6 +1040,8 @@ const char* EnumToJsonString(FunctionID val) { return "OnWayPointChange"; case OnRCStatusID: return "OnRCStatus"; + case OnAppServiceDataID: + return "OnAppServiceData"; case EncodedSyncPDataID: return "EncodedSyncPData"; case SyncPDataID: @@ -1291,6 +1295,7 @@ bool EnumFromJsonString(const std::string& literal, FunctionID* result) { *result = SendHapticDataID; return true; } + if ("SetCloudAppProperties" == literal) { *result = SetCloudAppPropertiesID; return true; @@ -1391,6 +1396,11 @@ bool EnumFromJsonString(const std::string& literal, FunctionID* result) { return true; } + if ("OnAppServiceData" == literal) { + *result = OnAppServiceDataID; + return true; + } + if ("EncodedSyncPData" == literal) { *result = EncodedSyncPDataID; return true; |