diff options
author | Yaroslav Mamykin (GitHub) <33784535+YarikMamykin@users.noreply.github.com> | 2019-09-20 23:21:40 +0300 |
---|---|---|
committer | Jacob Keeler <jacob.keeler@livioradio.com> | 2019-09-20 16:21:40 -0400 |
commit | 5c7eef2b59c419be127da1bd0cc267884ee94182 (patch) | |
tree | 4fdc68001b57e6819414525f9fa76b04c6343ea4 /src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin | |
parent | e833e65ec42ee9a99eb4488e5bff4f23d9789768 (diff) | |
download | sdl_core-5c7eef2b59c419be127da1bd0cc267884ee94182.tar.gz |
Fix merge module data incorrect behavior (#3017)
* Fix MergeModuleData invalid behavior
* Rework MergeModuleData and MergeArray logic
* Add unit tests
Diffstat (limited to 'src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin')
-rw-r--r-- | src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_helpers.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_helpers.h b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_helpers.h index 7b249cb4b8..eed860fc7f 100644 --- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_helpers.h +++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/include/rc_rpc_plugin/rc_helpers.h @@ -146,6 +146,29 @@ class RCHelpers { */ static void RemoveRedundantGPSDataFromIVDataMsg( smart_objects::SmartObject& msg_params); + + /** + * @brief MergeModuleData all keys and values from first parameter and + * update and append keys and values from the second + * @param data1 - initial data + * @param data2 - updated data + * @return updated data1 with data2 keys and values + */ + static smart_objects::SmartObject MergeModuleData( + const smart_objects::SmartObject& data1, + const smart_objects::SmartObject& data2); + + /** + * @brief MergeArray merge two arrays if their elements contain an `id` + * parameter + * @param data1 - initial data + * @param data2 - updated data + * @return updated data1 with any values in data2 if the arrays can be merged, + * otherwise data2 + */ + static smart_objects::SmartObject MergeArray( + const smart_objects::SmartObject& data1, + const smart_objects::SmartObject& data2); }; } // namespace rc_rpc_plugin |