summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYana Chernysheva <ychernysheva@luxoft.com>2020-10-02 12:31:39 +0300
committerYana Chernysheva <ychernysheva@luxoft.com>2020-10-02 12:31:39 +0300
commit140f0aa5b8f6055c00c241f3d87a96003a076dc8 (patch)
treeef9521763835ea3bd0c3616e53144d382c32eb60
parent430a53ff60c340b8ec0eb030ce613cb9750134c7 (diff)
parent18bd4d7ee7d50ff006287b88eb851c8119f1b1fa (diff)
downloadsdl_core-140f0aa5b8f6055c00c241f3d87a96003a076dc8.tar.gz
Merge branch 'release/7.0.0' into fix/move_duplicate_conversion_functions_to_message_helper
-rw-r--r--README.md2
-rw-r--r--cppcheck.xml0
-rwxr-xr-xsrc/appMain/hmi_capabilities.json4
-rw-r--r--src/appMain/smartDeviceLink.ini3
-rw-r--r--src/components/application_manager/include/application_manager/application.h2
-rw-r--r--src/components/application_manager/include/application_manager/application_impl.h3
-rw-r--r--src/components/application_manager/include/application_manager/application_manager_impl.h6
-rw-r--r--src/components/application_manager/include/application_manager/resumption/resumption_data_processor.h5
-rw-r--r--src/components/application_manager/include/application_manager/state_controller_impl.h3
-rw-r--r--src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc11
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/hmi/rc_on_remote_control_settings_notification.cc9
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/release_interior_vehicle_data_module_request.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc3
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/rc_command_request.cc2
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/interior_data_manager_impl.cc9
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_command_factory.cc8
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_helpers.cc35
-rw-r--r--src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc13
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_app_permission_consent_notification.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc2
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/add_sub_menu_request.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/alert_request.cc9
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/change_registration_request.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_interaction_choice_set_request.cc5
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/delete_command_request.cc9
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_way_points_request.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/on_system_request_notification.cc2
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/perform_interaction_request.cc15
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/put_file_request.cc2
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc8
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_response.cc9
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/send_location_request.cc7
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_global_properties_request.cc24
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_media_clock_timer_request.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/show_constant_tbt_request.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/slider_request.cc8
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/subtle_alert_request.cc3
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/system_request.cc188
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/unregister_app_interface_request.cc5
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/update_turn_list_request.cc4
-rw-r--r--src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/unregister_app_interface_request_test.cc11
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/vehicle_info_plugin.h4
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/hmi/vi_subscribe_vehicle_data_request.cc1
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc3
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc14
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_hmi_command_factory.cc8
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_mobile_command_factory.cc7
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_pending_resumption_handler.cc21
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc38
-rw-r--r--src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/vehicle_info_pending_resumption_test.cc66
-rw-r--r--src/components/application_manager/src/app_launch/app_launch_data_db.cc3
-rw-r--r--src/components/application_manager/src/app_launch/apps_launcher.cc3
-rw-r--r--src/components/application_manager/src/app_launch/device_apps_launcher.cc9
-rw-r--r--src/components/application_manager/src/app_service_manager.cc8
-rw-r--r--src/components/application_manager/src/application_impl.cc31
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc70
-rw-r--r--src/components/application_manager/src/application_state.cc6
-rw-r--r--src/components/application_manager/src/commands/command_request_impl.cc3
-rw-r--r--src/components/application_manager/src/event_engine/event_dispatcher_impl.cc2
-rw-r--r--src/components/application_manager/src/hmi_capabilities_impl.cc544
-rw-r--r--src/components/application_manager/src/hmi_state.cc2
-rw-r--r--src/components/application_manager/src/message_helper/message_helper.cc43
-rw-r--r--src/components/application_manager/src/policies/policy_handler.cc16
-rw-r--r--src/components/application_manager/src/request_controller.cc2
-rw-r--r--src/components/application_manager/src/request_info.cc2
-rw-r--r--src/components/application_manager/src/resumption/resume_ctrl_impl.cc7
-rw-r--r--src/components/application_manager/src/resumption/resumption_data.cc2
-rw-r--r--src/components/application_manager/src/resumption/resumption_data_db.cc6
-rw-r--r--src/components/application_manager/src/resumption/resumption_data_processor_impl.cc4
-rw-r--r--src/components/application_manager/src/state_controller_impl.cc89
-rw-r--r--src/components/application_manager/test/application_manager_impl_test.cc2
-rw-r--r--src/components/application_manager/test/hmi_capabilities_old_apt.json2
-rw-r--r--src/components/application_manager/test/include/application_manager/mock_application.h2
-rw-r--r--src/components/application_manager/test/resumption/resumption_data_test.cc16
-rw-r--r--src/components/application_manager/test/state_controller/state_controller_test.cc1
-rw-r--r--src/components/config_profile/src/ini_file.cc14
-rw-r--r--src/components/config_profile/src/profile.cc13
-rw-r--r--src/components/connection_handler/src/connection.cc4
-rw-r--r--src/components/connection_handler/src/connection_handler_impl.cc26
-rw-r--r--src/components/formatters/src/CFormatterJsonBase.cc2
-rw-r--r--src/components/formatters/test/include/formatters/SmartFactoryTestHelper.h4
-rw-r--r--src/components/formatters/test/src/SmartFactoryTestHelper.cc27
-rw-r--r--src/components/formatters/test/src/create_smartSchema.cc13
-rw-r--r--src/components/formatters/test/src/meta_formatter_test_helper.cc2
-rw-r--r--src/components/hmi_message_handler/src/mb_controller.cc7
-rw-r--r--src/components/include/protocol/rpc_type.h1
-rw-r--r--src/components/include/protocol/service_type.h1
-rw-r--r--src/components/include/utils/ilogger.h1
-rw-r--r--src/components/interfaces/HMI_API.xml8
-rw-r--r--src/components/policy/policy_external/include/policy/policy_helper.h16
-rw-r--r--src/components/policy/policy_external/src/cache_manager.cc26
-rw-r--r--src/components/policy/policy_external/src/policy_helper.cc49
-rw-r--r--src/components/policy/policy_external/src/policy_manager_impl.cc18
-rw-r--r--src/components/policy/policy_external/src/policy_table/types.cc1
-rw-r--r--src/components/policy/policy_external/src/sql_pt_representation.cc4
-rw-r--r--src/components/policy/policy_regular/include/policy/policy_helper.h16
-rw-r--r--src/components/policy/policy_regular/include/policy/policy_manager_impl.h2
-rw-r--r--src/components/policy/policy_regular/src/cache_manager.cc18
-rw-r--r--src/components/policy/policy_regular/src/policy_helper.cc51
-rw-r--r--src/components/policy/policy_regular/src/policy_manager_impl.cc6
-rw-r--r--src/components/policy/policy_regular/src/sql_pt_representation.cc4
-rw-r--r--src/components/protocol/src/rpc_type.cc5
-rw-r--r--src/components/protocol/src/service_type.cc5
-rw-r--r--src/components/protocol_handler/src/incoming_data_handler.cc2
-rw-r--r--src/components/protocol_handler/src/protocol_handler_impl.cc6
-rw-r--r--src/components/protocol_handler/src/protocol_payload.cc3
-rw-r--r--src/components/security_manager/src/crypto_manager_impl.cc12
-rw-r--r--src/components/security_manager/test/security_query_matcher.cc14
-rw-r--r--src/components/smart_objects/src/object_schema_item.cc2
-rw-r--r--src/components/smart_objects/test/SmartObjectConvertionTime_test.cc590
-rw-r--r--src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h7
-rw-r--r--src/components/transport_manager/src/cloud/websocket_client_connection.cc1
-rw-r--r--src/components/transport_manager/src/tcp/tcp_client_listener.cc14
-rw-r--r--src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc8
-rw-r--r--src/components/transport_manager/src/transport_manager_impl.cc3
-rw-r--r--src/components/transport_manager/src/usb/qnx/usb_handler.cc5
-rw-r--r--src/components/transport_manager/src/usb/usb_device_scanner.cc2
-rw-r--r--src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h3
-rw-r--r--src/components/transport_manager/test/network_interface_listener_test.cc14
-rw-r--r--src/components/transport_manager/test/raw_message_matcher.cc1
-rw-r--r--src/components/transport_manager/test/websocket_sample_client/websocket_sample_client.cc4
-rw-r--r--src/components/utils/src/date_time.cc13
-rw-r--r--src/components/utils/src/file_system.cc6
123 files changed, 993 insertions, 1555 deletions
diff --git a/README.md b/README.md
index e0be6edb34..a7e64aa783 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
[![Slack Status](http://sdlslack.herokuapp.com/badge.svg)](http://slack.smartdevicelink.com)
-[![Build Status](https://opensdl-jenkins.prjdmz.luxoft.com/job/develop_nightly_coverage/badge/icon?subject=UT%20coverage%20build)](https://opensdl-jenkins.prjdmz.luxoft.com/job/develop_nightly_coverage/)
+[![Build Status](https://opensdl-jenkins.prjdmz.luxoft.com/job/develop_weekly_coverage/badge/icon?subject=UT%20coverage%20build)](https://opensdl-jenkins.prjdmz.luxoft.com/job/develop_weekly_coverage/)
[![Build Status](https://opensdl-jenkins.prjdmz.luxoft.com/view/Smokes/job/Develop_TCP_ATF_Smoke_P/badge/icon?subject=Smoke%20tests)](https://opensdl-jenkins.prjdmz.luxoft.com/view/Smokes/job/Develop_TCP_ATF_Smoke_P/)
[![Build Status](https://opensdl-jenkins.prjdmz.luxoft.com/job/Develop_SDL_Checkstyle/badge/icon?subject=Coding%20style)](https://opensdl-jenkins.prjdmz.luxoft.com/job/Develop_SDL_Checkstyle/)
diff --git a/cppcheck.xml b/cppcheck.xml
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/cppcheck.xml
diff --git a/src/appMain/hmi_capabilities.json b/src/appMain/hmi_capabilities.json
index 99a2e4c0cc..1e1c5aea79 100755
--- a/src/appMain/hmi_capabilities.json
+++ b/src/appMain/hmi_capabilities.json
@@ -287,12 +287,12 @@
},
"audioPassThruCapabilities": [{
"samplingRate": "44KHZ",
- "bitsPerSample": "RATE_8_BIT",
+ "bitsPerSample": "8_BIT",
"audioType": "PCM"
}],
"pcmStreamCapabilities": {
"samplingRate": "16KHZ",
- "bitsPerSample": "RATE_16_BIT",
+ "bitsPerSample": "16_BIT",
"audioType": "PCM"
},
"hmiZoneCapabilities": "FRONT",
diff --git a/src/appMain/smartDeviceLink.ini b/src/appMain/smartDeviceLink.ini
index bd23e5b90c..0b27e6263a 100644
--- a/src/appMain/smartDeviceLink.ini
+++ b/src/appMain/smartDeviceLink.ini
@@ -316,7 +316,8 @@ OpenAttemptTimeoutMsResumptionDB = 500
; Social, BackgroundProcess, Testing, System, Projection, RemoteControl,
; EmptyApp
; Possible transport types: TCP_WIFI, IAP_CARPLAY, IAP_USB_HOST_MODE, IAP_USB_DEVICE_MODE,
-; IAP_USB, AOA_USB, IAP_BLUETOOTH, SPP_BLUETOOTH
+; IAP_USB, AOA_USB, IAP_BLUETOOTH, SPP_BLUETOOTH, WEBSOCKET,
+; WEBENGINE
;
; The default behavior is to always enable resumption. If an AppHMIType is not listed in this
; section, resumption is enabled for an app with the AppHMIType.
diff --git a/src/components/application_manager/include/application_manager/application.h b/src/components/application_manager/include/application_manager/application.h
index 6280d83278..59c9d35320 100644
--- a/src/components/application_manager/include/application_manager/application.h
+++ b/src/components/application_manager/include/application_manager/application.h
@@ -671,6 +671,8 @@ class Application : public virtual InitialApplicationData,
virtual bool app_allowed() const = 0;
virtual bool has_been_activated() const = 0;
virtual bool set_activated(bool is_active) = 0;
+ virtual bool is_ready() const = 0;
+ virtual bool set_is_ready(bool is_ready) = 0;
virtual const Version& version() const = 0;
virtual void set_hmi_application_id(uint32_t hmi_app_id) = 0;
diff --git a/src/components/application_manager/include/application_manager/application_impl.h b/src/components/application_manager/include/application_manager/application_impl.h
index 1e24addf4a..6c1a897054 100644
--- a/src/components/application_manager/include/application_manager/application_impl.h
+++ b/src/components/application_manager/include/application_manager/application_impl.h
@@ -150,6 +150,8 @@ class ApplicationImpl : public virtual Application,
inline bool app_allowed() const;
bool has_been_activated() const;
bool set_activated(bool is_active);
+ bool is_ready() const;
+ bool set_is_ready(bool is_ready);
const Version& version() const;
void set_hmi_application_id(uint32_t hmi_app_id);
@@ -582,6 +584,7 @@ class ApplicationImpl : public virtual Application,
bool is_app_allowed_;
bool is_app_data_resumption_allowed_;
bool has_been_activated_;
+ bool is_ready_;
bool tts_properties_in_none_;
bool tts_properties_in_full_;
bool keep_context_;
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 31040aca72..6c7deca849 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
@@ -35,6 +35,7 @@
#include <stdint.h>
#include <algorithm>
+#include <atomic>
#include <deque>
#include <map>
#include <memory>
@@ -1245,7 +1246,7 @@ class ApplicationManagerImpl
const bool allow_unknown_parameters = false);
template <typename ApplicationList>
- void PrepareApplicationListSO(ApplicationList app_list,
+ void PrepareApplicationListSO(ApplicationList& app_list,
smart_objects::SmartObject& applications,
ApplicationManager& app_mngr) {
smart_objects::SmartArray* app_array = applications.asArray();
@@ -1651,7 +1652,6 @@ class ApplicationManagerImpl
sync_primitives::Lock close_app_timer_pool_lock_;
sync_primitives::Lock end_stream_timer_pool_lock_;
- mutable sync_primitives::RecursiveLock stopping_application_mng_lock_;
StateControllerImpl state_ctrl_;
std::unique_ptr<app_launch::AppLaunchData> app_launch_dto_;
std::unique_ptr<app_launch::AppLaunchCtrl> app_launch_ctrl_;
@@ -1685,7 +1685,7 @@ class ApplicationManagerImpl
std::atomic<bool> registered_during_timer_execution_;
- volatile bool is_stopping_;
+ std::atomic<bool> is_stopping_;
std::unique_ptr<CommandHolder> commands_holder_;
diff --git a/src/components/application_manager/include/application_manager/resumption/resumption_data_processor.h b/src/components/application_manager/include/application_manager/resumption/resumption_data_processor.h
index 60e2e5d1a4..3f55b02ed3 100644
--- a/src/components/application_manager/include/application_manager/resumption/resumption_data_processor.h
+++ b/src/components/application_manager/include/application_manager/resumption/resumption_data_processor.h
@@ -74,6 +74,11 @@ struct ResumptionRequest {
class ResumptionDataProcessor {
public:
/**
+ * @brief ResumptionDataProcessor class destructor
+ */
+ virtual ~ResumptionDataProcessor() {}
+
+ /**
* @brief Running resumption data process from saved_app to application.
* @param application application which will be resumed
* @param saved_app application specific section from backup file
diff --git a/src/components/application_manager/include/application_manager/state_controller_impl.h b/src/components/application_manager/include/application_manager/state_controller_impl.h
index d74ed4e7fa..210ddf9720 100644
--- a/src/components/application_manager/include/application_manager/state_controller_impl.h
+++ b/src/components/application_manager/include/application_manager/state_controller_impl.h
@@ -35,6 +35,7 @@
#include <list>
#include <map>
+#include <unordered_set>
#include "application_manager/application.h"
#include "application_manager/application_manager.h"
#include "application_manager/hmi_state.h"
@@ -430,6 +431,8 @@ class StateControllerImpl : public event_engine::EventObserver,
typedef std::list<WindowStatePair> WindowStatePairs;
std::map<uint32_t, WindowStatePairs> postponed_app_widgets_;
+ std::unordered_set<uint32_t> apps_with_pending_hmistatus_notification_;
+ mutable sync_primitives::Lock apps_with_pending_hmistatus_notification_lock_;
ApplicationManager& app_mngr_;
};
} // namespace application_manager
diff --git a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc
index fd7b03fabc..e03973614d 100644
--- a/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc
+++ b/src/components/application_manager/rpc_plugins/app_service_rpc_plugin/src/app_service_rpc_plugin.cc
@@ -107,14 +107,15 @@ void AppServiceRpcPlugin::DeleteSubscriptions(
} // namespace app_service_rpc_plugin
-extern "C" __attribute__((visibility("default")))
-application_manager::plugin_manager::RPCPlugin*
-Create(logger::Logger* logger_instance) {
+using RPCPlugin = application_manager::plugin_manager::RPCPlugin;
+// cppcheck-suppress unusedFunction
+extern "C" __attribute__((visibility("default"))) RPCPlugin* Create(
+ logger::Logger* logger_instance) {
logger::Logger::instance(logger_instance);
return new app_service_rpc_plugin::AppServiceRpcPlugin();
}
-extern "C" __attribute__((visibility("default"))) void Delete(
- application_manager::plugin_manager::RPCPlugin* data) {
+// cppcheck-suppress unusedFunction
+extern "C" __attribute__((visibility("default"))) void Delete(RPCPlugin* data) {
delete data;
}
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/hmi/rc_on_remote_control_settings_notification.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/hmi/rc_on_remote_control_settings_notification.cc
index b7a343a907..217258b086 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/hmi/rc_on_remote_control_settings_notification.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/hmi/rc_on_remote_control_settings_notification.cc
@@ -65,15 +65,6 @@ RCOnRemoteControlSettingsNotification::RCOnRemoteControlSettingsNotification(
RCOnRemoteControlSettingsNotification::
~RCOnRemoteControlSettingsNotification() {}
-hmi_apis::Common_RCAccessMode::eType AccessModeFromString(
- const std::string& access_mode) {
- std::map<std::string, hmi_apis::Common_RCAccessMode::eType>::const_iterator
- mode = access_modes.find(access_mode);
- return access_modes.end() != mode
- ? mode->second
- : hmi_apis::Common_RCAccessMode::INVALID_ENUM;
-}
-
std::string AccessModeToString(
const hmi_apis::Common_RCAccessMode::eType access_mode) {
std::map<std::string, hmi_apis::Common_RCAccessMode::eType>::const_iterator
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/release_interior_vehicle_data_module_request.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/release_interior_vehicle_data_module_request.cc
index e7532636b2..47430c2487 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/release_interior_vehicle_data_module_request.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/release_interior_vehicle_data_module_request.cc
@@ -55,9 +55,9 @@ struct ResponseParams {
void PrepareResponseResult(
ResponseParams& response_params_out,
- rc_rpc_plugin::ResourceReleasedState::eType& released_result) {
+ const rc_rpc_plugin::ResourceReleasedState::eType& released_result) {
std::stringstream ss;
- auto info_inserter = [&ss, response_params_out](std::string info) {
+ auto info_inserter = [&ss, response_params_out](const std::string& info) {
ss << "Module [" << response_params_out.module_type << ":"
<< response_params_out.module_id << "] " << info;
};
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc
index 8dd4eab306..dea660b780 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/mobile/set_interior_vehicle_data_request.cc
@@ -105,8 +105,9 @@ mobile_apis::Result::eType PrepareResultCodeAndInfo(
} else {
info = "Accessing not supported module data.";
}
- return result_code;
+
SDL_LOG_WARN(info);
+ return result_code;
}
void SetInteriorVehicleDataRequest::Execute() {
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/rc_command_request.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/rc_command_request.cc
index 53222e0d04..12608d64c1 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/rc_command_request.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/commands/rc_command_request.cc
@@ -247,8 +247,8 @@ void RCCommandRequest::ProcessAccessResponse(
mobile_apis::Result::SUCCESS,
mobile_apis::Result::WARNINGS);
- bool is_allowed = false;
if (result) {
+ bool is_allowed = false;
if (message[app_mngr::strings::msg_params].keyExists(
message_params::kAllowed)) {
is_allowed =
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/interior_data_manager_impl.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/interior_data_manager_impl.cc
index 1db25265e7..c295ad4f11 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/interior_data_manager_impl.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/interior_data_manager_impl.cc
@@ -197,9 +197,12 @@ InteriorDataManagerImpl::AppsSubscribedModuleTypes() {
auto app_subscriptions = rc_extension->InteriorVehicleDataSubscriptions();
std::vector<std::string> app_module_types;
- for (auto& app_subscription : app_subscriptions) {
- app_module_types.push_back(app_subscription.first);
- }
+ std::transform(app_subscriptions.begin(),
+ app_subscriptions.end(),
+ std::back_inserter(app_module_types),
+ [](const ModuleUid& app_subscription) {
+ return app_subscription.first;
+ });
std::sort(app_module_types.begin(), app_module_types.end());
result[app_ptr] = app_module_types;
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_command_factory.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_command_factory.cc
index e2b67effee..c1743c8540 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_command_factory.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_command_factory.cc
@@ -71,7 +71,7 @@ using rc_rpc_plugin::ResourceAllocationManager;
template <typename RCCommandType>
class RCCommandCreator : public CommandCreator {
public:
- RCCommandCreator(const RCCommandParams& params) : params_(params) {}
+ explicit RCCommandCreator(const RCCommandParams& params) : params_(params) {}
private:
bool CanBeCreated() const override {
@@ -92,7 +92,8 @@ struct RCInvalidCommand {};
template <>
class RCCommandCreator<RCInvalidCommand> : public CommandCreator {
public:
- RCCommandCreator(const RCCommandParams& params) {
+ // cppcheck-suppress unusedFunction //Used in RCCommandCreatorFactory
+ explicit RCCommandCreator(const RCCommandParams& params) {
UNUSED(params);
}
@@ -109,7 +110,8 @@ class RCCommandCreator<RCInvalidCommand> : public CommandCreator {
};
struct RCCommandCreatorFactory {
- RCCommandCreatorFactory(const RCCommandParams& params) : params_(params) {}
+ explicit RCCommandCreatorFactory(const RCCommandParams& params)
+ : params_(params) {}
template <typename RCCommandType>
CommandCreator& GetCreator() {
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_helpers.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_helpers.cc
index 61524546a8..b2d1f1513b 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_helpers.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_helpers.cc
@@ -111,18 +111,28 @@ rc_rpc_types::ModuleIdConsentVector RCHelpers::FillModuleConsents(
std::vector<std::string> RCHelpers::RetrieveModuleIds(
const ns_smart_device_link::ns_smart_objects::SmartObject& moduleIds) {
std::vector<std::string> module_ids;
- for (const auto& module_id : (*moduleIds.asArray())) {
- module_ids.push_back(module_id.asString());
- }
+
+ std::transform((*moduleIds.asArray()).begin(),
+ (*moduleIds.asArray()).end(),
+ std::back_inserter(module_ids),
+ [](const smart_objects::SmartObject& module_id) {
+ return module_id.asString();
+ });
+
return module_ids;
}
std::vector<bool> RCHelpers::RetrieveModuleConsents(
const ns_smart_device_link::ns_smart_objects::SmartObject& consents) {
std::vector<bool> module_consents;
- for (const auto& allowed_item : (*consents.asArray())) {
- module_consents.push_back(allowed_item.asBool());
- }
+
+ std::transform((*consents.asArray()).begin(),
+ (*consents.asArray()).end(),
+ std::back_inserter(module_consents),
+ [](const smart_objects::SmartObject& allowed_item) {
+ return allowed_item.asBool();
+ });
+
return module_consents;
}
@@ -333,11 +343,14 @@ smart_objects::SmartObject RCHelpers::MergeArray(
}
auto& data2_array = *data2.asArray();
- for (const auto& data_item : data2_array) {
- if (data_item.getType() != smart_objects::SmartType_Map ||
- !data_item.keyExists(application_manager::strings::id)) {
- return data2;
- }
+
+ auto compare = [](const smart_objects::SmartObject& data_item) {
+ return (data_item.getType() != smart_objects::SmartType_Map ||
+ !data_item.keyExists(application_manager::strings::id));
+ };
+
+ if (std::any_of(data2_array.begin(), data2_array.end(), compare)) {
+ return data2;
}
smart_objects::SmartObject result = data1;
diff --git a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc
index 4345aa044a..87090405e7 100644
--- a/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc
+++ b/src/components/application_manager/rpc_plugins/rc_rpc_plugin/src/rc_rpc_plugin.cc
@@ -212,11 +212,14 @@ RCRPCPlugin::Apps RCRPCPlugin::GetRCApplications(
ApplicationSet accessor = app_mngr.applications().GetData();
std::vector<ApplicationSharedPtr> result;
- for (const auto& it : accessor) {
- if (it->is_remote_control_supported()) {
- result.push_back(it);
- }
- }
+
+ std::copy_if(accessor.begin(),
+ accessor.end(),
+ std::back_inserter(result),
+ [](const ApplicationSharedPtr& app) {
+ return app->is_remote_control_supported();
+ });
+
return result;
}
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_app_permission_consent_notification.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_app_permission_consent_notification.cc
index 37552e003a..e9e0c65424 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_app_permission_consent_notification.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/on_app_permission_consent_notification.cc
@@ -50,7 +50,7 @@ namespace {
struct PermissionsAppender
: public std::unary_function<void,
const smart_objects::SmartArray::value_type&> {
- PermissionsAppender(policy::PermissionConsent& consents)
+ explicit PermissionsAppender(policy::PermissionConsent& consents)
: allowed_key_(application_manager::hmi_response::allowed)
, consents_(consents) {}
void operator()(const smart_objects::SmartArray::value_type& item) const {
@@ -82,7 +82,7 @@ struct PermissionsAppender
*/
struct ExternalConsentStatusAppender
: std::unary_function<void, const smart_objects::SmartArray::value_type&> {
- ExternalConsentStatusAppender(
+ explicit ExternalConsentStatusAppender(
policy::ExternalConsentStatus& external_consent_status)
: external_consent_status_(external_consent_status) {}
void operator()(const smart_objects::SmartArray::value_type& item) const {
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc
index 527cf911b9..372f83e4fd 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/hmi/sdl_activate_app_request.cc
@@ -43,7 +43,7 @@ namespace commands {
namespace {
struct ProtoV4AppsOnDevice : std::unary_function<ApplicationSharedPtr, bool> {
connection_handler::DeviceHandle handle_;
- ProtoV4AppsOnDevice(const connection_handler::DeviceHandle handle)
+ explicit ProtoV4AppsOnDevice(const connection_handler::DeviceHandle handle)
: handle_(handle) {}
bool operator()(const ApplicationSharedPtr app) const {
return app ? handle_ == app->device() &&
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/add_sub_menu_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/add_sub_menu_request.cc
index 288cafb94e..c83538c023 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/add_sub_menu_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/add_sub_menu_request.cc
@@ -209,9 +209,9 @@ bool AddSubMenuRequest::Init() {
bool AddSubMenuRequest::CheckSubMenuName() {
SDL_LOG_AUTO_TRACE();
- const char* str = NULL;
- str = (*message_)[strings::msg_params][strings::menu_name].asCharArray();
+ const char* str =
+ (*message_)[strings::msg_params][strings::menu_name].asCharArray();
if (!CheckSyntax(str)) {
SDL_LOG_INFO("Invalid subMenu name.");
return false;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/alert_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/alert_request.cc
index 55783be4cd..cfd3106f4d 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/alert_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/alert_request.cc
@@ -111,10 +111,11 @@ void AlertRequest::Run() {
(*message_)[strings::msg_params][strings::tts_chunks].length();
}
- if ((tts_chunks_exists && length_tts_chunks) ||
- ((*message_)[strings::msg_params].keyExists(strings::play_tone) &&
- (*message_)[strings::msg_params][strings::play_tone].asBool())) {
+ if (tts_chunks_exists && length_tts_chunks) {
awaiting_tts_speak_response_ = true;
+ } else if ((*message_)[strings::msg_params].keyExists(strings::play_tone) &&
+ (*message_)[strings::msg_params][strings::play_tone].asBool()) {
+ set_warning_info("playTone ignored since TTS Chunks were not provided");
}
SendAlertRequest(app_id);
@@ -409,8 +410,6 @@ void AlertRequest::SendSpeakRequest(int32_t app_id,
SmartObject msg_params = smart_objects::SmartObject(SmartType_Map);
if (tts_chunks_exists && length_tts_chunks) {
msg_params[hmi_request::tts_chunks] =
- smart_objects::SmartObject(SmartType_Array);
- msg_params[hmi_request::tts_chunks] =
(*message_)[strings::msg_params][strings::tts_chunks];
}
if ((*message_)[strings::msg_params].keyExists(strings::play_tone) &&
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/change_registration_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/change_registration_request.cc
index 8e13110515..13a57cf9a8 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/change_registration_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/change_registration_request.cc
@@ -44,7 +44,8 @@
namespace {
namespace custom_str = utils::custom_string;
struct IsSameNickname {
- IsSameNickname(const custom_str::CustomString& app_id) : app_id_(app_id) {}
+ explicit IsSameNickname(const custom_str::CustomString& app_id)
+ : app_id_(app_id) {}
bool operator()(const policy::StringArray::value_type& nickname) const {
return app_id_.CompareIgnoreCase(nickname.c_str());
}
@@ -512,7 +513,6 @@ bool ChangeRegistrationRequest::IsLanguageSupportedByTTS(
for (size_t i = 0; i < tts_languages->length(); ++i) {
if (hmi_display_lang == tts_languages->getElement(i).asInt()) {
return true;
- break;
}
}
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_interaction_choice_set_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_interaction_choice_set_request.cc
index d43e8e0710..345a6a8497 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_interaction_choice_set_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/create_interaction_choice_set_request.cc
@@ -239,9 +239,8 @@ bool CreateInteractionChoiceSetRequest::compareStr(
bool CreateInteractionChoiceSetRequest::IsWhiteSpaceExist(
const smart_objects::SmartObject& choice_set) {
SDL_LOG_AUTO_TRACE();
- const char* str = NULL;
- str = choice_set[strings::menu_name].asCharArray();
+ const char* str = choice_set[strings::menu_name].asCharArray();
if (!CheckSyntax(str)) {
SDL_LOG_ERROR("Invalid menu_name syntax check failed");
return true;
@@ -322,8 +321,6 @@ void CreateInteractionChoiceSetRequest::SendVRAddCommandRequests(
msg_params[strings::cmd_id] =
choice_set[strings::choice_set][chs_num][strings::choice_id];
msg_params[strings::vr_commands] =
- smart_objects::SmartObject(smart_objects::SmartType_Array);
- msg_params[strings::vr_commands] =
choice_set[strings::choice_set][chs_num][strings::vr_commands];
sync_primitives::AutoLock commands_lock(vr_commands_lock_);
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/delete_command_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/delete_command_request.cc
index 9704d43ba7..358a002606 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/delete_command_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/delete_command_request.cc
@@ -96,15 +96,6 @@ void DeleteCommandRequest::Run() {
(*message_)[strings::msg_params][strings::cmd_id];
msg_params[strings::app_id] = application->app_id();
- // we should specify amount of required responses in the 1st request
- uint32_t chaining_counter = 0;
- if (command.keyExists(strings::menu_params)) {
- ++chaining_counter;
- }
-
- if (command.keyExists(strings::vr_commands)) {
- ++chaining_counter;
- }
/* Need to set all flags before sending request to HMI
* for correct processing this flags in method on_event */
if (command.keyExists(strings::menu_params)) {
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_way_points_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_way_points_request.cc
index 33d3479941..54b542d245 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_way_points_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/get_way_points_request.cc
@@ -68,10 +68,8 @@ void GetWayPointsRequest::Run() {
SendResponse(false, mobile_apis::Result::APPLICATION_NOT_REGISTERED);
return;
}
- smart_objects::SmartObject msg_params =
- smart_objects::SmartObject(smart_objects::SmartType_Map);
- msg_params = (*message_)[strings::msg_params];
+ smart_objects::SmartObject msg_params = (*message_)[strings::msg_params];
msg_params[strings::app_id] = app->app_id();
StartAwaitForInterface(HmiInterfaces::HMI_INTERFACE_Navigation);
SendHMIRequest(hmi_apis::FunctionID::Navigation_GetWayPoints,
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 90ed038b89..4a97d5b970 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
@@ -173,7 +173,7 @@ void OnSystemRequestNotification::AddHeader(BinaryMessage& message) const {
}
char timeout_str[24];
- if (0 > sprintf(timeout_str, "%d", timeout)) {
+ if (0 > sprintf(timeout_str, "%u", timeout)) {
memset(timeout_str, 0, sizeof(timeout_str));
}
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/perform_interaction_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/perform_interaction_request.cc
index 9c218e0e99..7b29f33d24 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/perform_interaction_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/perform_interaction_request.cc
@@ -34,12 +34,12 @@
#include "sdl_rpc_plugin/commands/mobile/perform_interaction_request.h"
#include <string.h>
+
#include <numeric>
#include <string>
#include "application_manager/application_impl.h"
#include "application_manager/message_helper.h"
-
#include "interfaces/HMI_API.h"
#include "interfaces/MOBILE_API.h"
#include "utils/custom_string.h"
@@ -871,9 +871,9 @@ void PerformInteractionRequest::DisablePerformInteraction() {
bool PerformInteractionRequest::IsWhiteSpaceExist() {
SDL_LOG_AUTO_TRACE();
- const char* str = NULL;
- str = (*message_)[strings::msg_params][strings::initial_text].asCharArray();
+ const char* str =
+ (*message_)[strings::msg_params][strings::initial_text].asCharArray();
if (!CheckSyntax(str)) {
SDL_LOG_ERROR("Invalid initial_text syntax check failed");
return true;
@@ -1038,7 +1038,6 @@ bool PerformInteractionRequest::CheckChoiceIDFromRequest(
const smart_objects::SmartObject& choice_set_id_list) const {
SDL_LOG_AUTO_TRACE();
- size_t choice_list_length = 0;
std::set<uint32_t> choice_id_set;
std::pair<std::set<uint32_t>::iterator, bool> ins_res;
@@ -1046,12 +1045,11 @@ bool PerformInteractionRequest::CheckChoiceIDFromRequest(
auto choice_set = app->FindChoiceSet(choice_set_id_list[i].asInt());
if (smart_objects::SmartType_Null == choice_set.getType()) {
SDL_LOG_ERROR(
-
"Couldn't find choiceset_id = " << choice_set_id_list[i].asInt());
return false;
}
- choice_list_length = choice_set[strings::choice_set].length();
+ size_t choice_list_length = choice_set[strings::choice_set].length();
const smart_objects::SmartObject& choices_list =
choice_set[strings::choice_set];
for (size_t k = 0; k < choice_list_length; ++k) {
@@ -1076,15 +1074,14 @@ const bool PerformInteractionRequest::HasHMIResponsesToWait() const {
void PerformInteractionRequest::SendBothModeResponse(
const smart_objects::SmartObject& msg_param) {
SDL_LOG_AUTO_TRACE();
- mobile_apis::Result::eType perform_interaction_result_code =
- mobile_apis::Result::INVALID_ENUM;
+
app_mngr::commands::ResponseInfo ui_perform_info(
ui_result_code_, HmiInterfaces::HMI_INTERFACE_UI, application_manager_);
app_mngr::commands::ResponseInfo vr_perform_info(
vr_result_code_, HmiInterfaces::HMI_INTERFACE_VR, application_manager_);
const bool result =
PrepareResultForMobileResponse(ui_perform_info, vr_perform_info);
- perform_interaction_result_code =
+ mobile_apis::Result::eType perform_interaction_result_code =
PrepareResultCodeForResponse(ui_perform_info, vr_perform_info);
const smart_objects::SmartObject* response_params =
msg_param.empty() ? NULL : &msg_param;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/put_file_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/put_file_request.cc
index 50ff392e33..5263991716 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/put_file_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/put_file_request.cc
@@ -165,7 +165,6 @@ void PutFileRequest::Run() {
is_persistent_file_ = false;
bool is_system_file = false;
length_ = binary_data.size();
- bool is_download_complete = true;
bool offset_exist =
(*message_)[strings::msg_params].keyExists(strings::offset);
@@ -252,6 +251,7 @@ void PutFileRequest::Run() {
case mobile_apis::Result::SUCCESS: {
SDL_LOG_INFO("PutFile is successful");
if (!is_system_file) {
+ bool is_download_complete = true;
AppFile file(sync_file_name_,
is_persistent_file_,
is_download_complete,
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc
index 658723981e..acc7b33b17 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_request.cc
@@ -57,7 +57,7 @@ namespace {
namespace custom_str = utils::custom_string;
struct AppHMITypeInserter {
- AppHMITypeInserter(smart_objects::SmartObject& so_array)
+ explicit AppHMITypeInserter(smart_objects::SmartObject& so_array)
: index_(0), so_array_(so_array) {}
bool operator()(const std::string& app_hmi_type) {
@@ -110,7 +110,7 @@ class SmartArrayValueExtractor {
};
struct IsSameNickname {
- IsSameNickname(const custom_str::CustomString app_name)
+ explicit IsSameNickname(const custom_str::CustomString app_name)
: app_name_(app_name) {}
bool operator()(const policy::StringArray::value_type& nickname) const {
return app_name_.CompareIgnoreCase(nickname.c_str());
@@ -1317,9 +1317,9 @@ bool RegisterAppInterfaceRequest::IsApplicationWithSameAppIdRegistered() {
bool RegisterAppInterfaceRequest::IsWhiteSpaceExist() {
SDL_LOG_AUTO_TRACE();
- const char* str = NULL;
- str = (*message_)[strings::msg_params][strings::app_name].asCharArray();
+ const char* str =
+ (*message_)[strings::msg_params][strings::app_name].asCharArray();
if (!CheckSyntax(str)) {
SDL_LOG_ERROR("Invalid app_name syntax check failed");
return true;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_response.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_response.cc
index f0e885f54c..0c74105e56 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_response.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/register_app_interface_response.cc
@@ -96,6 +96,15 @@ void RegisterAppInterfaceResponse::Run() {
}
SendResponse(success, result_code, last_message);
+ if (success) {
+ app->set_is_ready(true);
+ }
+ event_engine::MobileEvent event(
+ mobile_apis::FunctionID::RegisterAppInterfaceID);
+ smart_objects::SmartObject event_msg(*message_);
+ event_msg[strings::params][strings::correlation_id] = 0;
+ event.set_smart_object(event_msg);
+ event.raise(application_manager_.event_dispatcher());
if (mobile_apis::Result::SUCCESS != result_code) {
return;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/send_location_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/send_location_request.cc
index 37d43a354b..fcc898b348 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/send_location_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/send_location_request.cc
@@ -119,9 +119,7 @@ void SendLocationRequest::Run() {
}
if (msg_params.keyExists(strings::location_image)) {
- mobile_apis::Result::eType verification_result =
- mobile_apis::Result::SUCCESS;
- verification_result = MessageHelper::VerifyImage(
+ mobile_apis::Result::eType verification_result = MessageHelper::VerifyImage(
(*message_)[strings::msg_params][strings::location_image],
app,
application_manager_);
@@ -132,8 +130,7 @@ void SendLocationRequest::Run() {
}
}
- SmartObject request_msg_params = SmartObject(smart_objects::SmartType_Map);
- request_msg_params = msg_params;
+ SmartObject request_msg_params = msg_params;
request_msg_params[strings::app_id] = app->hmi_app_id();
StartAwaitForInterface(HmiInterfaces::HMI_INTERFACE_Navigation);
SendHMIRequest(
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_global_properties_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_global_properties_request.cc
index 922a45ebdb..396763ff98 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_global_properties_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_global_properties_request.cc
@@ -111,10 +111,8 @@ void SetGlobalPropertiesRequest::Run() {
return;
}
- mobile_apis::Result::eType verification_result = mobile_apis::Result::SUCCESS;
-
if (msg_params.keyExists(strings::menu_icon)) {
- verification_result = MessageHelper::VerifyImage(
+ mobile_apis::Result::eType verification_result = MessageHelper::VerifyImage(
msg_params[strings::menu_icon], app, application_manager_);
if (mobile_apis::Result::INVALID_DATA == verification_result) {
SDL_LOG_ERROR("MessageHelper::VerifyImage return "
@@ -241,11 +239,11 @@ void SetGlobalPropertiesRequest::Run() {
application_manager_.GetPluginManager().ForEachPlugin(
on_global_properties_updated);
- smart_objects::SmartObject params =
+ smart_objects::SmartObject rc_request_params =
smart_objects::SmartObject(smart_objects::SmartType_Map);
- params[strings::app_id] = app->app_id();
- params[strings::user_location] = user_location;
- SendRCRequest(params, true);
+ rc_request_params[strings::app_id] = app->app_id();
+ rc_request_params[strings::user_location] = user_location;
+ SendRCRequest(rc_request_params, true);
}
// check TTS params
@@ -257,7 +255,7 @@ void SetGlobalPropertiesRequest::Run() {
if (is_help_prompt_present) {
smart_objects::SmartObject& help_prompt =
(*message_)[strings::msg_params][strings::help_prompt];
- verification_result =
+ mobile_apis::Result::eType verification_result =
MessageHelper::VerifyTtsFiles(help_prompt, app, application_manager_);
if (mobile_apis::Result::FILE_NOT_FOUND == verification_result) {
@@ -273,8 +271,9 @@ void SetGlobalPropertiesRequest::Run() {
if (is_timeout_prompt_present) {
smart_objects::SmartObject& timeout_prompt =
(*message_)[strings::msg_params][strings::timeout_prompt];
- verification_result = MessageHelper::VerifyTtsFiles(
- timeout_prompt, app, application_manager_);
+ mobile_apis::Result::eType verification_result =
+ MessageHelper::VerifyTtsFiles(
+ timeout_prompt, app, application_manager_);
if (mobile_apis::Result::FILE_NOT_FOUND == verification_result) {
SDL_LOG_ERROR("MessageHelper::VerifyTtsFiles return "
@@ -291,7 +290,7 @@ void SetGlobalPropertiesRequest::Run() {
std::begin(invalid_params),
std::end(invalid_params),
std::string(""),
- [](std::string& first, std::string& second) {
+ [](std::string& first, const std::string& second) {
return first.empty() ? second : first + ", " + second;
});
const std::string info =
@@ -518,7 +517,6 @@ SetGlobalPropertiesRequest::PrepareResultCodeForResponse(
const app_mngr::commands::ResponseInfo& second,
const app_mngr::commands::ResponseInfo& third) {
SDL_LOG_AUTO_TRACE();
- mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
if (IsResultCodeUnsupported(first, second, third) ||
IsResultCodeUnsupported(second, third, first) ||
IsResultCodeUnsupported(third, first, second)) {
@@ -547,7 +545,7 @@ SetGlobalPropertiesRequest::PrepareResultCodeForResponse(
hmi_apis::Common_Result::eType intermediate_result =
std::max(first_result, second_result);
- result_code = MessageHelper::HMIToMobileResult(
+ mobile_apis::Result::eType result_code = MessageHelper::HMIToMobileResult(
std::max(intermediate_result, third_result));
return result_code;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_media_clock_timer_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_media_clock_timer_request.cc
index b7b8fc27ad..cf5d80ecc0 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_media_clock_timer_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/set_media_clock_timer_request.cc
@@ -77,10 +77,8 @@ void SetMediaClockRequest::Run() {
}
if (isDataValid()) {
- smart_objects::SmartObject msg_params =
- smart_objects::SmartObject(smart_objects::SmartType_Map);
// copy entirely msg
- msg_params = (*message_)[strings::msg_params];
+ smart_objects::SmartObject msg_params = (*message_)[strings::msg_params];
msg_params[strings::app_id] = app->app_id();
StartAwaitForInterface(HmiInterfaces::HMI_INTERFACE_UI);
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/show_constant_tbt_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/show_constant_tbt_request.cc
index 04310bcd58..cfb9d5896e 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/show_constant_tbt_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/show_constant_tbt_request.cc
@@ -80,9 +80,7 @@ void ShowConstantTBTRequest::Run() {
return;
}
- smart_objects::SmartObject msg_params =
- smart_objects::SmartObject(smart_objects::SmartType_Map);
- msg_params = (*message_)[strings::msg_params];
+ smart_objects::SmartObject msg_params = (*message_)[strings::msg_params];
if (IsWhiteSpaceExist()) {
SDL_LOG_ERROR("Incoming show constant TBT has contains \t\n \\t \\n");
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/slider_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/slider_request.cc
index 15ced6d5a1..e46d3fd7f0 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/slider_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/slider_request.cc
@@ -109,9 +109,7 @@ void SliderRequest::Run() {
return;
}
- smart_objects::SmartObject msg_params =
- smart_objects::SmartObject(smart_objects::SmartType_Map);
- msg_params = (*message_)[strings::msg_params];
+ smart_objects::SmartObject msg_params = (*message_)[strings::msg_params];
msg_params[strings::app_id] = application->app_id();
if (!(*message_)[strings::msg_params].keyExists(strings::timeout)) {
@@ -183,9 +181,9 @@ void SliderRequest::on_event(const event_engine::Event& event) {
bool SliderRequest::IsWhiteSpaceExist() {
SDL_LOG_AUTO_TRACE();
- const char* str = NULL;
- str = (*message_)[strings::msg_params][strings::slider_header].asCharArray();
+ const char* str =
+ (*message_)[strings::msg_params][strings::slider_header].asCharArray();
if (!CheckSyntax(str)) {
SDL_LOG_ERROR("Invalid slider_header value syntax check failed");
return true;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/subtle_alert_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/subtle_alert_request.cc
index 502290328a..327315b372 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/subtle_alert_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/subtle_alert_request.cc
@@ -349,7 +349,6 @@ void SubtleAlertRequest::SendSubtleAlertRequest(int32_t app_id) {
hmi_apis::Common_TextFieldName::subtleAlertText2;
msg_params[hmi_request::alert_strings][index][hmi_request::field_text] =
(*message_)[strings::msg_params][strings::alert_text2];
- index++;
}
// softButtons
@@ -408,8 +407,6 @@ void SubtleAlertRequest::SendSpeakRequest(int32_t app_id,
SmartObject msg_params = smart_objects::SmartObject(SmartType_Map);
if (tts_chunks_exists && length_tts_chunks) {
msg_params[hmi_request::tts_chunks] =
- smart_objects::SmartObject(SmartType_Array);
- msg_params[hmi_request::tts_chunks] =
(*message_)[strings::msg_params][strings::tts_chunks];
}
msg_params[strings::app_id] = app_id;
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/system_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/system_request.cc
index 17e295304c..cca088ed2d 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/system_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/system_request.cc
@@ -34,10 +34,12 @@ Copyright (c) 2018, Ford Motor Company
#include "sdl_rpc_plugin/commands/mobile/system_request.h"
#include <stdio.h>
+
#include <algorithm>
#include <sstream>
#include <string>
#include <vector>
+
#include "application_manager/policies/policy_handler_interface.h"
#include "formatters/CFormatterJsonBase.h"
#include "interfaces/MOBILE_API.h"
@@ -70,11 +72,99 @@ const unsigned int kAppIdLengthMax = 40U;
const unsigned int kAppNameLengthMax = 100U;
const unsigned int kLanguageArraySizeMax = 100U;
+typedef std::set<std::string> SynonymsSet;
+typedef std::map<std::string, SynonymsSet> SynonymsMap;
+
+bool ValidateSynonymsAtLanguage(const smart_objects::SmartObject& language,
+ const std::string& language_name,
+ SynonymsMap& synonyms_map) {
+ if (!language[language_name].keyExists(json::vrSynonyms)) {
+ SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
+ << "'languages.vrSynonyms' doesn't exist");
+ return false;
+ }
+ const smart_objects::SmartArray* synonyms_array =
+ language[language_name][json::vrSynonyms].asArray();
+ if (!synonyms_array) {
+ SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
+ << "vrSynonyms is not array.");
+ return false;
+ }
+ const size_t synonyms_array_size = synonyms_array->size();
+ if (synonyms_array_size < kVrArraySizeMin) {
+ SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
+ << "vrSynomyms array has [" << synonyms_array_size
+ << "] size < allowed min size [" << kVrArraySizeMin << "]");
+ return false;
+ }
+ if (synonyms_array_size > kVrArraySizeMax) {
+ SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
+ << "vrSynomyms array size [" << synonyms_array_size
+ << "] exceeds maximum allowed size [" << kVrArraySizeMax
+ << "]");
+ return false;
+ }
+
+ for (std::size_t idx = 0; idx < synonyms_array_size; ++idx) {
+ const smart_objects::SmartObject& synonym = (*synonyms_array)[idx];
+ const std::string vrSynonym = synonym.asString();
+ if (vrSynonym.length() > kVrSynonymLengthMax) {
+ SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
+ << "vrSYnomym item [" << idx << "] exceeds max length ["
+ << vrSynonym.length() << "]>[" << kVrSynonymLengthMax
+ << "]");
+ return false;
+ }
+ if (vrSynonym.length() < kVrSynonymLengthMin) {
+ SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
+ << "vrSYnomym item [" << idx << "] length ["
+ << vrSynonym.length() << "] is less then min length ["
+ << kVrSynonymLengthMin << "] allowed.");
+ return false;
+ }
+ // Verify duplicates
+ SynonymsMap::iterator synonyms_map_iter = synonyms_map.find(language_name);
+ if (synonyms_map_iter != synonyms_map.end()) {
+ if (!(*synonyms_map_iter).second.insert(vrSynonym).second) {
+ SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
+ << "vrSYnomym item already defined [" << vrSynonym.c_str()
+ << "] for language [" << language_name << "]");
+ return false;
+ }
+ }
+ }
+ return true;
+}
+
+bool CheckMandatoryParametersPresent(
+ const smart_objects::SmartObject& app_data) {
+ if (!app_data.keyExists(json::android) && !app_data.keyExists(json::ios)) {
+ return false;
+ }
+
+ if (app_data.keyExists(json::android) &&
+ !app_data[json::android].keyExists(json::packageName)) {
+ return false;
+ }
+
+ if (app_data.keyExists(json::ios) &&
+ !app_data[json::ios].keyExists(json::urlScheme)) {
+ return false;
+ }
+
+ if (!app_data.keyExists(json::appId)) {
+ return false;
+ }
+
+ if (!app_data.keyExists(json::name)) {
+ return false;
+ }
+
+ return true;
+}
+
class QueryAppsDataValidator {
public:
- typedef std::set<std::string> SynonymsSet;
- typedef std::map<std::string, SynonymsSet> SynonymsMap;
-
QueryAppsDataValidator(smart_objects::SmartObject& object,
const ApplicationManager& manager)
: data_(object), manager_(manager) {}
@@ -298,96 +388,6 @@ class QueryAppsDataValidator {
return true;
}
- bool ValidateSynonymsAtLanguage(const smart_objects::SmartObject& language,
- const std::string& language_name,
- SynonymsMap& synonyms_map) const {
- if (!language[language_name].keyExists(json::vrSynonyms)) {
- SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
- << "'languages.vrSynonyms' doesn't exist");
- return false;
- }
- const smart_objects::SmartArray* synonyms_array =
- language[language_name][json::vrSynonyms].asArray();
- if (!synonyms_array) {
- SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
- << "vrSynonyms is not array.");
- return false;
- }
- const size_t synonyms_array_size = synonyms_array->size();
- if (synonyms_array_size < kVrArraySizeMin) {
- SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
- << "vrSynomyms array has [" << synonyms_array_size
- << "] size < allowed min size [" << kVrArraySizeMin << "]");
- return false;
- }
- if (synonyms_array_size > kVrArraySizeMax) {
- SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
- << "vrSynomyms array size [" << synonyms_array_size
- << "] exceeds maximum allowed size [" << kVrArraySizeMax
- << "]");
- return false;
- }
-
- for (std::size_t idx = 0; idx < synonyms_array_size; ++idx) {
- const smart_objects::SmartObject& synonym = (*synonyms_array)[idx];
- const std::string vrSynonym = synonym.asString();
- if (vrSynonym.length() > kVrSynonymLengthMax) {
- SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
- << "vrSYnomym item [" << idx << "] exceeds max length ["
- << vrSynonym.length() << "]>[" << kVrSynonymLengthMax
- << "]");
- return false;
- }
- if (vrSynonym.length() < kVrSynonymLengthMin) {
- SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
- << "vrSYnomym item [" << idx << "] length ["
- << vrSynonym.length() << "] is less then min length ["
- << kVrSynonymLengthMin << "] allowed.");
- return false;
- }
- // Verify duplicates
- SynonymsMap::iterator synonyms_map_iter =
- synonyms_map.find(language_name);
- if (synonyms_map_iter != synonyms_map.end()) {
- if (!(*synonyms_map_iter).second.insert(vrSynonym).second) {
- SDL_LOG_WARN(kQueryAppsValidationFailedPrefix
- << "vrSYnomym item already defined ["
- << vrSynonym.c_str() << "] for language ["
- << language_name << "]");
- return false;
- }
- }
- }
- return true;
- }
-
- bool CheckMandatoryParametersPresent(
- const smart_objects::SmartObject& app_data) const {
- if (!app_data.keyExists(json::android) && !app_data.keyExists(json::ios)) {
- return false;
- }
-
- if (app_data.keyExists(json::android) &&
- !app_data[json::android].keyExists(json::packageName)) {
- return false;
- }
-
- if (app_data.keyExists(json::ios) &&
- !app_data[json::ios].keyExists(json::urlScheme)) {
- return false;
- }
-
- if (!app_data.keyExists(json::appId)) {
- return false;
- }
-
- if (!app_data.keyExists(json::name)) {
- return false;
- }
-
- return true;
- }
-
smart_objects::SmartObject& data_;
std::set<std::string> applications_id_set_;
const ApplicationManager& manager_;
@@ -466,7 +466,7 @@ void SystemRequest::Run() {
SDL_LOG_TRACE("Request subtype: " << request_subtype << " is ALLOWED");
}
- std::string file_name = kSYNC;
+ std::string file_name;
if ((*message_)[strings::msg_params].keyExists(strings::file_name)) {
file_name = (*message_)[strings::msg_params][strings::file_name].asString();
} else {
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/unregister_app_interface_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/unregister_app_interface_request.cc
index 10f808b771..14b316f374 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/unregister_app_interface_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/unregister_app_interface_request.cc
@@ -51,11 +51,6 @@ void UnregisterAppInterfaceRequest::Run() {
return;
}
- rpc_service_.ManageMobileCommand(
- MessageHelper::GetOnAppInterfaceUnregisteredNotificationToMobile(
- connection_key(),
- mobile_api::AppInterfaceUnregisteredReason::INVALID_ENUM),
- SOURCE_SDL);
application_manager_.EndNaviServices(connection_key());
application_manager_.UnregisterApplication(connection_key(),
mobile_apis::Result::SUCCESS);
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/update_turn_list_request.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/update_turn_list_request.cc
index 824d1150b3..3da9206184 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/update_turn_list_request.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/src/commands/mobile/update_turn_list_request.cc
@@ -112,9 +112,7 @@ void UpdateTurnListRequest::Run() {
}
}
- smart_objects::SmartObject msg_params =
- smart_objects::SmartObject(smart_objects::SmartType_Map);
- msg_params = (*message_)[strings::msg_params];
+ smart_objects::SmartObject msg_params = (*message_)[strings::msg_params];
if ((*message_)[strings::msg_params].keyExists(strings::turn_list)) {
if (!CheckTurnListArray()) {
diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/unregister_app_interface_request_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/unregister_app_interface_request_test.cc
index f244acb8d6..d7dcbdfa9d 100644
--- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/unregister_app_interface_request_test.cc
+++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/unregister_app_interface_request_test.cc
@@ -85,20 +85,9 @@ TEST_F(UnregisterAppInterfaceRequestTest, Run_SUCCESS) {
MockAppPtr mock_app(CreateMockApp());
EXPECT_CALL(app_mngr_, application(kConnectionKey))
.WillRepeatedly(Return(mock_app));
-
- const mobile_apis::AppInterfaceUnregisteredReason::eType kUnregisterReason =
- mobile_apis::AppInterfaceUnregisteredReason::INVALID_ENUM;
-
- MessageSharedPtr dummy_msg(CreateMessage());
- EXPECT_CALL(mock_message_helper_,
- GetOnAppInterfaceUnregisteredNotificationToMobile(
- kConnectionKey, kUnregisterReason))
- .WillOnce(Return(dummy_msg));
{
::testing::InSequence sequence;
- EXPECT_CALL(mock_rpc_service_, ManageMobileCommand(dummy_msg, _));
-
EXPECT_CALL(app_mngr_,
UnregisterApplication(
kConnectionKey, mobile_apis::Result::SUCCESS, _, _));
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/vehicle_info_plugin.h b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/vehicle_info_plugin.h
index 5b597cfcab..1910a9efdf 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/vehicle_info_plugin.h
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/include/vehicle_info_plugin/vehicle_info_plugin.h
@@ -42,7 +42,8 @@ class VehicleInfoAppExtension;
namespace app_mngr = application_manager;
namespace plugins = application_manager::plugin_manager;
-enum SubscribeStatus { SUBSCRIBE, UNSUBSCRIBE };
+bool IsSubscribedAppExist(const std::string& ivi,
+ const app_mngr::ApplicationManager& app_manager);
class VehicleInfoPlugin : public plugins::RPCPlugin {
public:
@@ -96,7 +97,6 @@ class VehicleInfoPlugin : public plugins::RPCPlugin {
const std::set<std::string>& list_of_subscriptions);
private:
- bool IsSubscribedAppExist(const std::string& ivi);
bool IsAnyPendingSubscriptionExist(const std::string& ivi);
void UnsubscribeFromRemovedVDItems();
smart_objects::SmartObjectSPtr GetUnsubscribeIVIRequest(
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/hmi/vi_subscribe_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
index 0863dc875a..da925e68e7 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/hmi/vi_subscribe_vehicle_data_request.cc
@@ -80,6 +80,7 @@ void VISubscribeVehicleDataRequest::Run() {
void VISubscribeVehicleDataRequest::onTimeOut() {
event_engine::Event timeout_event(
hmi_apis::FunctionID::VehicleInfo_SubscribeVehicleData);
+ SDL_LOG_AUTO_TRACE();
auto error_response = MessageHelper::CreateNegativeResponseFromHmi(
function_id(),
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc
index d51790ea55..9e35e96ce3 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/commands/mobile/subscribe_vehicle_data_request.cc
@@ -261,7 +261,7 @@ void SubscribeVehicleDataRequest::AddAlreadySubscribedVI(
struct SubscribedToIVIPredicate {
std::string vehicle_info_;
- SubscribedToIVIPredicate(std::string vehicle_info)
+ explicit SubscribedToIVIPredicate(const std::string& vehicle_info)
: vehicle_info_(vehicle_info) {}
bool operator()(const ApplicationSharedPtr app) const {
DCHECK_OR_RETURN(app, false);
@@ -393,6 +393,7 @@ void SubscribeVehicleDataRequest::CheckVISubscriptions(
return;
}
+ // cppcheck-suppress knownConditionTrueFalse
if (0 == subscribed_items && is_interface_available) {
out_result_code = mobile_apis::Result::IGNORED;
out_info = "Already subscribed on provided VehicleData.";
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc
index b85fd5aaaf..af9d605ff0 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/custom_vehicle_data_manager_impl.cc
@@ -161,7 +161,7 @@ smart_objects::SmartObject CustomVehicleDataManagerImpl::CreateHMIMessageParams(
const policy_table::VehicleDataItem&)>
ParamsConstructor;
- auto fill_param = [](ParamsConstructor& constructor,
+ auto fill_param = [](const ParamsConstructor& constructor,
const policy_table::VehicleDataItem& param,
smart_objects::SmartObject* out_params) {
DCHECK_OR_RETURN_VOID(out_params)
@@ -354,12 +354,14 @@ void CustomVehicleDataManagerImpl::UpdateVehicleDataItems() {
};
auto get_vehicle_data_history =
- [&vehicle_data_items](std::string name) -> std::vector<VehicleDataItem> {
+ [&vehicle_data_items](
+ const std::string& name) -> std::vector<VehicleDataItem> {
std::vector<VehicleDataItem> result;
- std::copy_if(vehicle_data_items.begin(),
- vehicle_data_items.end(),
- std::back_inserter(result),
- [&name](VehicleDataItem& item) { return item.name == name; });
+ std::copy_if(
+ vehicle_data_items.begin(),
+ vehicle_data_items.end(),
+ std::back_inserter(result),
+ [&name](const VehicleDataItem& item) { return item.name == name; });
std::sort(result.begin(),
result.end(),
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_hmi_command_factory.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_hmi_command_factory.cc
index 3687245066..131b5304c4 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_hmi_command_factory.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_hmi_command_factory.cc
@@ -60,7 +60,7 @@ namespace strings = app_mngr::strings;
template <typename VehicleInfoCommandType>
class VehicleInfoCommandCreator : public application_manager::CommandCreator {
public:
- VehicleInfoCommandCreator(const VehicleInfoCommandParams& params)
+ explicit VehicleInfoCommandCreator(const VehicleInfoCommandParams& params)
: params_(params) {}
private:
@@ -85,7 +85,8 @@ template <>
class VehicleInfoCommandCreator<VehicleInfoInvalidCommand>
: public application_manager::CommandCreator {
public:
- VehicleInfoCommandCreator(const VehicleInfoCommandParams& params) {
+ // cppcheck-suppress unusedFunction //Used in VehicleInfoCommandCreatorFactory
+ explicit VehicleInfoCommandCreator(const VehicleInfoCommandParams& params) {
UNUSED(params);
}
@@ -103,7 +104,8 @@ class VehicleInfoCommandCreator<VehicleInfoInvalidCommand>
};
struct VehicleInfoCommandCreatorFactory {
- VehicleInfoCommandCreatorFactory(const VehicleInfoCommandParams& params)
+ explicit VehicleInfoCommandCreatorFactory(
+ const VehicleInfoCommandParams& params)
: params_(params) {}
template <typename VehicleInfoCommandType>
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_mobile_command_factory.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_mobile_command_factory.cc
index b2d7df5d28..77cb5e71d7 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_mobile_command_factory.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_mobile_command_factory.cc
@@ -60,7 +60,7 @@ namespace strings = app_mngr::strings;
template <typename VehicleInfoCommandType>
class VehicleInfoCommandCreator : public application_manager::CommandCreator {
public:
- VehicleInfoCommandCreator(const VehicleInfoCommandParams& params)
+ explicit VehicleInfoCommandCreator(const VehicleInfoCommandParams& params)
: params_(params) {}
private:
@@ -85,7 +85,7 @@ template <>
class VehicleInfoCommandCreator<VehicleInfoInvalidCommand>
: public application_manager::CommandCreator {
public:
- VehicleInfoCommandCreator(const VehicleInfoCommandParams& params) {
+ explicit VehicleInfoCommandCreator(const VehicleInfoCommandParams& params) {
UNUSED(params);
}
@@ -103,7 +103,8 @@ class VehicleInfoCommandCreator<VehicleInfoInvalidCommand>
};
struct VehicleInfoCommandCreatorFactory {
- VehicleInfoCommandCreatorFactory(const VehicleInfoCommandParams& params)
+ explicit VehicleInfoCommandCreatorFactory(
+ const VehicleInfoCommandParams& params)
: params_(params) {}
template <typename VehicleInfoCommandType>
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_pending_resumption_handler.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_pending_resumption_handler.cc
index a6e6148793..6721d93658 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_pending_resumption_handler.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_pending_resumption_handler.cc
@@ -38,6 +38,7 @@
#include "application_manager/resumption/resumption_data_processor.h"
#include "utils/helpers.h"
#include "vehicle_info_plugin/custom_vehicle_data_manager.h"
+#include "vehicle_info_plugin/vehicle_info_plugin.h"
namespace vehicle_info_plugin {
SDL_CREATE_LOG_VARIABLE("VehicleInfoPlugin")
@@ -138,6 +139,7 @@ void VehicleInfoPendingResumptionHandler::RaiseFinishedPendingResumption(
ext.subscribeToVehicleInfo(subscription);
}
+ unsubscribe_from_event(VehicleInfo_SubscribeVehicleData);
auto fake_response =
CreateFakeResponseFromHMI(pending_resumption.subscription_results_,
pending_resumption.fake_corr_id_);
@@ -197,8 +199,10 @@ void VehicleInfoPendingResumptionHandler::TriggerPendingResumption() {
<< " is already waiting for HMI response");
return;
}
- SendHMIRequestForNotSubscribed(pending_resumption);
- pending_resumption.waiting_for_hmi_response_ = true;
+ if (!pending_resumption.IsSuccessfullyDone()) {
+ SendHMIRequestForNotSubscribed(pending_resumption);
+ pending_resumption.waiting_for_hmi_response_ = true;
+ }
}
void VehicleInfoPendingResumptionHandler::on_event(
@@ -206,6 +210,7 @@ void VehicleInfoPendingResumptionHandler::on_event(
SDL_LOG_AUTO_TRACE();
sync_primitives::AutoLock lock(pending_resumption_lock_);
using namespace application_manager;
+
if (pending_requests_.empty()) {
SDL_LOG_DEBUG("Not waiting for any response");
return;
@@ -267,7 +272,17 @@ void VehicleInfoPendingResumptionHandler::HandleResumptionSubscriptionRequest(
SDL_LOG_TRACE("app id " << app.app_id());
auto& ext = dynamic_cast<VehicleInfoAppExtension&>(extension);
- const auto subscriptions = ext.PendingSubscriptions().GetData();
+ auto subscriptions = ext.PendingSubscriptions().GetData();
+ for (auto ivi = subscriptions.begin(); ivi != subscriptions.end();) {
+ if (IsSubscribedAppExist(*ivi, application_manager_)) {
+ ext.RemovePendingSubscription(*ivi);
+ ext.subscribeToVehicleInfo(*ivi);
+ subscriptions.erase(ivi++);
+ } else {
+ ++ivi;
+ }
+ }
+
if (subscriptions.empty()) {
SDL_LOG_DEBUG("Subscriptions is empty");
return;
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc
index 718814b201..1a357a86ee 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/src/vehicle_info_plugin.cc
@@ -48,6 +48,21 @@ namespace strings = application_manager::strings;
namespace plugins = application_manager::plugin_manager;
namespace commands = application_manager::commands;
+bool IsSubscribedAppExist(
+ const std::string& ivi,
+ const application_manager::ApplicationManager& app_manager) {
+ SDL_LOG_AUTO_TRACE();
+ auto apps_accessor = app_manager.applications();
+
+ for (auto& app : apps_accessor.GetData()) {
+ auto& ext = VehicleInfoAppExtension::ExtractVIExtension(*app);
+ if (ext.isSubscribedToVehicleInfo(ivi)) {
+ return true;
+ }
+ }
+ return false;
+}
+
VehicleInfoPlugin::VehicleInfoPlugin()
: application_manager_(nullptr), pending_resumption_handler_(nullptr) {}
@@ -164,13 +179,6 @@ void VehicleInfoPlugin::ProcessResumptionSubscription(
application_manager::Application& app, VehicleInfoAppExtension& ext) {
SDL_LOG_AUTO_TRACE();
- auto pending = ext.PendingSubscriptions().GetData();
- for (const auto& ivi : pending) {
- if (IsSubscribedAppExist(ivi)) {
- ext.RemovePendingSubscription(ivi);
- ext.subscribeToVehicleInfo(ivi);
- }
- }
pending_resumption_handler_->HandleResumptionSubscriptionRequest(ext, app);
}
@@ -181,10 +189,9 @@ void VehicleInfoPlugin::RevertResumption(
UNUSED(app);
pending_resumption_handler_->OnResumptionRevert();
-
std::set<std::string> subscriptions_to_revert;
for (auto& ivi_data : list_of_subscriptions) {
- if (!IsSubscribedAppExist(ivi_data) &&
+ if (!IsSubscribedAppExist(ivi_data, *application_manager_) &&
!IsAnyPendingSubscriptionExist(ivi_data)) {
subscriptions_to_revert.insert(ivi_data);
}
@@ -230,19 +237,6 @@ smart_objects::SmartObjectSPtr VehicleInfoPlugin::CreateUnsubscriptionRequest(
return request;
}
-bool VehicleInfoPlugin::IsSubscribedAppExist(const std::string& ivi) {
- SDL_LOG_AUTO_TRACE();
- auto apps_accessor = application_manager_->applications();
-
- for (auto& app : apps_accessor.GetData()) {
- auto& ext = VehicleInfoAppExtension::ExtractVIExtension(*app);
- if (ext.isSubscribedToVehicleInfo(ivi)) {
- return true;
- }
- }
- return false;
-}
-
bool VehicleInfoPlugin::IsAnyPendingSubscriptionExist(const std::string& ivi) {
SDL_LOG_AUTO_TRACE();
auto apps_accessor = application_manager_->applications();
diff --git a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/vehicle_info_pending_resumption_test.cc b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/vehicle_info_pending_resumption_test.cc
index c2af7236f8..5b2f4d5e25 100644
--- a/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/vehicle_info_pending_resumption_test.cc
+++ b/src/components/application_manager/rpc_plugins/vehicle_info_plugin/test/vehicle_info_pending_resumption_test.cc
@@ -48,6 +48,7 @@ using namespace vehicle_info_plugin;
using ::testing::_;
using ::testing::DoAll;
+using ::testing::Mock;
using ::testing::NiceMock;
using ::testing::Return;
using ::testing::ReturnRef;
@@ -226,8 +227,10 @@ class VehicleInfoPendingResumptionHandlerTest : public ::testing::Test {
VehicleInfoPendingResumptionHandlerTest()
: mock_message_helper_(
*application_manager::MockMessageHelper::message_helper_mock())
-
- {}
+ , applications_lock_(std::make_shared<sync_primitives::Lock>())
+ , applications_(application_set_, applications_lock_) {
+ Mock::VerifyAndClearExpectations(&mock_message_helper_);
+ }
void SetUp() OVERRIDE {
ON_CALL(app_manager_mock_, event_dispatcher())
@@ -238,6 +241,8 @@ class VehicleInfoPendingResumptionHandlerTest : public ::testing::Test {
.WillByDefault(ReturnRef(resume_ctrl_mock_));
ON_CALL(resume_ctrl_mock_, resumption_data_processor())
.WillByDefault(ReturnRef(resumption_data_processor_mock_));
+ EXPECT_CALL(app_manager_mock_, applications())
+ .WillRepeatedly(Return(applications_));
resumption_handler_.reset(
new vehicle_info_plugin::VehicleInfoPendingResumptionHandler(
@@ -245,6 +250,11 @@ class VehicleInfoPendingResumptionHandlerTest : public ::testing::Test {
MessageHelperResponseCreateExpectation();
}
+ ~VehicleInfoPendingResumptionHandlerTest() {
+ Mock::VerifyAndClearExpectations(&mock_message_helper_);
+ Mock::VerifyAndClearExpectations(&app_manager_mock_);
+ }
+
void MessageHelperResponseCreateExpectation() {
const int default_corr_id = 0;
static auto response = CreateHMIResponseMessage(
@@ -277,12 +287,15 @@ class VehicleInfoPendingResumptionHandlerTest : public ::testing::Test {
MockMessageHelper& mock_message_helper_;
MockApplicationManager app_manager_mock_;
- MockResumeCtrl resume_ctrl_mock_;
+ NiceMock<MockResumeCtrl> resume_ctrl_mock_;
MockResumptionDataProcessor resumption_data_processor_mock_;
MockEventDispatcher event_dispatcher_mock_;
MockRPCService mock_rpc_service_;
NiceMock<MockCustomVehicleDataManager> custom_vehicle_data_manager_mock_;
vehicle_info_plugin::VehicleInfoPlugin plugin_;
+ application_manager::ApplicationSet application_set_;
+ std::shared_ptr<sync_primitives::Lock> applications_lock_;
+ DataAccessor<application_manager::ApplicationSet> applications_;
std::unique_ptr<vehicle_info_plugin::VehicleInfoPendingResumptionHandler>
resumption_handler_;
@@ -300,6 +313,8 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest, NoSubscriptionNoAction) {
TEST_F(VehicleInfoPendingResumptionHandlerTest,
OneAppSeveralVehicleDataSuccess) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto ext = CreateExtension(*mock_app);
ext->AddPendingSubscription("gps");
ext->AddPendingSubscription("speed");
@@ -327,6 +342,8 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest,
TEST_F(VehicleInfoPendingResumptionHandlerTest,
OneAppSeveralVehicleDataResponseSuccess) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto ext = CreateExtension(*mock_app);
ext->AddPendingSubscription("gps");
ext->AddPendingSubscription("speed");
@@ -372,6 +389,8 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest,
TEST_F(VehicleInfoPendingResumptionHandlerTest,
OneAppSeveralVehicleDataResponseOneFailed) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto ext = CreateExtension(*mock_app);
ext->AddPendingSubscription("gps");
ext->AddPendingSubscription("speed");
@@ -417,6 +436,8 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest,
TEST_F(VehicleInfoPendingResumptionHandlerTest,
OneAppSeveralVehicleDataResponseAllFailed) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto ext = CreateExtension(*mock_app);
ext->AddPendingSubscription("gps");
ext->AddPendingSubscription("speed");
@@ -457,6 +478,8 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest,
TEST_F(VehicleInfoPendingResumptionHandlerTest,
OneAppSeveralVehicleDataResponseOveralResultFailed) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto ext = CreateExtension(*mock_app);
ext->AddPendingSubscription("gps");
ext->AddPendingSubscription("speed");
@@ -491,7 +514,11 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest,
TEST_F(VehicleInfoPendingResumptionHandlerTest, TwoAppsOneSharedDataSuccess) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto mock_app2 = CreateApp(2);
+ application_set_.insert(mock_app2);
+
auto ext = CreateExtension(*mock_app);
auto ext2 = CreateExtension(*mock_app2);
ext->AddPendingSubscription("gps");
@@ -533,7 +560,11 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest, TwoAppsOneSharedDataSuccess) {
TEST_F(VehicleInfoPendingResumptionHandlerTest,
TwoAppsMultipleSharedDataSuccessResumption) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto mock_app2 = CreateApp(2);
+ application_set_.insert(mock_app2);
+
auto ext = CreateExtension(*mock_app);
auto ext2 = CreateExtension(*mock_app2);
ext->AddPendingSubscription("gps");
@@ -580,7 +611,11 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest,
TEST_F(VehicleInfoPendingResumptionHandlerTest,
TwoAppsOneSharedDataFailRetryforSecondApp) {
auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
auto mock_app2 = CreateApp(2);
+ application_set_.insert(mock_app2);
+
auto ext = CreateExtension(*mock_app);
auto ext2 = CreateExtension(*mock_app2);
ext->AddPendingSubscription("gps");
@@ -633,4 +668,29 @@ TEST_F(VehicleInfoPendingResumptionHandlerTest,
EXPECT_EQ(ext2->PendingSubscriptions().GetData().size(), 0u);
}
+TEST_F(VehicleInfoPendingResumptionHandlerTest,
+ TwoAppsOneSharedDataAlreadySubscribedByFirstAppNoRetryforSecondApp) {
+ auto mock_app = CreateApp(1);
+ application_set_.insert(mock_app);
+
+ auto mock_app2 = CreateApp(2);
+ application_set_.insert(mock_app2);
+
+ auto ext = CreateExtension(*mock_app);
+ auto ext2 = CreateExtension(*mock_app2);
+
+ ext->subscribeToVehicleInfo("gps");
+ ext2->AddPendingSubscription("gps");
+
+ EXPECT_CALL(resumption_data_processor_mock_, SubscribeToResponse(_, _))
+ .Times(0);
+ EXPECT_CALL(event_dispatcher_mock_, raise_event(_)).Times(0);
+ EXPECT_CALL(mock_rpc_service_, ManageHMICommand(_, _)).Times(0);
+
+ resumption_handler_->HandleResumptionSubscriptionRequest(*ext2, *mock_app2);
+
+ EXPECT_TRUE(ext->isSubscribedToVehicleInfo("gps"));
+ EXPECT_TRUE(ext2->isSubscribedToVehicleInfo("gps"));
+ EXPECT_EQ(ext2->PendingSubscriptions().GetData().size(), 0u);
+}
} // namespace vehicle_info_plugin_test
diff --git a/src/components/application_manager/src/app_launch/app_launch_data_db.cc b/src/components/application_manager/src/app_launch/app_launch_data_db.cc
index 7c015b0707..c9357a0ec5 100644
--- a/src/components/application_manager/src/app_launch/app_launch_data_db.cc
+++ b/src/components/application_manager/src/app_launch/app_launch_data_db.cc
@@ -278,10 +278,9 @@ std::vector<ApplicationDataPtr> AppLaunchDataDB::GetAppDataByDevMac(
bool AppLaunchDataDB::Clear() {
SDL_LOG_AUTO_TRACE();
- bool retVal = false;
utils::dbms::SQLQuery query(db());
- retVal = query.Exec(kDropSchema);
+ bool retVal = query.Exec(kDropSchema);
if (retVal) {
SDL_LOG_INFO("App_Launch table had been cleared successfully");
diff --git a/src/components/application_manager/src/app_launch/apps_launcher.cc b/src/components/application_manager/src/app_launch/apps_launcher.cc
index bf1fa2fb5d..1ee7bffb2a 100644
--- a/src/components/application_manager/src/app_launch/apps_launcher.cc
+++ b/src/components/application_manager/src/app_launch/apps_launcher.cc
@@ -56,7 +56,8 @@ void AppsLauncher::StartLaunching(ApplicationDataPtr app_data) {
}
struct AppLauncherFinder {
- AppLauncherFinder(const ApplicationDataPtr& app_data) : app_data_(app_data) {}
+ explicit AppLauncherFinder(const ApplicationDataPtr& app_data)
+ : app_data_(app_data) {}
bool operator()(const AppsLauncher::LauncherPtr& launcher) const {
DCHECK_OR_RETURN(launcher->app_data_ && app_data_, false)
return *launcher->app_data_ == *app_data_;
diff --git a/src/components/application_manager/src/app_launch/device_apps_launcher.cc b/src/components/application_manager/src/app_launch/device_apps_launcher.cc
index 0a1bea3714..5f36e41efb 100644
--- a/src/components/application_manager/src/app_launch/device_apps_launcher.cc
+++ b/src/components/application_manager/src/app_launch/device_apps_launcher.cc
@@ -68,15 +68,6 @@ class Launcher {
LaunchNext();
}
- void OnAppRegistered(const ApplicationDataPtr& app_data) {
- std::vector<ApplicationDataPtr>& apps = apps_on_device_->second;
- std::vector<ApplicationDataPtr>::iterator it =
- std::find(apps.begin(), apps.end(), app_data);
- if (it != apps.end()) {
- apps.erase(it);
- }
- }
-
void Clear() {
gap_between_app_timer_.Stop();
wait_before_launch_timer_.Stop();
diff --git a/src/components/application_manager/src/app_service_manager.cc b/src/components/application_manager/src/app_service_manager.cc
index 6bc970c8a3..9b31d57ca0 100644
--- a/src/components/application_manager/src/app_service_manager.cc
+++ b/src/components/application_manager/src/app_service_manager.cc
@@ -67,7 +67,7 @@ smart_objects::SmartObject AppServiceManager::PublishAppService(
const bool mobile_service,
const uint32_t connection_key) {
SDL_LOG_AUTO_TRACE();
- std::string str_to_hash = "";
+ std::string str_to_hash;
std::string service_id = "";
std::string service_type = manifest[strings::service_type].asString();
@@ -413,10 +413,10 @@ bool AppServiceManager::ActivateAppService(const std::string service_id) {
EnumConversionHelper<mobile_apis::AppServiceType::eType>::EnumToString(
mobile_apis::AppServiceType::NAVIGATION, &navi_service_type);
if (service_type == navi_service_type) {
- smart_objects::SmartObject msg_params;
- msg_params[strings::system_capability][strings::system_capability_type] =
+ smart_objects::SmartObject params;
+ params[strings::system_capability][strings::system_capability_type] =
mobile_apis::SystemCapabilityType::NAVIGATION;
- MessageHelper::BroadcastCapabilityUpdate(msg_params, app_manager_);
+ MessageHelper::BroadcastCapabilityUpdate(params, app_manager_);
}
return true;
}
diff --git a/src/components/application_manager/src/application_impl.cc b/src/components/application_manager/src/application_impl.cc
index 60070524a0..cbfb87023d 100644
--- a/src/components/application_manager/src/application_impl.cc
+++ b/src/components/application_manager/src/application_impl.cc
@@ -116,6 +116,7 @@ ApplicationImpl::ApplicationImpl(
, is_app_allowed_(true)
, is_app_data_resumption_allowed_(false)
, has_been_activated_(false)
+ , is_ready_(false)
, tts_properties_in_none_(false)
, tts_properties_in_full_(false)
, keep_context_(false)
@@ -310,8 +311,9 @@ bool ApplicationImpl::webengine_projection_enabled() const {
struct StateIDComparator {
HmiState::StateID state_id_;
- StateIDComparator(HmiState::StateID state_id) : state_id_(state_id) {}
- bool operator()(const HmiStatePtr cur) {
+ explicit StateIDComparator(HmiState::StateID state_id)
+ : state_id_(state_id) {}
+ bool operator()(const HmiStatePtr cur) const {
return cur->state_id() == state_id_;
}
};
@@ -474,10 +476,6 @@ void ApplicationImpl::set_is_media_application(bool option) {
is_media_ = option;
}
-bool IsTTSState(const HmiStatePtr state) {
- return state->state_id() == HmiState::STATE_ID_TTS_SESSION;
-}
-
void ApplicationImpl::set_tts_properties_in_none(bool active) {
tts_properties_in_none_ = active;
}
@@ -659,7 +657,7 @@ void ApplicationImpl::WakeUpStreaming(
if (ServiceType::kMobileNav == service_type) {
{ // reduce the range of video_streaming_suspended_lock_
- sync_primitives::AutoLock lock(video_streaming_suspended_lock_);
+ sync_primitives::AutoLock auto_lock(video_streaming_suspended_lock_);
if (video_streaming_suspended_) {
application_manager_.OnAppStreaming(app_id(), service_type, true);
application_manager_.ProcessOnDataStreamingNotification(
@@ -672,7 +670,7 @@ void ApplicationImpl::WakeUpStreaming(
timer::kPeriodic);
} else if (ServiceType::kAudio == service_type) {
{ // reduce the range of audio_streaming_suspended_lock_
- sync_primitives::AutoLock lock(audio_streaming_suspended_lock_);
+ sync_primitives::AutoLock auto_lock(audio_streaming_suspended_lock_);
if (audio_streaming_suspended_) {
application_manager_.OnAppStreaming(app_id(), service_type, true);
application_manager_.ProcessOnDataStreamingNotification(
@@ -782,6 +780,15 @@ bool ApplicationImpl::set_activated(bool is_active) {
return true;
}
+bool ApplicationImpl::is_ready() const {
+ return is_ready_;
+}
+
+bool ApplicationImpl::set_is_ready(bool is_ready) {
+ is_ready_ = is_ready;
+ return true;
+}
+
void ApplicationImpl::set_protocol_version(
const protocol_handler::MajorProtocolVersion& protocol_version) {
protocol_version_ = protocol_version;
@@ -930,10 +937,7 @@ bool ApplicationImpl::AreCommandLimitsExceeded(
limit.first = current;
limit.second = 1;
-
return false;
-
- break;
}
// In case of policy table values, there is EVEN limitation for number of
// commands per minute, e.g. 10 command per minute i.e. 1 command per 6 sec
@@ -974,7 +978,6 @@ bool ApplicationImpl::AreCommandLimitsExceeded(
cmd_number_to_time_limits_[cmd_id] = {current, dummy_limit};
return false;
- break;
}
default: {
SDL_LOG_WARN("Limit source is not implemented.");
@@ -1153,10 +1156,10 @@ void ApplicationImpl::SubscribeToSoftButtons(
struct FindSoftButtonId {
uint32_t soft_button_id_;
- FindSoftButtonId(const uint32_t soft_button_id)
+ explicit FindSoftButtonId(const uint32_t soft_button_id)
: soft_button_id_(soft_button_id) {}
- bool operator()(const std::pair<uint32_t, WindowID>& element) {
+ bool operator()(const std::pair<uint32_t, WindowID>& element) const {
return soft_button_id_ == element.first;
}
};
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index 8d4d2c8bec..4a206e19cd 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -229,7 +229,7 @@ ApplicationManagerImpl::ApplicationManagerImpl(
ApplicationManagerImpl::~ApplicationManagerImpl() {
SDL_LOG_AUTO_TRACE();
- is_stopping_ = true;
+ is_stopping_.store(true);
SendOnSDLClose();
media_manager_ = NULL;
hmi_handler_ = NULL;
@@ -693,9 +693,9 @@ ApplicationSharedPtr ApplicationManagerImpl::RegisterApplication(
bool is_mismatched_cloud_app = false;
if (apps_to_register_.end() == it) {
- DevicePredicate finder(application->device());
+ DevicePredicate device_finder(application->device());
it = std::find_if(
- apps_to_register_.begin(), apps_to_register_.end(), finder);
+ apps_to_register_.begin(), apps_to_register_.end(), device_finder);
bool found = apps_to_register_.end() != it;
is_mismatched_cloud_app = found && (*it)->is_cloud_app() &&
@@ -1218,10 +1218,13 @@ void ApplicationManagerImpl::CreatePendingApplication(
application->set_hybrid_app_preference(hybrid_app_preference_enum);
application->set_cloud_app_certificate(app_properties.certificate);
- sync_primitives::AutoLock lock(apps_to_register_list_lock_ptr_);
- SDL_LOG_DEBUG("apps_to_register_ size before: " << apps_to_register_.size());
- apps_to_register_.insert(application);
- SDL_LOG_DEBUG("apps_to_register_ size after: " << apps_to_register_.size());
+ {
+ sync_primitives::AutoLock lock(apps_to_register_list_lock_ptr_);
+ SDL_LOG_DEBUG(
+ "apps_to_register_ size before: " << apps_to_register_.size());
+ apps_to_register_.insert(application);
+ SDL_LOG_DEBUG("apps_to_register_ size after: " << apps_to_register_.size());
+ }
SendUpdateAppList();
}
@@ -1345,10 +1348,8 @@ void ApplicationManagerImpl::SetPendingApplicationState(
app->app_id(), mobile_apis::Result::INVALID_ENUM, true, true);
app->MarkUnregistered();
- {
- sync_primitives::AutoLock lock(apps_to_register_list_lock_ptr_);
- apps_to_register_.insert(app);
- }
+ sync_primitives::AutoLock lock(apps_to_register_list_lock_ptr_);
+ apps_to_register_.insert(app);
}
void ApplicationManagerImpl::OnConnectionStatusUpdated() {
@@ -1639,11 +1640,14 @@ void ApplicationManagerImpl::SendUpdateAppList() {
(*request)[strings::msg_params][strings::applications] =
SmartObject(SmartType_Array);
- SmartObject& applications =
+ SmartObject& applications_so =
(*request)[strings::msg_params][strings::applications];
- PrepareApplicationListSO(applications_, applications, *this);
- PrepareApplicationListSO(apps_to_register_, applications, *this);
+ const auto applications_list = applications().GetData();
+ PrepareApplicationListSO(applications_list, applications_so, *this);
+
+ const auto pending_apps_list = AppsWaitingForRegistration().GetData();
+ PrepareApplicationListSO(pending_apps_list, applications_so, *this);
rpc_service_->ManageHMICommand(request);
}
@@ -1891,8 +1895,8 @@ bool ApplicationManagerImpl::StartNaviService(
/* Fix: For NaviApp1 Switch to NaviApp2, App1's Endcallback() arrives
later than App2's Startcallback(). Cause streaming issue on HMI.
*/
- sync_primitives::AutoLock lock(applications_list_lock_ptr_);
- for (auto app : applications_) {
+ auto accessor = applications();
+ for (auto app : accessor.GetData()) {
if (!app || (!app->is_navi() && !app->mobile_projection_enabled())) {
SDL_LOG_DEBUG("Continue, Not Navi App Id: " << app->app_id());
continue;
@@ -2534,9 +2538,7 @@ bool ApplicationManagerImpl::Init(
bool ApplicationManagerImpl::Stop() {
SDL_LOG_AUTO_TRACE();
- stopping_application_mng_lock_.Acquire();
- is_stopping_ = true;
- stopping_application_mng_lock_.Release();
+ is_stopping_.store(true);
application_list_update_timer_.Stop();
try {
if (unregister_reason_ ==
@@ -2861,6 +2863,7 @@ void ApplicationManagerImpl::ProcessQueryApp(
CreateApplications(*obj_array, connection_key);
SendUpdateAppList();
+ sync_primitives::AutoLock lock(apps_to_register_list_lock_ptr_);
AppsWaitRegistrationSet::const_iterator it = apps_to_register_.begin();
for (; it != apps_to_register_.end(); ++it) {
const std::string full_icon_path((*it)->app_icon_path());
@@ -2959,9 +2962,7 @@ void ApplicationManagerImpl::SetUnregisterAllApplicationsReason(
void ApplicationManagerImpl::HeadUnitReset(
mobile_api::AppInterfaceUnregisteredReason::eType reason) {
SDL_LOG_AUTO_TRACE();
- stopping_application_mng_lock_.Acquire();
- is_stopping_ = true;
- stopping_application_mng_lock_.Release();
+ is_stopping_.store(true);
switch (reason) {
case mobile_api::AppInterfaceUnregisteredReason::MASTER_RESET: {
SDL_LOG_TRACE("Performing MASTER_RESET");
@@ -3081,11 +3082,11 @@ void ApplicationManagerImpl::UnregisterAllApplications() {
SDL_LOG_DEBUG("Unregister reason " << unregister_reason_);
SetHMICooperating(false);
- bool is_ignition_off = false;
+
using namespace mobile_api::AppInterfaceUnregisteredReason;
using namespace helpers;
- is_ignition_off =
+ bool is_ignition_off =
Compare<eType, EQ, ONE>(unregister_reason_, IGNITION_OFF, INVALID_ENUM);
bool is_unexpected_disconnect = Compare<eType, NEQ, ALL>(
@@ -3297,7 +3298,8 @@ void ApplicationManagerImpl::UnregisterApplication(
plugin_manager_->ForEachPlugin(on_app_unregistered);
request_ctrl_.terminateAppRequests(app_id);
- if (applications_.empty()) {
+ const bool is_applications_list_empty = applications().GetData().empty();
+ if (is_applications_list_empty) {
policy_handler_->StopRetrySequence();
}
return;
@@ -3367,7 +3369,6 @@ mobile_apis::Result::eType ApplicationManagerImpl::CheckPolicyPermissions(
}
bool ApplicationManagerImpl::is_stopping() const {
- sync_primitives::AutoLock lock(stopping_application_mng_lock_);
return is_stopping_;
}
@@ -3844,9 +3845,7 @@ bool ApplicationManagerImpl::ResetVrHelpTitleItems(
}
const std::string& vr_help_title = get_settings().vr_help_title();
- smart_objects::SmartObject so_vr_help_title =
- smart_objects::SmartObject(smart_objects::SmartType_String);
- so_vr_help_title = vr_help_title;
+ smart_objects::SmartObject so_vr_help_title(vr_help_title);
app->reset_vr_help_title();
app->reset_vr_help();
@@ -4103,9 +4102,7 @@ void ApplicationManagerImpl::OnApplicationListUpdateTimer() {
const bool is_new_app_registered = registered_during_timer_execution_;
registered_during_timer_execution_ = false;
- apps_to_register_list_lock_ptr_->Acquire();
- const bool trigger_ptu = apps_size_ != applications_.size();
- apps_to_register_list_lock_ptr_->Release();
+ const bool trigger_ptu = apps_size_ != applications().GetData().size();
if (is_new_app_registered) {
SendUpdateAppList();
@@ -4317,7 +4314,7 @@ void ApplicationManagerImpl::OnUpdateHMIAppType(
std::vector<std::string> hmi_types_from_policy;
smart_objects::SmartObject transform_app_hmi_types(
smart_objects::SmartType_Array);
- bool flag_diffirence_app_hmi_type = false;
+ bool flag_diffirence_app_hmi_type;
DataAccessor<ApplicationSet> accessor(applications());
for (ApplicationSetIt it = accessor.GetData().begin();
it != accessor.GetData().end();
@@ -4326,7 +4323,6 @@ void ApplicationManagerImpl::OnUpdateHMIAppType(
if (it_app_hmi_types_from_policy != app_hmi_types.end() &&
((it_app_hmi_types_from_policy->second).size())) {
- flag_diffirence_app_hmi_type = false;
hmi_types_from_policy = (it_app_hmi_types_from_policy->second);
if (transform_app_hmi_types.length()) {
@@ -4548,7 +4544,6 @@ void ApplicationManagerImpl::SendGetIconUrlNotifications(
continue;
}
- std::string endpoint = app_icon_it->second.endpoint;
bool pending_request = app_icon_it->second.pending_request;
if (pending_request) {
@@ -4879,7 +4874,7 @@ void ApplicationManagerImpl::SetMockMediaManager(
#endif // BUILD_TESTS
struct MobileAppIdPredicate {
std::string policy_app_id_;
- MobileAppIdPredicate(const std::string& policy_app_id)
+ explicit MobileAppIdPredicate(const std::string& policy_app_id)
: policy_app_id_(policy_app_id) {}
bool operator()(const ApplicationSharedPtr app) const {
return app ? policy_app_id_ == app->policy_app_id() : false;
@@ -4888,7 +4883,8 @@ struct MobileAppIdPredicate {
struct TakeDeviceHandle {
public:
- TakeDeviceHandle(const ApplicationManager& app_mngr) : app_mngr_(app_mngr) {}
+ explicit TakeDeviceHandle(const ApplicationManager& app_mngr)
+ : app_mngr_(app_mngr) {}
std::string operator()(ApplicationSharedPtr& app) {
DCHECK_OR_RETURN(app, "");
return MessageHelper::GetDeviceMacAddressForHandle(app->device(),
diff --git a/src/components/application_manager/src/application_state.cc b/src/components/application_manager/src/application_state.cc
index 2fb583ab3e..1ec4abaed7 100644
--- a/src/components/application_manager/src/application_state.cc
+++ b/src/components/application_manager/src/application_state.cc
@@ -42,7 +42,7 @@ namespace {
struct StateIDComparator {
application_manager::HmiState::StateID state_id_;
- StateIDComparator(application_manager::HmiState::StateID state_id)
+ explicit StateIDComparator(application_manager::HmiState::StateID state_id)
: state_id_(state_id) {}
bool operator()(const application_manager::HmiStatePtr cur) const {
return cur->state_id() == state_id_;
@@ -209,8 +209,8 @@ void ApplicationState::EraseHMIState(HmiStates& hmi_states,
} else {
HmiStates::iterator next = it;
HmiStates::iterator prev = it;
- next++;
- prev--;
+ ++next;
+ --prev;
if (hmi_states.end() != next) {
HmiStatePtr next_state = *next;
diff --git a/src/components/application_manager/src/commands/command_request_impl.cc b/src/components/application_manager/src/commands/command_request_impl.cc
index 938b7afc99..08bf25de54 100644
--- a/src/components/application_manager/src/commands/command_request_impl.cc
+++ b/src/components/application_manager/src/commands/command_request_impl.cc
@@ -846,7 +846,6 @@ void CommandRequestImpl::GetInfo(
mobile_apis::Result::eType CommandRequestImpl::PrepareResultCodeForResponse(
const ResponseInfo& first, const ResponseInfo& second) {
SDL_LOG_AUTO_TRACE();
- mobile_apis::Result::eType result_code = mobile_apis::Result::INVALID_ENUM;
if (IsResultCodeUnsupported(first, second) ||
IsResultCodeUnsupported(second, first)) {
return mobile_apis::Result::UNSUPPORTED_RESOURCE;
@@ -867,7 +866,7 @@ mobile_apis::Result::eType CommandRequestImpl::PrepareResultCodeForResponse(
if (!second.is_unsupported_resource) {
second_result = second.result_code;
}
- result_code =
+ mobile_apis::Result::eType result_code =
MessageHelper::HMIToMobileResult(std::max(first_result, second_result));
return result_code;
}
diff --git a/src/components/application_manager/src/event_engine/event_dispatcher_impl.cc b/src/components/application_manager/src/event_engine/event_dispatcher_impl.cc
index 3d294f0035..7392731d70 100644
--- a/src/components/application_manager/src/event_engine/event_dispatcher_impl.cc
+++ b/src/components/application_manager/src/event_engine/event_dispatcher_impl.cc
@@ -78,7 +78,7 @@ void EventDispatcherImpl::add_observer(const Event::EventID& event_id,
}
struct IdCheckFunctor {
- IdCheckFunctor(const unsigned long id) : target_id(id) {}
+ explicit IdCheckFunctor(const unsigned long id) : target_id(id) {}
bool operator()(const EventObserver* obs) const {
return (obs->id() == target_id);
diff --git a/src/components/application_manager/src/hmi_capabilities_impl.cc b/src/components/application_manager/src/hmi_capabilities_impl.cc
index 75ca3e89a9..116732d13d 100644
--- a/src/components/application_manager/src/hmi_capabilities_impl.cc
+++ b/src/components/application_manager/src/hmi_capabilities_impl.cc
@@ -54,410 +54,6 @@ namespace formatters = ns_smart_device_link::ns_json_handler::formatters;
SDL_CREATE_LOG_VARIABLE("HMICapabilities")
namespace {
-std::map<std::string, hmi_apis::Common_VrCapabilities::eType>
- vr_enum_capabilities;
-std::map<std::string, hmi_apis::Common_SpeechCapabilities::eType>
- tts_enum_capabilities;
-std::map<std::string, hmi_apis::Common_PrerecordedSpeech::eType>
- tts_enum_prerecorded_speech;
-std::map<std::string, hmi_apis::Common_ButtonName::eType> button_enum_name;
-std::map<std::string, hmi_apis::Common_TextFieldName::eType>
- text_fields_enum_name;
-std::map<std::string, hmi_apis::Common_MediaClockFormat::eType>
- media_clock_enum_name;
-std::map<std::string, hmi_apis::Common_ImageType::eType> image_type_enum;
-std::map<std::string, hmi_apis::Common_SamplingRate::eType> sampling_rate_enum;
-std::map<std::string, hmi_apis::Common_BitsPerSample::eType>
- bit_per_sample_enum;
-std::map<std::string, hmi_apis::Common_AudioType::eType> audio_type_enum;
-std::map<std::string, hmi_apis::Common_HmiZoneCapabilities::eType>
- hmi_zone_enum;
-std::map<std::string, hmi_apis::Common_ImageFieldName::eType>
- image_field_name_enum;
-std::map<std::string, hmi_apis::Common_FileType::eType> file_type_enum;
-std::map<std::string, hmi_apis::Common_DisplayType::eType> display_type_enum;
-std::map<std::string, hmi_apis::Common_CharacterSet::eType> character_set_enum;
-std::map<std::string, hmi_apis::Common_VideoStreamingProtocol::eType>
- video_streaming_protocol_enum;
-std::map<std::string, hmi_apis::Common_VideoStreamingCodec::eType>
- video_streaming_codec_enum;
-
-void InitCapabilities() {
- vr_enum_capabilities.insert(std::make_pair(
- std::string("TEXT"), hmi_apis::Common_VrCapabilities::VR_TEXT));
-
- tts_enum_capabilities.insert(std::make_pair(
- std::string("TEXT"), hmi_apis::Common_SpeechCapabilities::SC_TEXT));
- tts_enum_capabilities.insert(
- std::make_pair(std::string("SAPI_PHONEMES"),
- hmi_apis::Common_SpeechCapabilities::SAPI_PHONEMES));
- tts_enum_capabilities.insert(
- std::make_pair(std::string("LHPLUS_PHONEMES"),
- hmi_apis::Common_SpeechCapabilities::LHPLUS_PHONEMES));
- tts_enum_capabilities.insert(
- std::make_pair(std::string("SAPI_PHONEMES"),
- hmi_apis::Common_SpeechCapabilities::SAPI_PHONEMES));
- tts_enum_capabilities.insert(
- std::make_pair(std::string("PRE_RECORDED"),
- hmi_apis::Common_SpeechCapabilities::PRE_RECORDED));
- tts_enum_capabilities.insert(std::make_pair(
- std::string("SILENCE"), hmi_apis::Common_SpeechCapabilities::SILENCE));
- tts_enum_capabilities.insert(std::make_pair(
- std::string("FILE"), hmi_apis::Common_SpeechCapabilities::FILE));
-
- tts_enum_prerecorded_speech.insert(
- std::make_pair(std::string("HELP_JINGLE"),
- hmi_apis::Common_PrerecordedSpeech::HELP_JINGLE));
- tts_enum_prerecorded_speech.insert(
- std::make_pair(std::string("INITIAL_JINGLE"),
- hmi_apis::Common_PrerecordedSpeech::INITIAL_JINGLE));
- tts_enum_prerecorded_speech.insert(
- std::make_pair(std::string("LISTEN_JINGLE"),
- hmi_apis::Common_PrerecordedSpeech::LISTEN_JINGLE));
- tts_enum_prerecorded_speech.insert(
- std::make_pair(std::string("POSITIVE_JINGLE"),
- hmi_apis::Common_PrerecordedSpeech::POSITIVE_JINGLE));
- tts_enum_prerecorded_speech.insert(
- std::make_pair(std::string("NEGATIVE_JINGLE"),
- hmi_apis::Common_PrerecordedSpeech::NEGATIVE_JINGLE));
-
- button_enum_name.insert(
- std::make_pair(std::string("OK"), hmi_apis::Common_ButtonName::OK));
- button_enum_name.insert(std::make_pair(
- std::string("PLAY_PAUSE"), hmi_apis::Common_ButtonName::PLAY_PAUSE));
- button_enum_name.insert(std::make_pair(
- std::string("SEEKLEFT"), hmi_apis::Common_ButtonName::SEEKLEFT));
- button_enum_name.insert(std::make_pair(
- std::string("SEEKRIGHT"), hmi_apis::Common_ButtonName::SEEKRIGHT));
- button_enum_name.insert(std::make_pair(std::string("TUNEUP"),
- hmi_apis::Common_ButtonName::TUNEUP));
- button_enum_name.insert(std::make_pair(
- std::string("TUNEDOWN"), hmi_apis::Common_ButtonName::TUNEDOWN));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_0"), hmi_apis::Common_ButtonName::PRESET_0));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_1"), hmi_apis::Common_ButtonName::PRESET_1));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_2"), hmi_apis::Common_ButtonName::PRESET_2));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_3"), hmi_apis::Common_ButtonName::PRESET_3));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_4"), hmi_apis::Common_ButtonName::PRESET_4));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_5"), hmi_apis::Common_ButtonName::PRESET_5));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_6"), hmi_apis::Common_ButtonName::PRESET_6));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_7"), hmi_apis::Common_ButtonName::PRESET_7));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_8"), hmi_apis::Common_ButtonName::PRESET_8));
- button_enum_name.insert(std::make_pair(
- std::string("PRESET_9"), hmi_apis::Common_ButtonName::PRESET_9));
- button_enum_name.insert(
- std::make_pair(std::string("CUSTOM_BUTTON"),
- hmi_apis::Common_ButtonName::CUSTOM_BUTTON));
- button_enum_name.insert(std::make_pair(std::string("SEARCH"),
- hmi_apis::Common_ButtonName::SEARCH));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_CENTER_LOCATION"),
- hmi_apis::Common_ButtonName::NAV_CENTER_LOCATION));
- button_enum_name.insert(std::make_pair(
- std::string("NAV_ZOOM_IN"), hmi_apis::Common_ButtonName::NAV_ZOOM_IN));
- button_enum_name.insert(std::make_pair(
- std::string("NAV_ZOOM_OUT"), hmi_apis::Common_ButtonName::NAV_ZOOM_OUT));
- button_enum_name.insert(std::make_pair(
- std::string("NAV_PAN_UP"), hmi_apis::Common_ButtonName::NAV_PAN_UP));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_PAN_UP_RIGHT"),
- hmi_apis::Common_ButtonName::NAV_PAN_UP_RIGHT));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_PAN_RIGHT"),
- hmi_apis::Common_ButtonName::NAV_PAN_RIGHT));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_PAN_DOWN_RIGHT"),
- hmi_apis::Common_ButtonName::NAV_PAN_DOWN_RIGHT));
- button_enum_name.insert(std::make_pair(
- std::string("NAV_PAN_DOWN"), hmi_apis::Common_ButtonName::NAV_PAN_DOWN));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_PAN_DOWN_LEFT"),
- hmi_apis::Common_ButtonName::NAV_PAN_DOWN_LEFT));
- button_enum_name.insert(std::make_pair(
- std::string("NAV_PAN_LEFT"), hmi_apis::Common_ButtonName::NAV_PAN_LEFT));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_PAN_UP_LEFT"),
- hmi_apis::Common_ButtonName::NAV_PAN_UP_LEFT));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_TILT_TOGGLE"),
- hmi_apis::Common_ButtonName::NAV_TILT_TOGGLE));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_ROTATE_CLOCKWISE"),
- hmi_apis::Common_ButtonName::NAV_ROTATE_CLOCKWISE));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_ROTATE_COUNTERCLOCKWISE"),
- hmi_apis::Common_ButtonName::NAV_ROTATE_COUNTERCLOCKWISE));
- button_enum_name.insert(
- std::make_pair(std::string("NAV_HEADING_TOGGLE"),
- hmi_apis::Common_ButtonName::NAV_HEADING_TOGGLE));
-
- text_fields_enum_name.insert(std::make_pair(
- std::string("mainField1"), hmi_apis::Common_TextFieldName::mainField1));
- text_fields_enum_name.insert(std::make_pair(
- std::string("mainField2"), hmi_apis::Common_TextFieldName::mainField2));
- text_fields_enum_name.insert(std::make_pair(
- std::string("mainField3"), hmi_apis::Common_TextFieldName::mainField3));
- text_fields_enum_name.insert(std::make_pair(
- std::string("mainField4"), hmi_apis::Common_TextFieldName::mainField4));
- text_fields_enum_name.insert(std::make_pair(
- std::string("statusBar"), hmi_apis::Common_TextFieldName::statusBar));
- text_fields_enum_name.insert(std::make_pair(
- std::string("mediaClock"), hmi_apis::Common_TextFieldName::mediaClock));
- text_fields_enum_name.insert(std::make_pair(
- std::string("mediaTrack"), hmi_apis::Common_TextFieldName::mediaTrack));
- text_fields_enum_name.insert(std::make_pair(
- std::string("alertText1"), hmi_apis::Common_TextFieldName::alertText1));
- text_fields_enum_name.insert(std::make_pair(
- std::string("alertText2"), hmi_apis::Common_TextFieldName::alertText2));
- text_fields_enum_name.insert(std::make_pair(
- std::string("alertText3"), hmi_apis::Common_TextFieldName::alertText3));
- text_fields_enum_name.insert(
- std::make_pair(std::string("scrollableMessageBody"),
- hmi_apis::Common_TextFieldName::scrollableMessageBody));
- text_fields_enum_name.insert(
- std::make_pair(std::string("initialInteractionText"),
- hmi_apis::Common_TextFieldName::initialInteractionText));
- text_fields_enum_name.insert(
- std::make_pair(std::string("navigationText1"),
- hmi_apis::Common_TextFieldName::navigationText1));
- text_fields_enum_name.insert(
- std::make_pair(std::string("navigationText2"),
- hmi_apis::Common_TextFieldName::navigationText2));
- text_fields_enum_name.insert(
- std::make_pair(std::string("ETA"), hmi_apis::Common_TextFieldName::ETA));
- text_fields_enum_name.insert(
- std::make_pair(std::string("totalDistance"),
- hmi_apis::Common_TextFieldName::totalDistance));
- text_fields_enum_name.insert(std::make_pair(
- std::string("audioPassThruDisplayText1"),
- hmi_apis::Common_TextFieldName::audioPassThruDisplayText1));
- text_fields_enum_name.insert(std::make_pair(
- std::string("audioPassThruDisplayText2"),
- hmi_apis::Common_TextFieldName::audioPassThruDisplayText2));
- text_fields_enum_name.insert(
- std::make_pair(std::string("sliderHeader"),
- hmi_apis::Common_TextFieldName::sliderHeader));
- text_fields_enum_name.insert(
- std::make_pair(std::string("sliderFooter"),
- hmi_apis::Common_TextFieldName::sliderFooter));
- text_fields_enum_name.insert(
- std::make_pair(std::string("navigationText"),
- hmi_apis::Common_TextFieldName::navigationText));
- text_fields_enum_name.insert(
- std::make_pair(std::string("notificationText"),
- hmi_apis::Common_TextFieldName::notificationText));
- text_fields_enum_name.insert(std::make_pair(
- std::string("menuName"), hmi_apis::Common_TextFieldName::menuName));
- text_fields_enum_name.insert(
- std::make_pair(std::string("secondaryText"),
- hmi_apis::Common_TextFieldName::secondaryText));
- text_fields_enum_name.insert(
- std::make_pair(std::string("tertiaryText"),
- hmi_apis::Common_TextFieldName::tertiaryText));
- text_fields_enum_name.insert(
- std::make_pair(std::string("timeToDestination"),
- hmi_apis::Common_TextFieldName::timeToDestination));
- text_fields_enum_name.insert(
- std::make_pair(std::string("locationName"),
- hmi_apis::Common_TextFieldName::locationName));
- text_fields_enum_name.insert(
- std::make_pair(std::string("locationDescription"),
- hmi_apis::Common_TextFieldName::locationDescription));
- text_fields_enum_name.insert(std::make_pair(
- std::string("turnText"), hmi_apis::Common_TextFieldName::turnText));
- text_fields_enum_name.insert(
- std::make_pair(std::string("addressLines"),
- hmi_apis::Common_TextFieldName::addressLines));
- text_fields_enum_name.insert(std::make_pair(
- std::string("phoneNumber"), hmi_apis::Common_TextFieldName::phoneNumber));
- text_fields_enum_name.insert(
- std::make_pair(std::string("subtleAlertText1"),
- hmi_apis::Common_TextFieldName::subtleAlertText1));
- text_fields_enum_name.insert(
- std::make_pair(std::string("subtleAlertText2"),
- hmi_apis::Common_TextFieldName::subtleAlertText2));
- text_fields_enum_name.insert(std::make_pair(
- std::string("subtleAlertSoftButtonText"),
- hmi_apis::Common_TextFieldName::subtleAlertSoftButtonText));
- text_fields_enum_name.insert(std::make_pair(
- std::string("turnText"), hmi_apis::Common_TextFieldName::turnText));
- text_fields_enum_name.insert(std::make_pair(
- std::string("menuTitle"), hmi_apis::Common_TextFieldName::menuTitle));
-
- media_clock_enum_name.insert(std::make_pair(
- std::string("CLOCK1"), hmi_apis::Common_MediaClockFormat::CLOCK1));
- media_clock_enum_name.insert(std::make_pair(
- std::string("CLOCK2"), hmi_apis::Common_MediaClockFormat::CLOCK2));
- media_clock_enum_name.insert(std::make_pair(
- std::string("CLOCK3"), hmi_apis::Common_MediaClockFormat::CLOCK3));
- media_clock_enum_name.insert(
- std::make_pair(std::string("CLOCKTEXT1"),
- hmi_apis::Common_MediaClockFormat::CLOCKTEXT1));
- media_clock_enum_name.insert(
- std::make_pair(std::string("CLOCKTEXT2"),
- hmi_apis::Common_MediaClockFormat::CLOCKTEXT2));
- media_clock_enum_name.insert(
- std::make_pair(std::string("CLOCKTEXT3"),
- hmi_apis::Common_MediaClockFormat::CLOCKTEXT3));
- media_clock_enum_name.insert(
- std::make_pair(std::string("CLOCKTEXT4"),
- hmi_apis::Common_MediaClockFormat::CLOCKTEXT4));
-
- image_type_enum.insert(std::make_pair(std::string("STATIC"),
- hmi_apis::Common_ImageType::STATIC));
- image_type_enum.insert(std::make_pair(std::string("DYNAMIC"),
- hmi_apis::Common_ImageType::DYNAMIC));
-
- sampling_rate_enum.insert(std::make_pair(
- std::string("8KHZ"), hmi_apis::Common_SamplingRate::RATE_8KHZ));
- sampling_rate_enum.insert(std::make_pair(
- std::string("16KHZ"), hmi_apis::Common_SamplingRate::RATE_16KHZ));
- sampling_rate_enum.insert(std::make_pair(
- std::string("22KHZ"), hmi_apis::Common_SamplingRate::RATE_22KHZ));
- sampling_rate_enum.insert(std::make_pair(
- std::string("44KHZ"), hmi_apis::Common_SamplingRate::RATE_44KHZ));
-
- bit_per_sample_enum.insert(std::make_pair(
- std::string("RATE_8_BIT"), hmi_apis::Common_BitsPerSample::RATE_8_BIT));
- bit_per_sample_enum.insert(std::make_pair(
- std::string("RATE_16_BIT"), hmi_apis::Common_BitsPerSample::RATE_16_BIT));
-
- audio_type_enum.insert(
- std::make_pair(std::string("PCM"), hmi_apis::Common_AudioType::PCM));
-
- hmi_zone_enum.insert(std::make_pair(
- std::string("FRONT"), hmi_apis::Common_HmiZoneCapabilities::FRONT));
- hmi_zone_enum.insert(std::make_pair(
- std::string("BACK"), hmi_apis::Common_HmiZoneCapabilities::BACK));
-
- image_field_name_enum.insert(
- std::make_pair(std::string("softButtonImage"),
- hmi_apis::Common_ImageFieldName::softButtonImage));
- image_field_name_enum.insert(
- std::make_pair(std::string("choiceImage"),
- hmi_apis::Common_ImageFieldName::choiceImage));
- image_field_name_enum.insert(
- std::make_pair(std::string("choiceSecondaryImage"),
- hmi_apis::Common_ImageFieldName::choiceSecondaryImage));
- image_field_name_enum.insert(std::make_pair(
- std::string("vrHelpItem"), hmi_apis::Common_ImageFieldName::vrHelpItem));
- image_field_name_enum.insert(std::make_pair(
- std::string("turnIcon"), hmi_apis::Common_ImageFieldName::turnIcon));
- image_field_name_enum.insert(std::make_pair(
- std::string("menuIcon"), hmi_apis::Common_ImageFieldName::menuIcon));
- image_field_name_enum.insert(std::make_pair(
- std::string("cmdIcon"), hmi_apis::Common_ImageFieldName::cmdIcon));
- image_field_name_enum.insert(std::make_pair(
- std::string("appIcon"), hmi_apis::Common_ImageFieldName::appIcon));
- image_field_name_enum.insert(std::make_pair(
- std::string("graphic"), hmi_apis::Common_ImageFieldName::graphic));
- image_field_name_enum.insert(
- std::make_pair(std::string("secondaryGraphic"),
- hmi_apis::Common_ImageFieldName::secondaryGraphic));
- image_field_name_enum.insert(
- std::make_pair(std::string("showConstantTBTIcon"),
- hmi_apis::Common_ImageFieldName::showConstantTBTIcon));
- image_field_name_enum.insert(std::make_pair(
- std::string("showConstantTBTNextTurnIcon"),
- hmi_apis::Common_ImageFieldName::showConstantTBTNextTurnIcon));
- image_field_name_enum.insert(
- std::make_pair(std::string("locationImage"),
- hmi_apis::Common_ImageFieldName::locationImage));
- image_field_name_enum.insert(std::make_pair(
- std::string("alertIcon"), hmi_apis::Common_ImageFieldName::alertIcon));
- image_field_name_enum.insert(
- std::make_pair(std::string("subtleAlertIcon"),
- hmi_apis::Common_ImageFieldName::subtleAlertIcon));
-
- file_type_enum.insert(std::make_pair(std::string("GRAPHIC_BMP"),
- hmi_apis::Common_FileType::GRAPHIC_BMP));
- file_type_enum.insert(std::make_pair(
- std::string("GRAPHIC_JPEG"), hmi_apis::Common_FileType::GRAPHIC_JPEG));
- file_type_enum.insert(std::make_pair(std::string("GRAPHIC_PNG"),
- hmi_apis::Common_FileType::GRAPHIC_PNG));
- file_type_enum.insert(std::make_pair(std::string("AUDIO_WAVE"),
- hmi_apis::Common_FileType::AUDIO_WAVE));
- file_type_enum.insert(std::make_pair(std::string("AUDIO_MP3"),
- hmi_apis::Common_FileType::AUDIO_MP3));
- file_type_enum.insert(std::make_pair(std::string("AUDIO_AAC"),
- hmi_apis::Common_FileType::AUDIO_AAC));
- file_type_enum.insert(
- std::make_pair(std::string("BINARY"), hmi_apis::Common_FileType::BINARY));
- file_type_enum.insert(
- std::make_pair(std::string("JSON"), hmi_apis::Common_FileType::JSON));
-
- display_type_enum.insert(
- std::make_pair(std::string("CID"), hmi_apis::Common_DisplayType::CID));
- display_type_enum.insert(std::make_pair(std::string("TYPE2"),
- hmi_apis::Common_DisplayType::TYPE2));
- display_type_enum.insert(std::make_pair(std::string("TYPE5"),
- hmi_apis::Common_DisplayType::TYPE5));
- display_type_enum.insert(
- std::make_pair(std::string("NGN"), hmi_apis::Common_DisplayType::NGN));
- display_type_enum.insert(std::make_pair(
- std::string("GEN2_8_DMA"), hmi_apis::Common_DisplayType::GEN2_8_DMA));
- display_type_enum.insert(std::make_pair(
- std::string("GEN2_6_DMA"), hmi_apis::Common_DisplayType::GEN2_6_DMA));
- display_type_enum.insert(
- std::make_pair(std::string("MFD3"), hmi_apis::Common_DisplayType::MFD3));
- display_type_enum.insert(
- std::make_pair(std::string("MFD4"), hmi_apis::Common_DisplayType::MFD4));
- display_type_enum.insert(
- std::make_pair(std::string("MFD5"), hmi_apis::Common_DisplayType::MFD5));
- display_type_enum.insert(std::make_pair(
- std::string("GEN3_8_INCH"), hmi_apis::Common_DisplayType::GEN3_8_INCH));
- display_type_enum.insert(std::make_pair(
- std::string("SDL_GENERIC"), hmi_apis::Common_DisplayType::SDL_GENERIC));
-
- character_set_enum.insert(std::make_pair(
- std::string("TYPE2SET"), hmi_apis::Common_CharacterSet::TYPE2SET));
- character_set_enum.insert(std::make_pair(
- std::string("TYPE5SET"), hmi_apis::Common_CharacterSet::TYPE5SET));
- character_set_enum.insert(std::make_pair(
- std::string("CID1SET"), hmi_apis::Common_CharacterSet::CID1SET));
- character_set_enum.insert(std::make_pair(
- std::string("CID2SET"), hmi_apis::Common_CharacterSet::CID2SET));
- character_set_enum.insert(std::make_pair(
- std::string("ASCII"), hmi_apis::Common_CharacterSet::ASCII));
- character_set_enum.insert(std::make_pair(
- std::string("ISO_8859_1"), hmi_apis::Common_CharacterSet::ISO_8859_1));
- character_set_enum.insert(std::make_pair(
- std::string("UTF_8"), hmi_apis::Common_CharacterSet::UTF_8));
-
- video_streaming_protocol_enum.insert(std::make_pair(
- std::string("RAW"), hmi_apis::Common_VideoStreamingProtocol::RAW));
- video_streaming_protocol_enum.insert(std::make_pair(
- std::string("RTP"), hmi_apis::Common_VideoStreamingProtocol::RTP));
- video_streaming_protocol_enum.insert(std::make_pair(
- std::string("RTSP"), hmi_apis::Common_VideoStreamingProtocol::RTSP));
- video_streaming_protocol_enum.insert(std::make_pair(
- std::string("RTMP"), hmi_apis::Common_VideoStreamingProtocol::RTMP));
- video_streaming_protocol_enum.insert(std::make_pair(
- std::string("WEBM"), hmi_apis::Common_VideoStreamingProtocol::WEBM));
-
- video_streaming_codec_enum.insert(std::make_pair(
- std::string("H264"), hmi_apis::Common_VideoStreamingCodec::H264));
- video_streaming_codec_enum.insert(std::make_pair(
- std::string("H265"), hmi_apis::Common_VideoStreamingCodec::H265));
- video_streaming_codec_enum.insert(std::make_pair(
- std::string("Theora"), hmi_apis::Common_VideoStreamingCodec::Theora));
- video_streaming_codec_enum.insert(std::make_pair(
- std::string("VP8"), hmi_apis::Common_VideoStreamingCodec::VP8));
- video_streaming_codec_enum.insert(std::make_pair(
- std::string("VP9"), hmi_apis::Common_VideoStreamingCodec::VP9));
-}
-
-} // namespace
-
-namespace {
/**
* @brief Saves smart object content into the JSON node
* @param field_name name of the field to save
@@ -522,7 +118,6 @@ HMICapabilitiesImpl::HMICapabilitiesImpl(ApplicationManager& app_mngr)
, seat_location_capability_(NULL)
, app_mngr_(app_mngr)
, hmi_language_handler_(app_mngr) {
- InitCapabilities();
if (false == app_mngr_.get_settings().launch_hmi()) {
is_vr_cooperating_ = true;
is_tts_cooperating_ = true;
@@ -1015,7 +610,7 @@ struct JsonCapabilitiesGetter {
* @param json_cache_node reference to cached JSON capabilities node
*/
JsonCapabilitiesGetter(Json::Value& json_default_node,
- Json::Value& json_cache_node)
+ const Json::Value& json_cache_node)
: json_default_node_(json_default_node)
, json_cache_node_(json_cache_node) {}
@@ -1187,14 +782,12 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
ui_display_capabilities_node, display_capabilities_so);
if (display_capabilities_so.keyExists(hmi_response::display_type)) {
- std::map<std::string,
- hmi_apis::Common_DisplayType::eType>::const_iterator it =
- display_type_enum.find(
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_DisplayType::eType>(
(display_capabilities_so[hmi_response::display_type])
.asString());
- display_capabilities_so.erase(hmi_response::display_type);
- if (display_type_enum.end() != it) {
- display_capabilities_so[hmi_response::display_type] = it->second;
+ if (hmi_apis::Common_DisplayType::INVALID_ENUM != enum_value) {
+ display_capabilities_so[hmi_response::display_type] = enum_value;
}
}
@@ -1205,34 +798,34 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
for (uint32_t i = 0; i < kLen; ++i) {
if ((display_capabilities_so[hmi_response::text_fields][i])
.keyExists(strings::name)) {
- std::map<std::string,
- hmi_apis::Common_TextFieldName::eType>::const_iterator
- it_text_field_name = text_fields_enum_name.find(
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_TextFieldName::eType>(
display_capabilities_so[hmi_response::text_fields][i]
[strings::name]
.asString());
+
display_capabilities_so[hmi_response::text_fields][i].erase(
strings::name);
- if (text_fields_enum_name.end() != it_text_field_name) {
+
+ if (hmi_apis::Common_TextFieldName::INVALID_ENUM != enum_value) {
display_capabilities_so[hmi_response::text_fields][i]
- [strings::name] =
- it_text_field_name->second;
+ [strings::name] = enum_value;
}
}
if ((display_capabilities_so[hmi_response::text_fields][i])
.keyExists(strings::character_set)) {
- std::map<std::string,
- hmi_apis::Common_CharacterSet::eType>::const_iterator
- it_characte_set = character_set_enum.find(
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_CharacterSet::eType>(
display_capabilities_so[hmi_response::text_fields][i]
[strings::character_set]
.asString());
+
display_capabilities_so[hmi_response::text_fields][i].erase(
strings::character_set);
- if (character_set_enum.end() != it_characte_set) {
+
+ if (hmi_apis::Common_CharacterSet::INVALID_ENUM != enum_value) {
display_capabilities_so[hmi_response::text_fields][i]
- [strings::character_set] =
- it_characte_set->second;
+ [strings::character_set] = enum_value;
}
}
}
@@ -1243,13 +836,12 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
display_capabilities_so[hmi_response::image_fields];
for (uint32_t i = 0; i < array_image_fields.length(); ++i) {
if (array_image_fields[i].keyExists(strings::name)) {
- std::map<std::string,
- hmi_apis::Common_ImageFieldName::eType>::const_iterator
- it = image_field_name_enum.find(
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_ImageFieldName::eType>(
(array_image_fields[i][strings::name]).asString());
array_image_fields[i].erase(strings::name);
- if (image_field_name_enum.end() != it) {
- array_image_fields[i][strings::name] = it->second;
+ if (hmi_apis::Common_ImageFieldName::INVALID_ENUM != enum_value) {
+ array_image_fields[i][strings::name] = enum_value;
}
}
if (array_image_fields[i].keyExists(
@@ -1261,12 +853,11 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
for (uint32_t k = 0, j = 0;
k < image_type_supported_array.length();
++k) {
- std::map<std::string,
- hmi_apis::Common_FileType::eType>::const_iterator it =
- file_type_enum.find(
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_FileType::eType>(
(image_type_supported_array[k]).asString());
- if (file_type_enum.end() != it) {
- image_type_supported_enum[j++] = it->second;
+ if (hmi_apis::Common_FileType::INVALID_ENUM != enum_value) {
+ image_type_supported_enum[j++] = enum_value;
}
}
array_image_fields[i].erase(strings::image_type_supported);
@@ -1283,12 +874,11 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
smart_objects::SmartType_Array);
for (uint32_t i = 0, j = 0; i < media_clock_formats_array.length();
++i) {
- std::map<std::string,
- hmi_apis::Common_MediaClockFormat::eType>::const_iterator
- it = media_clock_enum_name.find(
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_MediaClockFormat::eType>(
(media_clock_formats_array[i]).asString());
- if (media_clock_enum_name.end() != it) {
- media_clock_formats_enum[j++] = it->second;
+ if (hmi_apis::Common_MediaClockFormat::INVALID_ENUM != enum_value) {
+ media_clock_formats_enum[j++] = enum_value;
}
}
display_capabilities_so.erase(hmi_response::media_clock_formats);
@@ -1304,11 +894,11 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
smart_objects::SmartType_Array);
for (uint32_t i = 0, j = 0; i < image_capabilities_array.length();
++i) {
- std::map<std::string,
- hmi_apis::Common_ImageType::eType>::const_iterator it =
- image_type_enum.find((image_capabilities_array[i]).asString());
- if (image_type_enum.end() != it) {
- image_capabilities_enum[j++] = it->second;
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_ImageType::eType>(
+ (image_capabilities_array[i]).asString());
+ if (hmi_apis::Common_ImageType::INVALID_ENUM != enum_value) {
+ image_capabilities_enum[j++] = enum_value;
}
}
display_capabilities_so.erase(hmi_response::image_capabilities);
@@ -1351,18 +941,20 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
pcm_capabilities_so);
set_pcm_stream_capabilities(pcm_capabilities_so);
}
-
auto ui_hmi_zone_capabilities_node =
json_ui_getter.GetJsonMember(hmi_response::hmi_zone_capabilities,
hmi_apis::FunctionID::UI_GetCapabilities,
requests_required_for_capabilities_);
if (!ui_hmi_zone_capabilities_node.isNull()) {
- smart_objects::SmartObject hmi_zone_capabilities_so =
- smart_objects::SmartObject(smart_objects::SmartType_Array);
- hmi_zone_capabilities_so =
- hmi_zone_enum.find(ui_hmi_zone_capabilities_node.asString())
- ->second;
- set_hmi_zone_capabilities(hmi_zone_capabilities_so);
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_HmiZoneCapabilities::eType>(
+ ui_hmi_zone_capabilities_node.asString());
+ if (hmi_apis::Common_HmiZoneCapabilities::INVALID_ENUM != enum_value) {
+ smart_objects::SmartObject hmi_zone_capabilities_so(
+ smart_objects::SmartType_Array);
+ hmi_zone_capabilities_so = enum_value;
+ set_hmi_zone_capabilities(hmi_zone_capabilities_so);
+ }
}
auto ui_soft_button_capabilities_node =
@@ -1425,26 +1017,23 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
continue;
}
- std::map<std::string,
- hmi_apis::Common_VideoStreamingProtocol::eType>::
- const_iterator it_protocol =
- video_streaming_protocol_enum.find(
- supported_format_array[i][strings::protocol]
- .asString());
-
- std::map<std::string,
- hmi_apis::Common_VideoStreamingCodec::eType>::
- const_iterator it_codec = video_streaming_codec_enum.find(
- supported_format_array[i][strings::codec].asString());
+ auto enum_value_protocol = ConvertStringToEnum<
+ hmi_apis::Common_VideoStreamingProtocol::eType>(
+ supported_format_array[i][strings::protocol].asString());
+ auto enum_value_codec = ConvertStringToEnum<
+ hmi_apis::Common_VideoStreamingCodec::eType>(
+ supported_format_array[i][strings::codec].asString());
// format is valid only if both protocol and codec are converted
// to enum values successfully
- if (it_protocol != video_streaming_protocol_enum.end() &&
- it_codec != video_streaming_codec_enum.end()) {
+ if (hmi_apis::Common_VideoStreamingProtocol::INVALID_ENUM !=
+ enum_value_protocol &&
+ hmi_apis::Common_VideoStreamingCodec::INVALID_ENUM !=
+ enum_value_codec) {
smart_objects::SmartObject format_so =
smart_objects::SmartObject(smart_objects::SmartType_Map);
- format_so[strings::protocol] = it_protocol->second;
- format_so[strings::codec] = it_codec->second;
+ format_so[strings::protocol] = enum_value_protocol;
+ format_so[strings::codec] = enum_value_codec;
converted_array[j++] = format_so;
}
}
@@ -1643,13 +1232,11 @@ bool HMICapabilitiesImpl::LoadCapabilitiesFromFile() {
for (uint32_t i = 0; i < buttons_capabilities_so.length(); ++i) {
if ((buttons_capabilities_so[i]).keyExists(strings::name)) {
- std::map<std::string,
- hmi_apis::Common_ButtonName::eType>::const_iterator it =
- button_enum_name.find(
+ auto enum_value =
+ ConvertStringToEnum<hmi_apis::Common_ButtonName::eType>(
(buttons_capabilities_so[i][strings::name]).asString());
- buttons_capabilities_so[i].erase(strings::name);
- if (button_enum_name.end() != it) {
- buttons_capabilities_so[i][strings::name] = it->second;
+ if (hmi_apis::Common_ButtonName::INVALID_ENUM != enum_value) {
+ buttons_capabilities_so[i][strings::name] = enum_value;
}
}
}
@@ -2243,19 +1830,18 @@ void HMICapabilitiesImpl::convert_audio_capability_to_obj(
smart_objects::SmartObject& output_so) const {
if (JsonIsMemberSafe(capability, "samplingRate")) {
output_so[strings::sampling_rate] =
- sampling_rate_enum.find(capability.get("samplingRate", "").asString())
- ->second;
+ ConvertStringToEnum<hmi_apis::Common_SamplingRate::eType>(
+ capability.get("samplingRate", "").asString());
}
if (JsonIsMemberSafe(capability, "bitsPerSample")) {
output_so[strings::bits_per_sample] =
- bit_per_sample_enum
- .find(capability.get("bitsPerSample", "").asString())
- ->second;
+ ConvertStringToEnum<hmi_apis::Common_BitsPerSample::eType>(
+ capability.get("bitsPerSample", "").asString());
}
if (JsonIsMemberSafe(capability, "audioType")) {
output_so[strings::audio_type] =
- audio_type_enum.find(capability.get("audioType", "").asString())
- ->second;
+ ConvertStringToEnum<hmi_apis::Common_AudioType::eType>(
+ capability.get("audioType", "").asString());
}
}
diff --git a/src/components/application_manager/src/hmi_state.cc b/src/components/application_manager/src/hmi_state.cc
index 3dadd8c193..fde2022364 100644
--- a/src/components/application_manager/src/hmi_state.cc
+++ b/src/components/application_manager/src/hmi_state.cc
@@ -426,6 +426,8 @@ const StateID2StrMap kStateID2StrMap =
HmiState::StateID::STATE_ID_EMBEDDED_NAVI, "EMBEDDED_NAVI");
} // anonymous namespace
+// cppcheck-suppress unusedFunction //Used in the next
+// overload of operator<<
std::ostream& operator<<(std::ostream& os, const HmiState::StateID src) {
try {
os << kStateID2StrMap.left.at(src);
diff --git a/src/components/application_manager/src/message_helper/message_helper.cc b/src/components/application_manager/src/message_helper/message_helper.cc
index 314f3731ec..b66742a7f5 100644
--- a/src/components/application_manager/src/message_helper/message_helper.cc
+++ b/src/components/application_manager/src/message_helper/message_helper.cc
@@ -107,7 +107,7 @@ bool ValidateSoftButtons(smart_objects::SmartObject& soft_buttons) {
struct GroupsAppender
: std::unary_function<void, const PermissionsList::value_type&> {
- GroupsAppender(smart_objects::SmartObject& groups)
+ explicit GroupsAppender(smart_objects::SmartObject& groups)
: groups_(groups), index_(0) {}
void operator()(const PermissionsList::value_type& item) {
@@ -135,7 +135,7 @@ struct GroupsAppender
struct ExternalConsentStatusAppender
: std::unary_function<void,
const policy::ExternalConsentStatus::value_type&> {
- ExternalConsentStatusAppender(smart_objects::SmartObject& status)
+ explicit ExternalConsentStatusAppender(smart_objects::SmartObject& status)
: status_(status), index_(0) {}
void operator()(const policy::ExternalConsentStatus::value_type& item) {
@@ -668,23 +668,23 @@ void MessageHelper::SendDeleteSubmenuRequest(smart_objects::SmartObject* cmd,
if ((*cmd)[strings::menu_id].asInt() ==
(*it->second)[strings::menu_params][hmi_request::parent_id].asInt()) {
- SmartObject msg_params = SmartObject(smart_objects::SmartType_Map);
- msg_params[strings::cmd_id] = (*it->second)[strings::cmd_id].asInt();
- msg_params[strings::app_id] = application->app_id();
- msg_params[strings::grammar_id] = application->get_grammar_id();
- msg_params[strings::type] = hmi_apis::Common_VRCommandType::Command;
+ SmartObject params = SmartObject(smart_objects::SmartType_Map);
+ params[strings::cmd_id] = (*it->second)[strings::cmd_id].asInt();
+ params[strings::app_id] = application->app_id();
+ params[strings::grammar_id] = application->get_grammar_id();
+ params[strings::type] = hmi_apis::Common_VRCommandType::Command;
- SmartObjectSPtr message = CreateMessageForHMI(
+ SmartObjectSPtr hmi_message = CreateMessageForHMI(
hmi_apis::messageType::request, app_mngr.GetNextHMICorrelationID());
- DCHECK(message);
+ DCHECK(hmi_message);
- SmartObject& object = *message;
- object[strings::params][strings::function_id] =
+ SmartObject& smart_object = *hmi_message;
+ smart_object[strings::params][strings::function_id] =
hmi_apis::FunctionID::VR_DeleteCommand;
- object[strings::msg_params] = msg_params;
+ smart_object[strings::msg_params] = params;
- app_mngr.GetRPCService().ManageHMICommand(message);
+ app_mngr.GetRPCService().ManageHMICommand(hmi_message);
}
}
}
@@ -725,9 +725,7 @@ void MessageHelper::SendResetPropertiesRequest(ApplicationSharedPtr application,
using namespace smart_objects;
{
- SmartObject msg_params = SmartObject(smart_objects::SmartType_Map);
-
- msg_params = *MessageHelper::CreateAppVrHelp(application);
+ SmartObject msg_params = *MessageHelper::CreateAppVrHelp(application);
msg_params[hmi_request::menu_title] = "";
smart_objects::SmartObject keyboard_properties =
@@ -952,7 +950,7 @@ void MessageHelper::CreateGetVehicleDataRequest(
smart_objects::SmartObject(smart_objects::SmartType_Map);
for (std::vector<std::string>::const_iterator it = params.begin();
it != params.end();
- it++) {
+ ++it) {
(*request)[strings::msg_params][*it] = true;
}
app_mngr.GetRPCService().ManageHMICommand(request);
@@ -1229,8 +1227,6 @@ MessageHelper::CreateGlobalPropertiesRequestsToHMI(
ApplicationConstSharedPtr app, ApplicationManager& app_mngr) {
SDL_LOG_AUTO_TRACE();
- uint32_t correlation_id = app_mngr.GetNextHMICorrelationID();
-
smart_objects::SmartObjectList requests;
if (app.use_count() == 0) {
SDL_LOG_ERROR("Invalid application");
@@ -1290,7 +1286,7 @@ MessageHelper::CreateGlobalPropertiesRequestsToHMI(
// TTS global properties
if (can_send_vr && (app->help_prompt() || app->timeout_prompt())) {
- correlation_id = app_mngr.GetNextHMICorrelationID();
+ uint32_t correlation_id = app_mngr.GetNextHMICorrelationID();
smart_objects::SmartObjectSPtr tts_global_properties =
CreateMessageForHMI(hmi_apis::messageType::request, correlation_id);
if (!tts_global_properties) {
@@ -1549,8 +1545,6 @@ MessageHelper::CreateAddVRCommandRequestFromChoiceToHMI(
msg_params[strings::cmd_id] =
(*(it->second))[strings::choice_set][j][strings::choice_id];
msg_params[strings::vr_commands] =
- smart_objects::SmartObject(smart_objects::SmartType_Array);
- msg_params[strings::vr_commands] =
(*(it->second))[strings::choice_set][j][strings::vr_commands];
msg_params[strings::type] = hmi_apis::Common_VRCommandType::Choice;
msg_params[strings::grammar_id] = choice_grammar_id;
@@ -3352,10 +3346,7 @@ mobile_apis::Result::eType MessageHelper::ProcessSoftButtons(
}
break;
}
- default: {
- continue;
- break;
- }
+ default: { continue; }
}
soft_buttons[j++] = request_soft_buttons[i];
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc
index 404a95f807..e4e78c6f7e 100644
--- a/src/components/application_manager/src/policies/policy_handler.cc
+++ b/src/components/application_manager/src/policies/policy_handler.cc
@@ -2329,12 +2329,6 @@ void PolicyHandler::OnSetCloudAppProperties(
policy_manager_->InitCloudApp(policy_app_id);
bool auth_token_update = false;
- if (properties.keyExists(strings::enabled)) {
- bool enabled = properties[strings::enabled].asBool();
- policy_manager_->SetCloudAppEnabled(policy_app_id, enabled);
- auth_token_update = enabled;
- application_manager_.RefreshCloudAppInformation();
- }
if (properties.keyExists(strings::auth_token)) {
std::string auth_token = properties[strings::auth_token].asString();
policy_manager_->SetAppAuthToken(policy_app_id, auth_token);
@@ -2368,6 +2362,14 @@ void PolicyHandler::OnSetCloudAppProperties(
policy_manager_->SetHybridAppPreference(policy_app_id,
hybrid_app_preference);
}
+ if (properties.keyExists(strings::enabled)) {
+ bool enabled = properties[strings::enabled].asBool();
+ policy_manager_->SetCloudAppEnabled(policy_app_id, enabled);
+ if (!auth_token_update) {
+ auth_token_update = enabled;
+ }
+ application_manager_.RefreshCloudAppInformation();
+ }
if (auth_token_update) {
AppProperties app_properties;
@@ -2390,8 +2392,6 @@ bool PolicyHandler::CheckAppServiceParameters(
const std::string& requested_service_name,
const std::string& requested_service_type,
smart_objects::SmartArray* requested_handled_rpcs) const {
- std::string service_name = std::string();
- std::string service_type = std::string();
std::vector<int32_t> handled_rpcs = {};
policy_table::AppServiceParameters app_service_parameters =
diff --git a/src/components/application_manager/src/request_controller.cc b/src/components/application_manager/src/request_controller.cc
index d2db9fced2..a34457ff66 100644
--- a/src/components/application_manager/src/request_controller.cc
+++ b/src/components/application_manager/src/request_controller.cc
@@ -81,7 +81,7 @@ void RequestController::InitializeThreadpool() {
pool_state_ = TPoolState::STARTED;
char name[50];
for (uint32_t i = 0; i < pool_size_; i++) {
- snprintf(name, sizeof(name) / sizeof(name[0]), "AM Pool %d", i);
+ snprintf(name, sizeof(name) / sizeof(name[0]), "AM Pool %u", i);
pool_.push_back(threads::CreateThread(name, new Worker(this)));
pool_[i]->Start();
SDL_LOG_DEBUG("Request thread initialized: " << name);
diff --git a/src/components/application_manager/src/request_info.cc b/src/components/application_manager/src/request_info.cc
index 1149c9aaf9..e1fffdf6fe 100644
--- a/src/components/application_manager/src/request_info.cc
+++ b/src/components/application_manager/src/request_info.cc
@@ -219,7 +219,7 @@ bool RequestInfoSet::Erase(const RequestInfoPtr request_info) {
DCHECK(request_info == found);
time_sorted_pending_requests_.erase(it);
CheckSetSizes();
- return 1 == erased_count;
+ return true;
}
CheckSetSizes();
return false;
diff --git a/src/components/application_manager/src/resumption/resume_ctrl_impl.cc b/src/components/application_manager/src/resumption/resume_ctrl_impl.cc
index 8295ddd1f9..545560c132 100644
--- a/src/components/application_manager/src/resumption/resume_ctrl_impl.cc
+++ b/src/components/application_manager/src/resumption/resume_ctrl_impl.cc
@@ -60,7 +60,8 @@ static mobile_api::HMILevel::eType PickHigherHmiLevel(
mobile_api::HMILevel::eType val1, mobile_api::HMILevel::eType val2);
static mobile_api::HMILevel::eType PickLowerHmiLevel(
mobile_api::HMILevel::eType val1, mobile_api::HMILevel::eType val2);
-static mobile_api::HMILevel::eType ConvertHmiLevelString(const std::string str);
+static mobile_api::HMILevel::eType ConvertHmiLevelString(
+ const std::string& str);
SDL_CREATE_LOG_VARIABLE("Resumption")
@@ -1037,7 +1038,7 @@ static mobile_api::HMILevel::eType PickLowerHmiLevel(
}
static mobile_api::HMILevel::eType ConvertHmiLevelString(
- const std::string str) {
+ const std::string& str) {
using namespace mobile_apis;
if ("BACKGROUND" == str) {
@@ -1046,8 +1047,6 @@ static mobile_api::HMILevel::eType ConvertHmiLevelString(
return HMILevel::HMI_FULL;
} else if ("LIMITED" == str) {
return HMILevel::HMI_LIMITED;
- } else if ("NONE" == str) {
- return HMILevel::HMI_NONE;
} else {
return HMILevel::HMI_NONE;
}
diff --git a/src/components/application_manager/src/resumption/resumption_data.cc b/src/components/application_manager/src/resumption/resumption_data.cc
index 558724ecdc..95dd331b88 100644
--- a/src/components/application_manager/src/resumption/resumption_data.cc
+++ b/src/components/application_manager/src/resumption/resumption_data.cc
@@ -186,7 +186,7 @@ smart_objects::SmartObject ResumptionData::GetApplicationFiles(
int i = 0;
for (AppFilesMap::const_iterator file_it = app_files.begin();
file_it != app_files.end();
- file_it++) {
+ ++file_it) {
const AppFile& file = file_it->second;
if (file.is_persistent) {
smart_objects::SmartObject file_data =
diff --git a/src/components/application_manager/src/resumption/resumption_data_db.cc b/src/components/application_manager/src/resumption/resumption_data_db.cc
index 88f28a41a3..f00b100913 100644
--- a/src/components/application_manager/src/resumption/resumption_data_db.cc
+++ b/src/components/application_manager/src/resumption/resumption_data_db.cc
@@ -1756,7 +1756,6 @@ bool ResumptionDataDB::ExecInsertChoice(
field "idimage" from table "choice" = 4
field "idsecondaryImage" from table "choice" = 5*/
int64_t image_primary_key = 0;
- int64_t choice_primary_key = 0;
size_t length_choice_array = choice_array.length();
for (size_t i = 0; i < length_choice_array; ++i) {
insert_choice.Bind(0, (choice_array[i][strings::choice_id]).asInt());
@@ -1789,7 +1788,7 @@ bool ResumptionDataDB::ExecInsertChoice(
SDL_LOG_WARN("Problem with execution insert_choice query");
return false;
}
- choice_primary_key = insert_choice.LastInsertId();
+ int64_t choice_primary_key = insert_choice.LastInsertId();
if ((!ExecInsertVrCommands(choice_primary_key,
choice_array[i][strings::vr_commands],
@@ -2082,7 +2081,6 @@ bool ResumptionDataDB::InsertCommandsData(
}
utils::dbms::SQLQuery query_insert_command(db());
int64_t image_primary_key = 0;
- int64_t command_primary_key = 0;
if (!query_insert_command.Prepare(kInsertToCommand)) {
SDL_LOG_WARN("Problem with verification queries for insertion commands");
@@ -2121,7 +2119,7 @@ bool ResumptionDataDB::InsertCommandsData(
SDL_LOG_WARN("Incorrect insertion of command data to DB");
return false;
}
- command_primary_key = query_insert_command.LastInsertId();
+ int64_t command_primary_key = query_insert_command.LastInsertId();
if (commands[i].keyExists(strings::vr_commands)) {
if (!ExecInsertVrCommands(command_primary_key,
commands[i][strings::vr_commands],
diff --git a/src/components/application_manager/src/resumption/resumption_data_processor_impl.cc b/src/components/application_manager/src/resumption/resumption_data_processor_impl.cc
index c067167041..a490429197 100644
--- a/src/components/application_manager/src/resumption/resumption_data_processor_impl.cc
+++ b/src/components/application_manager/src/resumption/resumption_data_processor_impl.cc
@@ -1015,7 +1015,7 @@ void ResumptionDataProcessorImpl::DeletePluginsSubscriptions(
if (!status.successful_module_subscriptions_.empty()) {
extension_modules_subscriptions[message_params::kModuleData] =
- new smart_objects::SmartObject(smart_objects::SmartType_Array);
+ smart_objects::SmartObject(smart_objects::SmartType_Array);
auto& module_data_so =
extension_modules_subscriptions[message_params::kModuleData];
@@ -1023,7 +1023,7 @@ void ResumptionDataProcessorImpl::DeletePluginsSubscriptions(
uint32_t index = 0;
for (const auto& module : status.successful_module_subscriptions_) {
module_data_so[index] =
- new smart_objects::SmartObject(smart_objects::SmartType_Map);
+ smart_objects::SmartObject(smart_objects::SmartType_Map);
module_data_so[index][message_params::kModuleType] = module.first;
module_data_so[index][message_params::kModuleId] = module.second;
index++;
diff --git a/src/components/application_manager/src/state_controller_impl.cc b/src/components/application_manager/src/state_controller_impl.cc
index ec77e30db7..e7ec998a2f 100644
--- a/src/components/application_manager/src/state_controller_impl.cc
+++ b/src/components/application_manager/src/state_controller_impl.cc
@@ -394,7 +394,7 @@ void StateControllerImpl::HmiLevelConflictResolver::operator()(
result_video_state = mobile_apis::VideoStreamingState::STREAMABLE;
}
- mobile_apis::HMILevel::eType result_hmi_level = state_to_resolve->hmi_level();
+ mobile_apis::HMILevel::eType result_hmi_level;
using namespace helpers;
if (mobile_apis::VideoStreamingState::STREAMABLE == result_video_state ||
@@ -714,7 +714,52 @@ void StateControllerImpl::UpdateAppWindowsStreamingState(
}
}
-void StateControllerImpl::on_event(const event_engine::MobileEvent& event) {}
+void StateControllerImpl::on_event(const event_engine::MobileEvent& event) {
+ using namespace mobile_apis;
+
+ SDL_LOG_AUTO_TRACE();
+ SDL_LOG_DEBUG("Received event for function" << event.id());
+ switch (event.id()) {
+ case FunctionID::RegisterAppInterfaceID: {
+ auto message = event.smart_object();
+ uint32_t connection_key =
+ message[strings::params][strings::connection_key].asUInt();
+ ApplicationSharedPtr app = app_mngr_.application(connection_key);
+
+ if (app.use_count() == 0) {
+ SDL_LOG_WARN("Application doesn't exist");
+ return;
+ }
+ {
+ sync_primitives::AutoLock autolock(
+ apps_with_pending_hmistatus_notification_lock_);
+
+ auto it = apps_with_pending_hmistatus_notification_.find(app->app_id());
+ if (it == apps_with_pending_hmistatus_notification_.end()) {
+ SDL_LOG_WARN("Application does not have a pending OnHMIStatus");
+ return;
+ }
+
+ bool success = message[strings::msg_params][strings::success].asBool();
+ if (success) {
+ // Only send notification if RAI was a success
+ auto notification =
+ MessageHelper::CreateHMIStatusNotification(app, 0);
+ app_mngr_.GetRPCService().ManageMobileCommand(
+ notification, commands::Command::SOURCE_SDL);
+ }
+
+ apps_with_pending_hmistatus_notification_.erase(app->app_id());
+ if (apps_with_pending_hmistatus_notification_.empty()) {
+ unsubscribe_from_event(FunctionID::RegisterAppInterfaceID);
+ }
+ }
+ } break;
+
+ default:
+ break;
+ }
+}
void StateControllerImpl::on_event(const event_engine::Event& event) {
using event_engine::Event;
@@ -758,11 +803,11 @@ void StateControllerImpl::on_event(const event_engine::Event& event) {
case FunctionID::BasicCommunication_OnEventChanged: {
bool is_active =
message[strings::msg_params][hmi_notification::is_active].asBool();
- const uint32_t id =
+ const uint32_t event_id =
message[strings::msg_params][hmi_notification::event_name].asUInt();
// TODO(AOleynik): Add verification/conversion check here
const Common_EventTypes::eType state_id =
- static_cast<Common_EventTypes::eType>(id);
+ static_cast<Common_EventTypes::eType>(event_id);
if (is_active) {
if (Common_EventTypes::AUDIO_SOURCE == state_id) {
ApplyTempState<HmiState::STATE_ID_AUDIO_SOURCE>();
@@ -830,8 +875,8 @@ void StateControllerImpl::ActivateDefaultWindow(ApplicationSharedPtr app) {
SetRegularState(app, window_id, hmi_level, audio_state, video_state, false);
- // After main window activation, streaming state should be updated for another
- // windows of the app
+ // After main window activation, streaming state should be updated for
+ // another windows of the app
HmiStatePtr new_state =
app->RegularHmiState(PredefinedWindows::DEFAULT_WINDOW);
UpdateAppWindowsStreamingState(app, new_state);
@@ -873,11 +918,24 @@ void StateControllerImpl::OnStateChanged(ApplicationSharedPtr app,
return;
}
- auto notification =
- MessageHelper::CreateHMIStatusNotification(app, window_id);
- app_mngr_.GetRPCService().ManageMobileCommand(notification,
- commands::Command::SOURCE_SDL);
-
+ if (app->is_ready()) {
+ SDL_LOG_DEBUG("Sending OnHMIStatus to application " << app->app_id());
+ auto notification =
+ MessageHelper::CreateHMIStatusNotification(app, window_id);
+ app_mngr_.GetRPCService().ManageMobileCommand(
+ notification, commands::Command::SOURCE_SDL);
+ } else {
+ SDL_LOG_DEBUG(
+ "Application "
+ << app->app_id()
+ << " not ready to receive OnHMIStatus. Delaying notification");
+ {
+ sync_primitives::AutoLock autolock(
+ apps_with_pending_hmistatus_notification_lock_);
+ apps_with_pending_hmistatus_notification_.insert(app->app_id());
+ }
+ subscribe_on_event(mobile_apis::FunctionID::RegisterAppInterfaceID);
+ }
if (mobile_apis::PredefinedWindows::DEFAULT_WINDOW != window_id) {
SDL_LOG_DEBUG(
"State was changed not for a main application window. No "
@@ -943,6 +1001,11 @@ void StateControllerImpl::OnApplicationRegistered(
const mobile_apis::HMILevel::eType default_level) {
SDL_LOG_AUTO_TRACE();
+ if (app->is_cloud_app()) {
+ // Return here, there should already be an onHMIStatus=FULL being processed
+ // for when the cloud app was initially activated by the hmi
+ return;
+ }
// After app registration HMI level should be set for DEFAULT_WINDOW only
OnAppWindowAdded(app,
mobile_apis::PredefinedWindows::DEFAULT_WINDOW,
@@ -1220,8 +1283,8 @@ void StateControllerImpl::OnAppDeactivated(
return;
}
- // TODO(AOleynik): Need to delete DeactivateReason and modify OnAppDeactivated
- // when HMI will support that, otherwise won't be testable
+ // TODO(AOleynik): Need to delete DeactivateReason and modify
+ // OnAppDeactivated when HMI will support that, otherwise won't be testable
DeactivateApp(app, window_id);
}
diff --git a/src/components/application_manager/test/application_manager_impl_test.cc b/src/components/application_manager/test/application_manager_impl_test.cc
index 0484b0cb32..78bd956316 100644
--- a/src/components/application_manager/test/application_manager_impl_test.cc
+++ b/src/components/application_manager/test/application_manager_impl_test.cc
@@ -2099,6 +2099,7 @@ TEST_F(
app_manager_impl_->SetPluginManager(rpc_plugin_manager);
auto wep_nonmedia_app = app_manager_impl_->RegisterApplication(rai_ptr);
wep_nonmedia_app->set_is_media_application(false);
+ wep_nonmedia_app->set_is_ready(true);
EXPECT_EQ(protocol_handler::MajorProtocolVersion::PROTOCOL_VERSION_2,
wep_nonmedia_app->protocol_version());
@@ -2203,6 +2204,7 @@ TEST_F(
app_manager_impl_->SetPluginManager(rpc_plugin_manager);
auto wep_media_app = app_manager_impl_->RegisterApplication(rai_ptr);
wep_media_app->set_is_media_application(true);
+ wep_media_app->set_is_ready(true);
EXPECT_EQ(protocol_handler::MajorProtocolVersion::PROTOCOL_VERSION_2,
wep_media_app->protocol_version());
diff --git a/src/components/application_manager/test/hmi_capabilities_old_apt.json b/src/components/application_manager/test/hmi_capabilities_old_apt.json
index 5a5af37e2f..56ae151caa 100644
--- a/src/components/application_manager/test/hmi_capabilities_old_apt.json
+++ b/src/components/application_manager/test/hmi_capabilities_old_apt.json
@@ -2,7 +2,7 @@
"UI": {
"audioPassThruCapabilities": {
"samplingRate": "22KHZ",
- "bitsPerSample": "RATE_16_BIT",
+ "bitsPerSample": "16_BIT",
"audioType": "PCM"
}
}
diff --git a/src/components/application_manager/test/include/application_manager/mock_application.h b/src/components/application_manager/test/include/application_manager/mock_application.h
index 2aab8cf727..3c1ddca125 100644
--- a/src/components/application_manager/test/include/application_manager/mock_application.h
+++ b/src/components/application_manager/test/include/application_manager/mock_application.h
@@ -97,6 +97,8 @@ class MockApplication : public ::application_manager::Application {
MOCK_CONST_METHOD0(app_allowed, bool());
MOCK_CONST_METHOD0(has_been_activated, bool());
MOCK_METHOD1(set_activated, bool(bool is_active));
+ MOCK_CONST_METHOD0(is_ready, bool());
+ MOCK_METHOD1(set_is_ready, bool(bool is_active));
MOCK_CONST_METHOD0(version, const ::application_manager::Version&());
MOCK_METHOD1(set_hmi_application_id, void(uint32_t hmi_app_id));
MOCK_CONST_METHOD0(hmi_app_id, uint32_t());
diff --git a/src/components/application_manager/test/resumption/resumption_data_test.cc b/src/components/application_manager/test/resumption/resumption_data_test.cc
index 12a38e1bc4..d5228934db 100644
--- a/src/components/application_manager/test/resumption/resumption_data_test.cc
+++ b/src/components/application_manager/test/resumption/resumption_data_test.cc
@@ -176,7 +176,7 @@ void ResumptionDataTest::CheckChoiceSet(sm::SmartObject& res_list) {
sm::SmartObject command = res_list[i][am::strings::choice_set][j];
EXPECT_EQ(i + j, command[am::strings::choice_id].asUInt());
char numb[12];
- std::snprintf(numb, 12, "%d", i + j);
+ std::snprintf(numb, 12, "%u", i + j);
std::string test_choice =
(*test_choiceset_map[i])[am::strings::choice_set][j]
[am::strings::vr_commands][0]
@@ -340,11 +340,10 @@ void ResumptionDataTest::CheckTimeoutPrompt(
void ResumptionDataTest::CheckVRHelp(sm::SmartObject& res_list) {
std::string text;
- int position;
for (uint i = 0; i < kCountOfVrhelptitle_; ++i) {
text = (*vr_help_)[i][am::strings::text].asString();
EXPECT_EQ(text, res_list[i][am::strings::text].asString());
- position = (*vr_help_)[i][am::strings::position].asInt();
+ int position = (*vr_help_)[i][am::strings::position].asInt();
EXPECT_EQ(position, res_list[i][am::strings::position].asInt());
}
}
@@ -517,7 +516,7 @@ void ResumptionDataTest::SetCommands() {
sm::SmartObject sm_icon;
for (uint32_t i = 0; i < kCountOfCommands_; ++i) {
char numb[12];
- std::snprintf(numb, 12, "%d", i);
+ std::snprintf(numb, 12, "%u", i);
sm_comm[am::strings::cmd_id] = i;
sm_comm[am::strings::menu_params][am::strings::position] = i;
sm_comm[am::strings::menu_params][am::hmi_request::parent_id] = i;
@@ -526,7 +525,7 @@ void ResumptionDataTest::SetCommands() {
for (uint32_t j = 0; j < kCountOfChoice_; ++j) {
char vr[12];
- std::snprintf(vr, 12, "%d", i + j);
+ std::snprintf(vr, 12, "%u", i + j);
vr_commandsvector[j] = "VrCommand " + std::string(vr);
}
sm_comm[am::strings::vr_commands] = vr_commandsvector;
@@ -544,7 +543,7 @@ void ResumptionDataTest::SetSubmenues() {
sm::SmartObject sm_comm;
for (uint32_t i = 10; i < kCountOfSubmenues_ + 10; ++i) {
char numb[12];
- std::snprintf(numb, 12, "%d", i);
+ std::snprintf(numb, 12, "%u", i);
sm_comm[am::strings::menu_id] = i;
sm_comm[am::strings::position] = i;
sm_comm[am::strings::menu_name] = "SubMenu" + std::string(numb);
@@ -563,7 +562,7 @@ void ResumptionDataTest::SetChoiceSet() {
for (uint32_t i = 0; i < kCountOfChoiceSets_; ++i) {
for (uint32_t j = 0; j < kCountOfChoice_; ++j) {
char numb[12];
- std::snprintf(numb, 12, "%d", i + j);
+ std::snprintf(numb, 12, "%u", i + j);
choice[am::strings::choice_id] = i + j;
vr_commandsvector[0] = "ChoiceSet VrCommand " + std::string(numb);
@@ -596,11 +595,10 @@ void ResumptionDataTest::SetChoiceSet() {
void ResumptionDataTest::SetAppFiles() {
am::AppFile test_file;
- int file_types;
for (uint i = 0; i < kCountOfFiles_; ++i) {
char numb[12];
std::snprintf(numb, 12, "%d", i);
- file_types = i;
+ int file_types = i;
test_file.is_persistent = true;
test_file.is_download_complete = true;
test_file.file_type = static_cast<FileType::eType>(file_types);
diff --git a/src/components/application_manager/test/state_controller/state_controller_test.cc b/src/components/application_manager/test/state_controller/state_controller_test.cc
index a2de6f399c..374ad611ef 100644
--- a/src/components/application_manager/test/state_controller/state_controller_test.cc
+++ b/src/components/application_manager/test/state_controller/state_controller_test.cc
@@ -727,6 +727,7 @@ class StateControllerImplTest : public ::testing::Test {
.WillByDefault(Return(vc));
ON_CALL(**app_mock, IsAudioApplication())
.WillByDefault(Return(media || navi || vc));
+ ON_CALL(**app_mock, is_ready()).WillByDefault(Return(true));
EXPECT_CALL(**app_mock, usage_report())
.WillRepeatedly(ReturnRef(usage_stat));
diff --git a/src/components/config_profile/src/ini_file.cc b/src/components/config_profile/src/ini_file.cc
index f549f4b915..dd64f48afa 100644
--- a/src/components/config_profile/src/ini_file.cc
+++ b/src/components/config_profile/src/ini_file.cc
@@ -152,13 +152,15 @@ char* ini_read_value(const char* fname,
return NULL;
}
+#ifdef BUILD_TESTS
+// cppcheck-suppress unusedFunction //Used in unit tests
char ini_write_value(const char* fname,
const char* chapter,
const char* item,
const char* value,
uint8_t flag) {
FILE *rd_fp, *wr_fp = 0;
- uint16_t i, cr_count;
+ uint16_t cr_count;
int32_t wr_result;
bool chapter_found = false;
bool value_written = false;
@@ -186,11 +188,9 @@ char ini_write_value(const char* fname,
#if USE_MKSTEMP
{
const char* temp_str = "./";
- int32_t fd = -1;
if (temp_str) {
snprintf(temp_fname, PATH_MAX, "%s/ini.XXXXXX", temp_str);
-
- fd = mkstemp(temp_fname);
+ int32_t fd = mkstemp(temp_fname);
if (-1 == fd) {
fclose(rd_fp);
return FALSE;
@@ -244,7 +244,7 @@ char ini_write_value(const char* fname,
first chapter is significant */
value_written = true;
} else if (result == INI_RIGHT_ITEM) {
- for (i = 0; i < cr_count; i++)
+ for (uint16_t i = 0; i < cr_count; i++)
fprintf(wr_fp, "\n");
cr_count = 0;
wr_result = fprintf(wr_fp, "%s=%s\n", item, value);
@@ -286,10 +286,10 @@ char ini_write_value(const char* fname,
return (value_written);
}
+#endif // BUILD_TESTS
Ini_search_id ini_parse_line(const char* line, const char* tag, char* value) {
const char* line_ptr;
- char* temp_ptr;
char temp_str[INI_LINE_LEN] = "";
*temp_str = '\0';
@@ -332,7 +332,7 @@ Ini_search_id ini_parse_line(const char* line, const char* tag, char* value) {
return INI_NOTHING;
snprintf(temp_str, INI_LINE_LEN, "%s", line_ptr);
- temp_ptr = strrchr(temp_str, ']');
+ char* temp_ptr = strrchr(temp_str, ']');
if (NULL == temp_ptr) {
return INI_NOTHING;
} else {
diff --git a/src/components/config_profile/src/profile.cc b/src/components/config_profile/src/profile.cc
index a86d09da94..d9204acf90 100644
--- a/src/components/config_profile/src/profile.cc
+++ b/src/components/config_profile/src/profile.cc
@@ -1739,8 +1739,7 @@ void Profile::UpdateValues() {
help_prompt_.clear();
std::string help_prompt_value;
if (ReadValue(&help_prompt_value, kGlobalPropertiesSection, kHelpPromptKey)) {
- char* str = NULL;
- str = strtok(const_cast<char*>(help_prompt_value.c_str()), ",");
+ char* str = strtok(const_cast<char*>(help_prompt_value.c_str()), ",");
while (str != NULL) {
// Default prompt should have delimiter included for each item
const std::string prompt_item = std::string(str) + tts_delimiter_;
@@ -1759,8 +1758,7 @@ void Profile::UpdateValues() {
std::string timeout_prompt_value;
if (ReadValue(
&timeout_prompt_value, kGlobalPropertiesSection, kTimeoutPromptKey)) {
- char* str = NULL;
- str = strtok(const_cast<char*>(timeout_prompt_value.c_str()), ",");
+ char* str = strtok(const_cast<char*>(timeout_prompt_value.c_str()), ",");
while (str != NULL) {
// Default prompt should have delimiter included for each item
const std::string prompt_item = std::string(str) + tts_delimiter_;
@@ -1784,8 +1782,7 @@ void Profile::UpdateValues() {
vr_commands_.clear();
std::string vr_help_command_value;
if (ReadValue(&vr_help_command_value, kVrCommandsSection, kHelpCommandKey)) {
- char* str = NULL;
- str = strtok(const_cast<char*>(vr_help_command_value.c_str()), ",");
+ char* str = strtok(const_cast<char*>(vr_help_command_value.c_str()), ",");
while (str != NULL) {
const std::string vr_item = str;
vr_commands_.push_back(vr_item);
@@ -1867,8 +1864,8 @@ void Profile::UpdateValues() {
"",
kMainSection,
kSupportedDiagModesKey)) {
- char* str = NULL;
- str = strtok(const_cast<char*>(supported_diag_modes_value.c_str()), ",");
+ char* str =
+ strtok(const_cast<char*>(supported_diag_modes_value.c_str()), ",");
while (str != NULL) {
errno = 0;
uint32_t user_value = strtol(str, NULL, 16);
diff --git a/src/components/connection_handler/src/connection.cc b/src/components/connection_handler/src/connection.cc
index 14e2b83848..03915516c3 100644
--- a/src/components/connection_handler/src/connection.cc
+++ b/src/components/connection_handler/src/connection.cc
@@ -110,7 +110,7 @@ Connection::~Connection() {
<< static_cast<int>(session_it->first)
<< " from Session/Connection Map in Connection Destructor");
connection_handler_->RemoveSession(session_it->first);
- session_it++;
+ ++session_it;
}
session_map_.clear();
@@ -324,7 +324,7 @@ uint8_t Connection::RemoveSecondaryServices(
removed_services_list.push_back(service_it->service_type);
service_it = service_list.erase(service_it);
} else {
- service_it++;
+ ++service_it;
}
}
diff --git a/src/components/connection_handler/src/connection_handler_impl.cc b/src/components/connection_handler/src/connection_handler_impl.cc
index b9d1de8332..8cefa390e8 100644
--- a/src/components/connection_handler/src/connection_handler_impl.cc
+++ b/src/components/connection_handler/src/connection_handler_impl.cc
@@ -215,7 +215,7 @@ namespace {
struct DeviceFinder {
explicit DeviceFinder(const std::string& device_uid)
: device_uid_(device_uid) {}
- bool operator()(const DeviceMap::value_type& device) {
+ bool operator()(const DeviceMap::value_type& device) const {
return device_uid_ == device.second.mac_address();
}
@@ -465,10 +465,21 @@ void ConnectionHandlerImpl::OnSessionStartedCallback(
return;
}
#endif // ENABLE_SECURITY
- sync_primitives::AutoReadLock lock(connection_list_lock_);
- ConnectionList::iterator it =
- connection_list_.find(primary_connection_handle);
- if (connection_list_.end() == it) {
+
+ auto find_connection =
+ [this](const transport_manager::ConnectionUID& primary_connection_handle)
+ -> Connection* {
+ sync_primitives::AutoReadLock lock(connection_list_lock_);
+ auto it = connection_list_.find(primary_connection_handle);
+ if (it != connection_list_.end()) {
+ return it->second;
+ }
+ return nullptr;
+ };
+
+ Connection* connection = find_connection(primary_connection_handle);
+
+ if (!connection) {
SDL_LOG_ERROR("Unknown connection!");
protocol_handler_->NotifySessionStarted(
context,
@@ -477,7 +488,6 @@ void ConnectionHandlerImpl::OnSessionStartedCallback(
return;
}
- Connection* connection = it->second;
context.is_new_service_ =
!connection->SessionServiceExists(session_id, service_type);
@@ -944,6 +954,8 @@ ConnectionHandlerImpl::TransportTypeProfileStringFromDeviceHandle(
return std::string("IAP_CARPLAY");
} else if (connection_type == "CLOUD_WEBSOCKET") {
return std::string("WEBSOCKET");
+ } else if (connection_type == "WEBENGINE_WEBSOCKET") {
+ return std::string("WEBENGINE");
#ifdef BUILD_TESTS
} else if (connection_type == "BTMAC") {
return std::string("BTMAC");
@@ -1157,7 +1169,7 @@ const uint8_t ConnectionHandlerImpl::GetSessionIdFromSecondaryTransport(
transport_manager::ConnectionUID secondary_transport_id) const {
sync_primitives::AutoLock auto_lock(session_connection_map_lock_ptr_);
SessionConnectionMap::const_iterator it = session_connection_map_.begin();
- for (; session_connection_map_.end() != it; it++) {
+ for (; session_connection_map_.end() != it; ++it) {
SessionTransports st = it->second;
if (st.secondary_transport == secondary_transport_id) {
return it->first;
diff --git a/src/components/formatters/src/CFormatterJsonBase.cc b/src/components/formatters/src/CFormatterJsonBase.cc
index e5354d5326..d88ffc7158 100644
--- a/src/components/formatters/src/CFormatterJsonBase.cc
+++ b/src/components/formatters/src/CFormatterJsonBase.cc
@@ -95,7 +95,7 @@ void ns_smart_device_link::ns_json_handler::formatters::CFormatterJsonBase::
for (std::set<std::string>::const_iterator key = keys.begin();
key != keys.end();
- key++) {
+ ++key) {
Json::Value value(Json::nullValue);
objToJsonValue(obj.getElement(*key), value);
diff --git a/src/components/formatters/test/include/formatters/SmartFactoryTestHelper.h b/src/components/formatters/test/include/formatters/SmartFactoryTestHelper.h
index 08962db120..d937849b5d 100644
--- a/src/components/formatters/test/include/formatters/SmartFactoryTestHelper.h
+++ b/src/components/formatters/test/include/formatters/SmartFactoryTestHelper.h
@@ -110,10 +110,6 @@ class CSmartFactoryTest : public CSmartFactory<FunctionIdTest::eType,
std::shared_ptr<ISchemaItem> >
TStructsSchemaItems;
- static std::shared_ptr<ISchemaItem> ProvideObjectSchemaItemForStruct(
- TStructsSchemaItems& struct_schema_items,
- const StructIdentifiersTest::eType struct_id);
-
void InitStructSchemes(TStructsSchemaItems& struct_schema_items);
void InitFunctionSchemes(
diff --git a/src/components/formatters/test/src/SmartFactoryTestHelper.cc b/src/components/formatters/test/src/SmartFactoryTestHelper.cc
index 4d089ff9b1..dd4dbe5910 100644
--- a/src/components/formatters/test/src/SmartFactoryTestHelper.cc
+++ b/src/components/formatters/test/src/SmartFactoryTestHelper.cc
@@ -432,13 +432,6 @@ std::shared_ptr<ISchemaItem> CSmartFactoryTest::InitStructSchemaItem_Common_1(
TSchemaItemParameter<size_t>(500),
TSchemaItemParameter<std::string>());
- // Struct member image.
- //
- // Image struct
- std::shared_ptr<ISchemaItem> image_SchemaItem =
- ProvideObjectSchemaItemForStruct(struct_schema_items,
- StructIdentifiersTest::Common_2);
-
// Struct member position.
//
// Position to display item
@@ -446,19 +439,12 @@ std::shared_ptr<ISchemaItem> CSmartFactoryTest::InitStructSchemaItem_Common_1(
TNumberSchemaItem<int32_t>::create(TSchemaItemParameter<int32_t>(1),
TSchemaItemParameter<int32_t>(500),
TSchemaItemParameter<int32_t>());
- Members struct_members;
- struct_members["image"] = SMember(image_SchemaItem, false);
Members schema_members;
schema_members["text"] = SMember(text_SchemaItem, true);
schema_members["position"] = SMember(position_SchemaItem, true);
- Members root_members_map;
- root_members_map[""] =
- SMember(CObjectSchemaItem::create(struct_members), true);
- root_members_map[""] =
- SMember(CObjectSchemaItem::create(schema_members), true);
return CObjectSchemaItem::create(schema_members);
}
@@ -485,16 +471,3 @@ CSmartFactoryTest::InitStructSchemaItem_Common_2() {
return CObjectSchemaItem::create(schema_members);
}
-
-std::shared_ptr<ISchemaItem>
-CSmartFactoryTest::ProvideObjectSchemaItemForStruct(
- TStructsSchemaItems& struct_schema_items,
- const StructIdentifiersTest::eType struct_id) {
- const TStructsSchemaItems::const_iterator it =
- struct_schema_items.find(struct_id);
- if (it != struct_schema_items.end()) {
- return it->second;
- }
- return ns_smart_device_link::ns_smart_objects::CAlwaysFalseSchemaItem::
- create();
-}
diff --git a/src/components/formatters/test/src/create_smartSchema.cc b/src/components/formatters/test/src/create_smartSchema.cc
index c852c65ea1..23459e2eac 100644
--- a/src/components/formatters/test/src/create_smartSchema.cc
+++ b/src/components/formatters/test/src/create_smartSchema.cc
@@ -139,6 +139,8 @@ const AppTypeTest::eType
test::components::formatters::AppTypeTest::MEDIA,
};
+#ifdef BUILD_TESTS
+// cppcheck-suppress unusedFunction //Used in unit tests
CSmartSchema initObjectSchema() {
std::set<TestType::eType> resultCode_allowedEnumSubsetValues;
resultCode_allowedEnumSubsetValues.insert(
@@ -222,6 +224,7 @@ CSmartSchema initObjectSchema() {
return CSmartSchema(CObjectSchemaItem::create(rootMembersMap));
};
+// cppcheck-suppress unusedFunction //Used in unit tests
CSmartSchema initSchemaForMetaFormatter() {
std::set<TestType::eType> resultCode_allowedEnumSubsetValues;
resultCode_allowedEnumSubsetValues.insert(
@@ -336,15 +339,6 @@ CSmartSchema initSchemaForMetaFormatter() {
ISchemaItemPtr majorVersion_SchemaItem = TNumberSchemaItem<int>::create();
ISchemaItemPtr minorVersion_SchemaItem = TNumberSchemaItem<int>::create();
ISchemaItemPtr patchVersion_SchemaItem = TNumberSchemaItem<int>::create();
- ISchemaItemPtr syncMsg_SchemaItem =
- CStringSchemaItem::create(TSchemaItemParameter<size_t>(0),
- TSchemaItemParameter<size_t>(1000),
- TSchemaItemParameter<std::string>());
-
- ISchemaItemPtr syncMsgVersion_SchemaItem =
- CArraySchemaItem::create(syncMsg_SchemaItem,
- TSchemaItemParameter<size_t>(0),
- TSchemaItemParameter<size_t>(1000));
// Creation map for syncMsgVersion
std::map<std::string, SMember> schemaSyncMsgVersionMap;
@@ -400,6 +394,7 @@ CSmartSchema initSchemaForMetaFormatter() {
SMember(CObjectSchemaItem::create(paramsMembersMap), true);
return CSmartSchema(CObjectSchemaItem::create(rootMembersMap));
};
+#endif // BUILD_TESTS
} // namespace formatters
} // namespace components
diff --git a/src/components/formatters/test/src/meta_formatter_test_helper.cc b/src/components/formatters/test/src/meta_formatter_test_helper.cc
index 4f8975fe53..0c396d4dc7 100644
--- a/src/components/formatters/test/src/meta_formatter_test_helper.cc
+++ b/src/components/formatters/test/src/meta_formatter_test_helper.cc
@@ -148,7 +148,7 @@ void CMetaFormatterTestHelper::CompareObjects(const SmartObject& first,
for (std::set<std::string>::const_iterator key = keys.begin();
key != keys.end();
- key++) {
+ ++key) {
CompareObjects(first.getElement(*key), second.getElement(*key));
}
} else if (SmartType_Boolean == first.getType()) {
diff --git a/src/components/hmi_message_handler/src/mb_controller.cc b/src/components/hmi_message_handler/src/mb_controller.cc
index 681e57906a..b0388a5bf2 100644
--- a/src/components/hmi_message_handler/src/mb_controller.cc
+++ b/src/components/hmi_message_handler/src/mb_controller.cc
@@ -159,14 +159,13 @@ bool CMessageBrokerController::isResponse(Json::Value& message) {
}
void CMessageBrokerController::sendResponse(Json::Value& message) {
- WebsocketSession* ws;
std::map<std::string, WebsocketSession*>::iterator it;
sync_primitives::AutoLock request_lock(mRequestListLock);
std::string id = message["id"].asString();
it = mRequestList.find(id);
if (it != mRequestList.end()) {
- ws = it->second;
+ WebsocketSession* ws = it->second;
ws->sendJsonMessage(message);
mRequestList.erase(it);
}
@@ -182,7 +181,6 @@ void CMessageBrokerController::sendJsonMessage(Json::Value& message) {
}
// Send request
- WebsocketSession* ws;
std::map<std::string, WebsocketSession*>::iterator it;
std::string method = message["method"].asString();
std::string component_name = GetComponentName(method);
@@ -190,7 +188,7 @@ void CMessageBrokerController::sendJsonMessage(Json::Value& message) {
sync_primitives::AutoLock lock(mControllersListLock);
it = mControllersList.find(component_name);
if (it != mControllersList.end()) {
- ws = it->second;
+ WebsocketSession* ws = it->second;
ws->sendJsonMessage(message);
}
}
@@ -359,7 +357,6 @@ void CMessageBrokerController::deleteSubscriber(WebsocketSession* ws,
int CMessageBrokerController::getSubscribersFd(
std::string name, std::vector<WebsocketSession*>& result) {
int res = 0;
- std::map<std::string, WebsocketSession*>::iterator it;
sync_primitives::AutoLock lock(mSubscribersListLock);
std::pair<std::multimap<std::string, WebsocketSession*>::iterator,
diff --git a/src/components/include/protocol/rpc_type.h b/src/components/include/protocol/rpc_type.h
index db4a808cfd..fde8fe7885 100644
--- a/src/components/include/protocol/rpc_type.h
+++ b/src/components/include/protocol/rpc_type.h
@@ -49,7 +49,6 @@ enum RpcType {
// Validate and map byte value to RPC type
RpcType RpcTypeFromByte(uint8_t byte);
// Check and convert RpcType to byte value ready to be transmitted
-uint8_t RpcTypeToByte(RpcType type);
const char* RpcTypeToString(RpcType type);
diff --git a/src/components/include/protocol/service_type.h b/src/components/include/protocol/service_type.h
index 803b8106b8..77a095f7e9 100644
--- a/src/components/include/protocol/service_type.h
+++ b/src/components/include/protocol/service_type.h
@@ -79,7 +79,6 @@ enum ServiceType {
* Service types to binary stream
*/
ServiceType ServiceTypeFromByte(uint8_t type);
-uint8_t ServiceTypeToByte(ServiceType type);
} // namespace protocol_handler
#endif // SRC_COMPONENTS_INCLUDE_PROTOCOL_SERVICE_TYPE_H_
diff --git a/src/components/include/utils/ilogger.h b/src/components/include/utils/ilogger.h
index ba2f93df9b..3cf4777391 100644
--- a/src/components/include/utils/ilogger.h
+++ b/src/components/include/utils/ilogger.h
@@ -76,6 +76,7 @@ class Logger {
class ThirdPartyLoggerInterface {
public:
+ virtual ~ThirdPartyLoggerInterface() {}
virtual void Init() = 0;
virtual void DeInit() = 0;
virtual bool IsEnabledFor(const std::string& component,
diff --git a/src/components/interfaces/HMI_API.xml b/src/components/interfaces/HMI_API.xml
index 8e906a7bbb..a9ad0792ec 100644
--- a/src/components/interfaces/HMI_API.xml
+++ b/src/components/interfaces/HMI_API.xml
@@ -1855,7 +1855,7 @@
<enum name="SeatMemoryActionType">
<element name="SAVE">
- <description>Save current seat postions and settings to seat memory.</description>
+ <description>Save current seat positions and settings to seat memory.</description>
</element>
<element name="RESTORE">
<description>Restore / apply the seat memory settings to the current seat. </description>
@@ -2200,7 +2200,7 @@
</param>
<param name="siriusxmRadioAvailable" type="Boolean" mandatory="false">
<description>
- Availability of sirius XM radio.
+ Availability of Sirius XM radio.
True: Available, False: Not Available, Not present: Not Available.
</description>
</param>
@@ -3165,7 +3165,7 @@
</param>
<param name="autoCompleteList" type="String" maxlength="1000" minsize="0" maxsize="100" array="true" mandatory="false">
<description>
- Allows an app to prepopulate the text field with a list of suggested or completed entries as the user types.
+ Allows an app to pre-populate the text field with a list of suggested or completed entries as the user types.
If empty, the auto-complete list will be removed from the screen.
</description>
</param>
@@ -3676,7 +3676,7 @@
Following cases will cause only affected windows to be included:
1. App creates a new window. After the window is created, a system capability notification will be sent
related only to the created window.
- 2. App sets a new layout to the window. The new layout changes window capabilties.
+ 2. App sets a new layout to the window. The new layout changes window capabilities.
The notification will reflect those changes to the single window.
</description>
</param>
diff --git a/src/components/policy/policy_external/include/policy/policy_helper.h b/src/components/policy/policy_external/include/policy/policy_helper.h
index 69ba8806d4..87a9228c12 100644
--- a/src/components/policy/policy_external/include/policy/policy_helper.h
+++ b/src/components/policy/policy_external/include/policy/policy_helper.h
@@ -68,13 +68,6 @@ struct CompareGroupName {
const StringsValueType& group_name_;
};
-/*
- * @brief Used for compare of policies parameters mapped with specific
- * application ids
- */
-bool operator!=(const policy_table::ApplicationParams& first,
- const policy_table::ApplicationParams& second);
-
/**
* @brief Helper struct for checking changes of application policies, which
* come with update along with current data snapshot
@@ -393,15 +386,6 @@ FunctionalGroupIDs Merge(const FunctionalGroupIDs& first,
const FunctionalGroupIDs& second);
/**
- * @brief Finds same values
- * @param first First source of values
- * @param second Second source of values
- * @return Same values set, if any found
- */
-FunctionalGroupIDs FindSame(const FunctionalGroupIDs& first,
- const FunctionalGroupIDs& second);
-
-/**
* @brief Unwrap application policies from predefined values to specific policy
* values, i.e. if application has "default", it will be assigned default
* policies
diff --git a/src/components/policy/policy_external/src/cache_manager.cc b/src/components/policy/policy_external/src/cache_manager.cc
index 67d8bdb2d1..570246adb7 100644
--- a/src/components/policy/policy_external/src/cache_manager.cc
+++ b/src/components/policy/policy_external/src/cache_manager.cc
@@ -166,7 +166,8 @@ struct LinkCollector
typedef std::vector<policy_table::UserConsentRecords::key_type>
ApplicationsIds;
- LinkCollector(std::map<std::string, std::string>& links) : links_(links) {}
+ explicit LinkCollector(std::map<std::string, std::string>& links)
+ : links_(links) {}
void operator()(const policy_table::DeviceData::value_type& value) {
using namespace policy_table;
@@ -208,10 +209,12 @@ struct ExternalConsentConsentGroupAppender
};
struct DefaultPolicyUpdater {
- DefaultPolicyUpdater(const policy_table::ApplicationParams& default_params)
+ explicit DefaultPolicyUpdater(
+ const policy_table::ApplicationParams& default_params)
: default_params_(default_params) {}
- void operator()(policy_table::ApplicationPolicies::value_type& pt_value) {
+ void operator()(
+ policy_table::ApplicationPolicies::value_type& pt_value) const {
if (policy::kDefaultId == pt_value.second.get_string()) {
pt_value.second = default_params_;
pt_value.second.set_to_string(policy::kDefaultId);
@@ -1704,6 +1707,8 @@ std::vector<UserFriendlyMessage> CacheManager::GetUserFriendlyMsg(
SDL_LOG_ERROR("No fallback language found for message code: " << *it);
continue;
}
+ // FIXME (VSemenyuk): message_string will always be overwritten by
+ // active_hmi_language_message_string
message_string = fallback_message_string;
}
message_string = active_hmi_language_message_string;
@@ -1827,10 +1832,6 @@ bool CacheManager::GetPriority(const std::string& policy_app_id,
void CacheManager::CheckSnapshotInitialization() {
CACHE_MANAGER_CHECK_VOID();
- if (!snapshot_) {
- SDL_LOG_ERROR("Snapshot pointer is not initialized");
- return;
- }
*(snapshot_->policy_table.module_config.preloaded_pt) = false;
@@ -2182,9 +2183,9 @@ int CacheManager::CountUnconsentedGroups(const std::string& policy_app_id,
pt_->policy_table.app_policies_section;
policy_table::Strings::iterator app_groups;
- policy_table::Strings::iterator app_groups_end = app_groups;
+ policy_table::Strings::iterator app_groups_end;
policy_table::Strings::iterator app_pre_groups;
- policy_table::Strings::iterator app_pre_groups_end = app_pre_groups;
+ policy_table::Strings::iterator app_pre_groups_end;
if (kDeviceId == policy_app_id) {
app_groups = app_policies_section.device.groups.begin();
@@ -2294,11 +2295,10 @@ std::string CacheManager::GetCCPUVersionFromPT() const {
bool CacheManager::IsMetaInfoPresent() const {
CACHE_MANAGER_CHECK(false);
- bool result = true;
sync_primitives::AutoLock lock(cache_lock_);
- result = NULL != pt_->policy_table.module_meta->ccpu_version &&
- NULL != pt_->policy_table.module_meta->wers_country_code &&
- NULL != pt_->policy_table.module_meta->language;
+ bool result = NULL != pt_->policy_table.module_meta->ccpu_version &&
+ NULL != pt_->policy_table.module_meta->wers_country_code &&
+ NULL != pt_->policy_table.module_meta->language;
return result;
}
diff --git a/src/components/policy/policy_external/src/policy_helper.cc b/src/components/policy/policy_external/src/policy_helper.cc
index 4607c3ca5f..e6605aed3a 100644
--- a/src/components/policy/policy_external/src/policy_helper.cc
+++ b/src/components/policy/policy_external/src/policy_helper.cc
@@ -102,25 +102,6 @@ bool CompareGroupName::operator()(
return !(strcasecmp(gn_.c_str(), gn_compare.c_str()));
}
-bool operator!=(const policy_table::ApplicationParams& first,
- const policy_table::ApplicationParams& second) {
- if (first.groups.size() != second.groups.size()) {
- return true;
- }
- StringsConstItr it_first = first.groups.begin();
- StringsConstItr it_first_end = first.groups.end();
- StringsConstItr it_second = second.groups.begin();
- StringsConstItr it_second_end = second.groups.end();
- for (; it_first != it_first_end; ++it_first) {
- CompareGroupName gp(*it_first);
- StringsConstItr it = std::find_if(it_second, it_second_end, gp);
- if (it_second_end == it) {
- return true;
- }
- }
- return false;
-}
-
CheckAppPolicy::CheckAppPolicy(
PolicyManagerImpl* pm,
const std::shared_ptr<policy_table::Table> update,
@@ -607,7 +588,6 @@ bool CheckAppPolicy::IsConsentRequired(const std::string& app_id,
return false;
}
- bool is_preconsented = false;
policy_table::Strings::value_type str(group_name);
policy_table::Strings::iterator pre_begin =
update_->policy_table.app_policies_section.apps[app_id]
@@ -618,7 +598,7 @@ bool CheckAppPolicy::IsConsentRequired(const std::string& app_id,
policy_table::Strings::iterator it2 = std::find(pre_begin, pre_end, str);
- is_preconsented = pre_end != it2;
+ bool is_preconsented = pre_end != it2;
return it->second.user_consent_prompt.is_initialized() && !is_preconsented;
}
@@ -768,7 +748,7 @@ bool CheckAppPolicy::IsEncryptionRequiredFlagChanged(
return result;
};
- auto get_app_rpcs = [](const std::string group_name,
+ auto get_app_rpcs = [](const std::string& group_name,
const FunctionalGroupings& groups)
-> rpc::Optional<policy_table::Rpcs> {
auto it = groups.find(group_name);
@@ -953,8 +933,7 @@ void FillNotificationData::UpdateParameters(
// If 'parameters' section is omitted
if (!in_parameters.is_initialized()) {
- if (!does_require_user_consent_ ||
- (does_require_user_consent_ && kAllowedKey == current_key_)) {
+ if (!does_require_user_consent_ || kAllowedKey == current_key_) {
out_parameter.any_parameter_allowed = true;
}
}
@@ -1251,28 +1230,6 @@ FunctionalGroupIDs Merge(const FunctionalGroupIDs& first,
return merged;
}
-FunctionalGroupIDs FindSame(const FunctionalGroupIDs& first,
- const FunctionalGroupIDs& second) {
- SDL_LOG_INFO("Find same groups");
- FunctionalGroupIDs first_copy(first);
- FunctionalGroupIDs second_copy(second);
-
- std::sort(first_copy.begin(), first_copy.end());
- std::sort(second_copy.begin(), second_copy.end());
-
- FunctionalGroupIDs same;
- std::set_intersection(first_copy.begin(),
- first_copy.end(),
- second_copy.begin(),
- second_copy.end(),
- std::back_inserter(same));
-
- same.resize(
- std::distance(same.begin(), std::unique(same.begin(), same.end())));
-
- return same;
-}
-
bool UnwrapAppPolicies(policy_table::ApplicationPolicies& app_policies) {
policy_table::ApplicationPolicies::iterator it_default =
app_policies.find(kDefaultId);
diff --git a/src/components/policy/policy_external/src/policy_manager_impl.cc b/src/components/policy/policy_external/src/policy_manager_impl.cc
index 773c689409..fc7fc0f171 100644
--- a/src/components/policy/policy_external/src/policy_manager_impl.cc
+++ b/src/components/policy/policy_external/src/policy_manager_impl.cc
@@ -62,7 +62,7 @@ namespace {
struct GroupNamesAppender
: public std::unary_function<void,
const policy::FunctionalGroupPermission&> {
- GroupNamesAppender(policy_table::Strings& names) : names_(names) {}
+ explicit GroupNamesAppender(policy_table::Strings& names) : names_(names) {}
void operator()(const policy::FunctionalGroupPermission& value) {
names_.push_back(value.group_name);
@@ -1827,13 +1827,12 @@ bool PolicyManagerImpl::IsNeedToUpdateExternalConsentStatus(
ItemV difference_v;
difference_v.resize(new_status_v.size() + existing_status_v.size());
- ItemV::iterator ci = difference_v.begin();
- ci = std::set_difference(new_status_v.begin(),
- new_status_v.end(),
- existing_status_v.begin(),
- existing_status_v.end(),
- difference_v.begin(),
- ConsentStatusComparatorFunc);
+ ItemV::iterator ci = std::set_difference(new_status_v.begin(),
+ new_status_v.end(),
+ existing_status_v.begin(),
+ existing_status_v.end(),
+ difference_v.begin(),
+ ConsentStatusComparatorFunc);
difference_v.resize(ci - difference_v.begin());
return !difference_v.empty();
@@ -2386,7 +2385,7 @@ void PolicyManagerImpl::SetDefaultHmiTypes(
}
struct HMITypeToInt {
- int operator()(const policy_table::AppHMITypes::value_type item) {
+ int operator()(const policy_table::AppHMITypes::value_type item) const {
return policy_table::AppHMIType(item);
}
};
@@ -2587,6 +2586,7 @@ __attribute__((visibility("default"))) policy::PolicyManager* CreateManager(
return new policy::PolicyManagerImpl();
}
+// cppcheck-suppress unusedFunction
__attribute__((visibility("default"))) void DeleteManager(
policy::PolicyManager* pm) {
delete pm;
diff --git a/src/components/policy/policy_external/src/policy_table/types.cc b/src/components/policy/policy_external/src/policy_table/types.cc
index 1f344f5263..0194ac68a3 100644
--- a/src/components/policy/policy_external/src/policy_table/types.cc
+++ b/src/components/policy/policy_external/src/policy_table/types.cc
@@ -872,7 +872,6 @@ ModuleConfig::ModuleConfig(const Json::Value* value__)
impl::ValueMember(value__, "lock_screen_dismissal_enabled")) {}
void ModuleConfig::SafeCopyFrom(const ModuleConfig& from) {
- exchange_after_x_days = from.exchange_after_x_days;
exchange_after_x_kilometers = from.exchange_after_x_kilometers;
exchange_after_x_days = from.exchange_after_x_days;
exchange_after_x_ignition_cycles = from.exchange_after_x_ignition_cycles;
diff --git a/src/components/policy/policy_external/src/sql_pt_representation.cc b/src/components/policy/policy_external/src/sql_pt_representation.cc
index 36e363d922..fc9ebd96a9 100644
--- a/src/components/policy/policy_external/src/sql_pt_representation.cc
+++ b/src/components/policy/policy_external/src/sql_pt_representation.cc
@@ -1750,9 +1750,7 @@ SQLPTRepresentation::SelectCompositeVehicleDataItems() const {
if (!vdi.is_initialized()) {
return policy_table::VehicleDataItems();
}
- for (const auto& item : vdi) {
- result.push_back(item);
- }
+ std::copy(vdi.begin(), vdi.end(), std::back_inserter(result));
}
return result;
diff --git a/src/components/policy/policy_regular/include/policy/policy_helper.h b/src/components/policy/policy_regular/include/policy/policy_helper.h
index d5155cf91b..f01d132049 100644
--- a/src/components/policy/policy_regular/include/policy/policy_helper.h
+++ b/src/components/policy/policy_regular/include/policy/policy_helper.h
@@ -68,13 +68,6 @@ struct CompareGroupName {
};
/*
- * @brief Used for compare of policies parameters mapped with specific
- * application ids
- */
-bool operator!=(const policy_table::ApplicationParams& first,
- const policy_table::ApplicationParams& second);
-
-/*
* @brief Helper struct for checking changes of application policies, which
* come with update along with current data snapshot
* In case of policies changed for some application, current data will be
@@ -257,15 +250,6 @@ FunctionalGroupIDs Merge(const FunctionalGroupIDs& first,
const FunctionalGroupIDs& second);
/**
- * @brief Finds same values
- * @param first First source of values
- * @param second Second source of values
- * @return Same values set, if any found
- */
-FunctionalGroupIDs FindSame(const FunctionalGroupIDs& first,
- const FunctionalGroupIDs& second);
-
-/**
* @brief Unwrap application policies from predefined values to specific policy
* values, i.e. if application has "default", it will be assigned default
* policies
diff --git a/src/components/policy/policy_regular/include/policy/policy_manager_impl.h b/src/components/policy/policy_regular/include/policy/policy_manager_impl.h
index 307697dd64..dff4802d82 100644
--- a/src/components/policy/policy_regular/include/policy/policy_manager_impl.h
+++ b/src/components/policy/policy_regular/include/policy/policy_manager_impl.h
@@ -869,7 +869,7 @@ class PolicyManagerImpl : public PolicyManager {
void ResetTimeout() OVERRIDE;
protected:
-#ifdef USE_HMI_PTU_DECRYPTION
+#if defined USE_HMI_PTU_DECRYPTION && defined PROPRIETARY_MODE
/**
* @brief Parse policy table content and convert to PT object
* @param pt_content binary content of PT
diff --git a/src/components/policy/policy_regular/src/cache_manager.cc b/src/components/policy/policy_regular/src/cache_manager.cc
index 5a75c47725..d031b5f027 100644
--- a/src/components/policy/policy_regular/src/cache_manager.cc
+++ b/src/components/policy/policy_regular/src/cache_manager.cc
@@ -79,7 +79,7 @@ SDL_CREATE_LOG_VARIABLE("Policy")
}
struct LanguageFinder {
- LanguageFinder(const std::string& language) : language_(language) {}
+ explicit LanguageFinder(const std::string& language) : language_(language) {}
bool operator()(const policy_table::Languages::value_type& lang) const {
return !strcasecmp(language_.c_str(), lang.first.c_str());
}
@@ -89,10 +89,12 @@ struct LanguageFinder {
};
struct PolicyTableUpdater {
- PolicyTableUpdater(const policy_table::ApplicationParams& default_params)
+ explicit PolicyTableUpdater(
+ const policy_table::ApplicationParams& default_params)
: default_params_(default_params) {}
- void operator()(policy_table::ApplicationPolicies::value_type& pt_value) {
+ void operator()(
+ policy_table::ApplicationPolicies::value_type& pt_value) const {
if (policy::kDefaultId == pt_value.second.get_string()) {
pt_value.second = default_params_;
pt_value.second.set_to_string(policy::kDefaultId);
@@ -1138,10 +1140,6 @@ bool CacheManager::GetPriority(const std::string& policy_app_id,
void CacheManager::CheckSnapshotInitialization() {
CACHE_MANAGER_CHECK_VOID();
- if (!snapshot_) {
- SDL_LOG_ERROR("Snapshot pointer is not initialized");
- return;
- }
*(snapshot_->policy_table.module_config.preloaded_pt) = false;
@@ -1309,8 +1307,6 @@ void CacheManager::PersistData() {
copy_pt.policy_table.app_policies_section.apps.end();
bool is_revoked = false;
- bool is_default_policy;
- bool is_predata_policy;
for (; app_policy_iter != app_policy_iter_end; ++app_policy_iter) {
const std::string app_id = (*app_policy_iter).first;
@@ -1321,7 +1317,7 @@ void CacheManager::PersistData() {
copy_pt.policy_table.app_policies_section.apps[app_id].is_null();
}
- is_default_policy =
+ bool is_default_policy =
copy_pt.policy_table.app_policies_section.apps.end() !=
copy_pt.policy_table.app_policies_section.apps.find(app_id) &&
policy::kDefaultId ==
@@ -1329,7 +1325,7 @@ void CacheManager::PersistData() {
.get_string();
// TODO(AOleynik): Remove this field from DB
- is_predata_policy =
+ bool is_predata_policy =
copy_pt.policy_table.app_policies_section.apps.end() !=
copy_pt.policy_table.app_policies_section.apps.find(app_id) &&
policy::kPreDataConsentId ==
diff --git a/src/components/policy/policy_regular/src/policy_helper.cc b/src/components/policy/policy_regular/src/policy_helper.cc
index 7d99ff51c0..ec84486ea6 100644
--- a/src/components/policy/policy_regular/src/policy_helper.cc
+++ b/src/components/policy/policy_regular/src/policy_helper.cc
@@ -54,9 +54,10 @@ bool CompareStrings(const StringsValueType& first,
}
struct CheckGroupName {
- CheckGroupName(const policy::StringsValueType& value) : value_(value) {}
+ explicit CheckGroupName(const policy::StringsValueType& value)
+ : value_(value) {}
- bool operator()(const FunctionalGroupNames::value_type& value) {
+ bool operator()(const FunctionalGroupNames::value_type& value) const {
return value.second.second == std::string(value_);
}
@@ -101,25 +102,6 @@ bool CompareGroupName::operator()(
return !(strcasecmp(gn_.c_str(), gn_compare.c_str()));
}
-bool operator!=(const policy_table::ApplicationParams& first,
- const policy_table::ApplicationParams& second) {
- if (first.groups.size() != second.groups.size()) {
- return true;
- }
- StringsConstItr it_first = first.groups.begin();
- StringsConstItr it_first_end = first.groups.end();
- StringsConstItr it_second = second.groups.begin();
- StringsConstItr it_second_end = second.groups.end();
- for (; it_first != it_first_end; ++it_first) {
- CompareGroupName gp(*it_first);
- StringsConstItr it = std::find_if(it_second, it_second_end, gp);
- if (it_second_end == it) {
- return true;
- }
- }
- return false;
-}
-
CheckAppPolicy::CheckAppPolicy(
PolicyManagerImpl* pm,
const std::shared_ptr<policy_table::Table> update,
@@ -559,8 +541,7 @@ bool CheckAppPolicy::IsConsentRequired(const std::string& app_id,
return false;
}
- bool is_preconsented = false;
- return it->second.user_consent_prompt.is_initialized() && !is_preconsented;
+ return it->second.user_consent_prompt.is_initialized();
}
bool CheckAppPolicy::IsRequestTypeChanged(
@@ -707,7 +688,7 @@ bool CheckAppPolicy::IsEncryptionRequiredFlagChanged(
return result;
};
- auto get_app_rpcs = [](const std::string group_name,
+ auto get_app_rpcs = [](const std::string& group_name,
const FunctionalGroupings& groups)
-> rpc::Optional<policy_table::Rpcs> {
auto it = groups.find(group_name);
@@ -1106,28 +1087,6 @@ FunctionalGroupIDs Merge(const FunctionalGroupIDs& first,
return merged;
}
-FunctionalGroupIDs FindSame(const FunctionalGroupIDs& first,
- const FunctionalGroupIDs& second) {
- SDL_LOG_INFO("Find same groups");
- FunctionalGroupIDs first_copy(first);
- FunctionalGroupIDs second_copy(second);
-
- std::sort(first_copy.begin(), first_copy.end());
- std::sort(second_copy.begin(), second_copy.end());
-
- FunctionalGroupIDs same;
- std::set_intersection(first_copy.begin(),
- first_copy.end(),
- second_copy.begin(),
- second_copy.end(),
- std::back_inserter(same));
-
- same.resize(
- std::distance(same.begin(), std::unique(same.begin(), same.end())));
-
- return same;
-}
-
bool UnwrapAppPolicies(policy_table::ApplicationPolicies& app_policies) {
policy_table::ApplicationPolicies::iterator it = app_policies.begin();
policy_table::ApplicationPolicies::iterator it_default =
diff --git a/src/components/policy/policy_regular/src/policy_manager_impl.cc b/src/components/policy/policy_regular/src/policy_manager_impl.cc
index 36beeeb07f..6fbc4e798f 100644
--- a/src/components/policy/policy_regular/src/policy_manager_impl.cc
+++ b/src/components/policy/policy_regular/src/policy_manager_impl.cc
@@ -87,7 +87,7 @@ void PolicyManagerImpl::set_listener(PolicyListener* listener) {
update_status_manager_.set_listener(listener);
}
-#ifdef USE_HMI_PTU_DECRYPTION
+#if defined USE_HMI_PTU_DECRYPTION && defined PROPRIETARY_MODE
std::shared_ptr<policy_table::Table> PolicyManagerImpl::Parse(
const BinaryMessage& pt_content) {
@@ -331,7 +331,7 @@ PolicyManager::PtProcessingResult PolicyManagerImpl::LoadPT(
"PTU content is: " << std::string(pt_content.begin(), pt_content.end()));
-#ifdef USE_HMI_PTU_DECRYPTION
+#if defined USE_HMI_PTU_DECRYPTION && defined PROPRIETARY_MODE
// Assuemes Policy Table was parsed, formatted, and/or decrypted by
// the HMI after system request before calling OnReceivedPolicyUpdate
// Parse message into table struct
@@ -1708,7 +1708,7 @@ void PolicyManagerImpl::SetDefaultHmiTypes(
}
struct HMITypeToInt {
- int operator()(const policy_table::AppHMITypes::value_type item) {
+ int operator()(const policy_table::AppHMITypes::value_type item) const {
return policy_table::AppHMIType(item);
}
};
diff --git a/src/components/policy/policy_regular/src/sql_pt_representation.cc b/src/components/policy/policy_regular/src/sql_pt_representation.cc
index 49b7f2e7be..bf578aebe5 100644
--- a/src/components/policy/policy_regular/src/sql_pt_representation.cc
+++ b/src/components/policy/policy_regular/src/sql_pt_representation.cc
@@ -2770,9 +2770,7 @@ SQLPTRepresentation::SelectCompositeVehicleDataItems() const {
if (!vdi.is_initialized()) {
return policy_table::VehicleDataItems();
}
- for (const auto& item : vdi) {
- result.push_back(item);
- }
+ std::copy(vdi.begin(), vdi.end(), std::back_inserter(result));
}
return result;
diff --git a/src/components/protocol/src/rpc_type.cc b/src/components/protocol/src/rpc_type.cc
index fb9845d148..0e2edb34e8 100644
--- a/src/components/protocol/src/rpc_type.cc
+++ b/src/components/protocol/src/rpc_type.cc
@@ -62,11 +62,6 @@ RpcType RpcTypeFromByte(uint8_t byte) {
return supported_type ? type : kRpcTypeReserved;
}
-uint8_t RpcTypeToByte(RpcType type) {
- DCHECK(IsSupported(type));
- return uint8_t(type);
-}
-
const char* RpcTypeToString(RpcType type) {
switch (type) {
case kRpcTypeRequest:
diff --git a/src/components/protocol/src/service_type.cc b/src/components/protocol/src/service_type.cc
index e6417b07d0..b1674e10d8 100644
--- a/src/components/protocol/src/service_type.cc
+++ b/src/components/protocol/src/service_type.cc
@@ -63,9 +63,4 @@ ServiceType ServiceTypeFromByte(uint8_t byte) {
return valid_type ? type : kInvalidServiceType;
}
-uint8_t ServiceTypeToByte(ServiceType type) {
- DCHECK(IsValid(type));
- return uint8_t(type);
-}
-
} // namespace protocol_handler
diff --git a/src/components/protocol_handler/src/incoming_data_handler.cc b/src/components/protocol_handler/src/incoming_data_handler.cc
index f0692b3304..08997acaac 100644
--- a/src/components/protocol_handler/src/incoming_data_handler.cc
+++ b/src/components/protocol_handler/src/incoming_data_handler.cc
@@ -158,7 +158,7 @@ RESULT_CODE IncomingDataHandler::CreateFrame(
}
SDL_LOG_DEBUG("Payload size " << header_.dataSize);
const uint32_t packet_size = GetPacketSize(header_);
- if (packet_size <= 0) {
+ if (packet_size == 0) {
SDL_LOG_WARN("Null packet size");
++data_it;
--data_size;
diff --git a/src/components/protocol_handler/src/protocol_handler_impl.cc b/src/components/protocol_handler/src/protocol_handler_impl.cc
index f1179e7107..dc710549cd 100644
--- a/src/components/protocol_handler/src/protocol_handler_impl.cc
+++ b/src/components/protocol_handler/src/protocol_handler_impl.cc
@@ -1243,7 +1243,7 @@ void ProtocolHandlerImpl::OnTransportConfigUpdated(
if (st.secondary_transport != kDisabledSecondary) {
SendTransportUpdateEvent(st.primary_transport, itr->first);
}
- itr++;
+ ++itr;
}
}
@@ -2573,7 +2573,7 @@ void ProtocolHandlerImpl::GenerateSecondaryTransportsForStartSessionAck(
secondaryTransports.push_back("TCP_WIFI");
}
- it++;
+ ++it;
}
}
@@ -2600,7 +2600,7 @@ void ProtocolHandlerImpl::GenerateServiceTransportsForStartSessionAck(
bool fPrimaryAdded = false;
bool fSecondaryAdded = false;
std::vector<std::string>::const_iterator it = service_transports.begin();
- for (; it != service_transports.end(); it++) {
+ for (; it != service_transports.end(); ++it) {
const utils::custom_string::CustomString transport(*it);
SDL_LOG_TRACE(
diff --git a/src/components/protocol_handler/src/protocol_payload.cc b/src/components/protocol_handler/src/protocol_payload.cc
index 8916fe91b0..a18f04f8a1 100644
--- a/src/components/protocol_handler/src/protocol_payload.cc
+++ b/src/components/protocol_handler/src/protocol_payload.cc
@@ -93,8 +93,11 @@ std::ostream& operator<<(std::ostream& os, const ProtocolPayloadV2& payload) {
<< ", data (bytes): " << payload.data.size() << ")";
}
+#ifdef BUILD_TESTS
+// cppcheck-suppress unusedFunction //Used in unit tests
size_t ProtocolPayloadV2SizeBits() {
return PayloadHeaderBits;
}
+#endif // BUILD_TESTS
} // namespace protocol_handler
diff --git a/src/components/security_manager/src/crypto_manager_impl.cc b/src/components/security_manager/src/crypto_manager_impl.cc
index 9ee820b19d..845485a6c3 100644
--- a/src/components/security_manager/src/crypto_manager_impl.cc
+++ b/src/components/security_manager/src/crypto_manager_impl.cc
@@ -338,10 +338,16 @@ bool CryptoManagerImpl::IsCertificateUpdateRequired(
const double seconds = difftime(certificates_time, system_time);
- SDL_LOG_DEBUG(
- "Certificate UTC time: " << asctime(gmtime(&certificates_time)));
+ const size_t maxsize = 40;
+ char certificate_utc_time[maxsize];
+ std::strftime(
+ certificate_utc_time, maxsize, "%c", gmtime(&certificates_time));
+ SDL_LOG_DEBUG("Certificate UTC time: " << certificate_utc_time);
+
+ char host_utc_time[maxsize];
+ std::strftime(host_utc_time, maxsize, "%c", gmtime(&system_time));
+ SDL_LOG_DEBUG("Host UTC time: " << host_utc_time);
- SDL_LOG_DEBUG("Host UTC time: " << asctime(gmtime(&system_time)));
SDL_LOG_DEBUG("Seconds before expiration: " << seconds);
if (seconds < 0) {
SDL_LOG_WARN("Certificate is already expired.");
diff --git a/src/components/security_manager/test/security_query_matcher.cc b/src/components/security_manager/test/security_query_matcher.cc
index 1bf22bf8cd..b9a4f83b10 100644
--- a/src/components/security_manager/test/security_query_matcher.cc
+++ b/src/components/security_manager/test/security_query_matcher.cc
@@ -90,15 +90,12 @@ MATCHER_P(InternalErrorWithErrId,
} // namespace security_manager_test
} // namespace components
} // namespace test
- /*
- * Matcher for checking QueryHeader equal in GTests
- */
-::testing::AssertionResult QueryHeader_EQ(
- const char* m_expr,
- const char* n_expr,
- const ::security_manager::SecurityQuery::QueryHeader& q1,
- const ::security_manager::SecurityQuery::QueryHeader& q2);
+#ifdef BUILD_TESTS
+/*
+ * Matcher for checking QueryHeader equal in GTests
+ */
+// cppcheck-suppress unusedFunction //Used in unit tests
::testing::AssertionResult QueryHeader_EQ(
const char* m_expr,
const char* n_expr,
@@ -121,3 +118,4 @@ MATCHER_P(InternalErrorWithErrId,
<< ", seq_number_2=" << q2.seq_number;
return ::testing::AssertionSuccess();
}
+#endif // BUILD_TESTS
diff --git a/src/components/smart_objects/src/object_schema_item.cc b/src/components/smart_objects/src/object_schema_item.cc
index 7e5c49bae0..920d548c48 100644
--- a/src/components/smart_objects/src/object_schema_item.cc
+++ b/src/components/smart_objects/src/object_schema_item.cc
@@ -146,7 +146,7 @@ errors::eType CObjectSchemaItem::validate(
}
const SmartObject& field = object.getElement(key);
- errors::eType result = errors::OK;
+ errors::eType result;
// Check if MessageVersion matches schema version
if (correct_member) {
result =
diff --git a/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc b/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc
index 555239c489..1ce383e44d 100644
--- a/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc
+++ b/src/components/smart_objects/test/SmartObjectConvertionTime_test.cc
@@ -270,367 +270,279 @@ class SmartObjectConvertionTimeTest : public ::testing::Test {
return CSmartSchema(CObjectSchemaItem::create(rootMembersMap));
}
- // Create SmartObjectSchema for test object
- CSmartSchema initObjectSchema() {
- std::set<TestType::eType> resultCode_allowedEnumSubsetValues;
- resultCode_allowedEnumSubsetValues.insert(
- TestType::APPLICATION_NOT_REGISTERED);
- resultCode_allowedEnumSubsetValues.insert(TestType::SUCCESS);
- resultCode_allowedEnumSubsetValues.insert(
- TestType::TOO_MANY_PENDING_REQUESTS);
- resultCode_allowedEnumSubsetValues.insert(TestType::REJECTED);
- resultCode_allowedEnumSubsetValues.insert(TestType::INVALID_DATA);
- resultCode_allowedEnumSubsetValues.insert(TestType::OUT_OF_MEMORY);
- resultCode_allowedEnumSubsetValues.insert(TestType::ABORTED);
- resultCode_allowedEnumSubsetValues.insert(TestType::USER_DISALLOWED);
- resultCode_allowedEnumSubsetValues.insert(TestType::GENERIC_ERROR);
- resultCode_allowedEnumSubsetValues.insert(TestType::DISALLOWED);
-
- std::set<FunctionIdTest::eType> functionId_allowedEnumSubsetValues;
- functionId_allowedEnumSubsetValues.insert(
- FunctionIdTest::RegisterAppInterface);
- functionId_allowedEnumSubsetValues.insert(
- FunctionIdTest::UnregisterAppInterface);
- functionId_allowedEnumSubsetValues.insert(
- FunctionIdTest::SetGlobalProperties);
-
- std::set<MessageTypeTest::eType> messageType_allowedEnumSubsetValues;
- messageType_allowedEnumSubsetValues.insert(MessageTypeTest::request);
- messageType_allowedEnumSubsetValues.insert(MessageTypeTest::response);
- messageType_allowedEnumSubsetValues.insert(MessageTypeTest::notification);
-
- ISchemaItemPtr success_SchemaItem =
- CBoolSchemaItem::create(TSchemaItemParameter<bool>());
-
- ISchemaItemPtr resultCode_SchemaItem =
- TEnumSchemaItem<TestType::eType>::create(
- resultCode_allowedEnumSubsetValues,
- TSchemaItemParameter<TestType::eType>());
-
- ISchemaItemPtr info_SchemaItem =
- CStringSchemaItem::create(TSchemaItemParameter<size_t>(0),
- TSchemaItemParameter<size_t>(1000),
- TSchemaItemParameter<std::string>());
-
- ISchemaItemPtr tryAgainTime_SchemaItem =
- TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(0),
- TSchemaItemParameter<int>(2000000000),
- TSchemaItemParameter<int>());
-
- std::map<std::string, SMember> schemaMembersMap;
-
- schemaMembersMap["success"] = SMember(success_SchemaItem, true);
- schemaMembersMap["resultCode"] = SMember(resultCode_SchemaItem, true);
- schemaMembersMap["info"] = SMember(info_SchemaItem, false);
- schemaMembersMap["tryAgainTime"] = SMember(tryAgainTime_SchemaItem, true);
-
- std::map<std::string, SMember> paramsMembersMap;
- paramsMembersMap
- [ns_smart_device_link::ns_json_handler::strings::S_FUNCTION_ID] =
- SMember(TEnumSchemaItem<FunctionIdTest::eType>::create(
- functionId_allowedEnumSubsetValues),
- true);
- paramsMembersMap
- [ns_smart_device_link::ns_json_handler::strings::S_MESSAGE_TYPE] =
- SMember(TEnumSchemaItem<MessageTypeTest::eType>::create(
- messageType_allowedEnumSubsetValues),
- true);
- paramsMembersMap
- [ns_smart_device_link::ns_json_handler::strings::S_CORRELATION_ID] =
- SMember(TNumberSchemaItem<int>::create(), true);
- paramsMembersMap
- [ns_smart_device_link::ns_json_handler::strings::S_PROTOCOL_VERSION] =
- SMember(
- TNumberSchemaItem<int>::create(TSchemaItemParameter<int>(1),
- TSchemaItemParameter<int>(2)),
- true);
- paramsMembersMap
- [ns_smart_device_link::ns_json_handler::strings::S_PROTOCOL_TYPE] =
- SMember(TNumberSchemaItem<int>::create(), true);
-
- std::map<std::string, SMember> rootMembersMap;
- rootMembersMap
- [ns_smart_device_link::ns_json_handler::strings::S_MSG_PARAMS] =
- SMember(CObjectSchemaItem::create(schemaMembersMap), true);
- rootMembersMap[ns_smart_device_link::ns_json_handler::strings::S_PARAMS] =
- SMember(CObjectSchemaItem::create(paramsMembersMap), true);
- return CSmartSchema(CObjectSchemaItem::create(rootMembersMap));
+ TEST_F(SmartObjectConvertionTimeTest, test_int_object_convertion) {
+ SmartObject srcObj, dstObj;
+ CSmartSchema schema = initObjectSchema();
+
+ srcObj.setSchema(schema);
+ dstObj.setSchema(schema);
+
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 1;
+ srcObj[S_MSG_PARAMS]["value"] = 5;
+
+ printf("\n INT value.\n");
+ calculateConvertionTime(srcObj, dstObj);
}
-};
-TEST_F(SmartObjectConvertionTimeTest, test_int_object_convertion) {
- SmartObject srcObj, dstObj;
- CSmartSchema schema = initObjectSchema();
+ TEST_F(SmartObjectConvertionTimeTest, test_double_object_convertion) {
+ SmartObject srcObj, dstObj;
+ CSmartSchema schema = initObjectSchema();
+
+ srcObj.setSchema(schema);
+ dstObj.setSchema(schema);
+
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["value1"] = 3.1415926;
+ srcObj[S_MSG_PARAMS]["value2"] = 32.6;
+ srcObj[S_MSG_PARAMS]["value3"] = 33.945;
+ srcObj[S_MSG_PARAMS]["value4"] = -12.5487698;
+ srcObj[S_MSG_PARAMS]["value5"] = 0.61287346;
+
+ printf("\n Double value.\n");
+ calculateConvertionTime(srcObj, dstObj);
+ }
- srcObj.setSchema(schema);
- dstObj.setSchema(schema);
+ TEST_F(SmartObjectConvertionTimeTest, test_some_object_convertion) {
+ SmartObject srcObj, dstObj;
+ CSmartSchema schema = initObjectSchema();
+
+ srcObj.setSchema(schema);
+ dstObj.setSchema(schema);
+
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["appId"] = "APP ID";
+ srcObj[S_MSG_PARAMS]["appName"] = "APP NAME";
+ srcObj[S_MSG_PARAMS]["appType"][0] = "SYSTEM";
+ srcObj[S_MSG_PARAMS]["appType"][1] = "COMMUNICATION";
+ srcObj[S_MSG_PARAMS]["hmiDisplayLanguageDesired"] = "RU-RU";
+ srcObj[S_MSG_PARAMS]["isMediaApplication"] = true;
+ srcObj[S_MSG_PARAMS]["languageDesired"] = "EN-US";
+ srcObj[S_MSG_PARAMS]["ngnMediaScreenAppName"] = "SCREEN NAME";
+ srcObj[S_MSG_PARAMS]["syncMsgVersion"]["majorVersion"] = 2;
+ srcObj[S_MSG_PARAMS]["syncMsgVersion"]["minorVersion"] = 10;
+ srcObj[S_MSG_PARAMS]["syncMsgVersion"]["patchVersion"] = 5;
+
+ srcObj[S_MSG_PARAMS]["ttsName"][0]["text"] = "ABC";
+ srcObj[S_MSG_PARAMS]["ttsName"][0]["type"] = "TEXT";
+ srcObj[S_MSG_PARAMS]["vrSynonyms"][0] = "Synonym1";
+ srcObj[S_MSG_PARAMS]["vrSynonyms"][1] = "Synonym2";
+ srcObj[S_MSG_PARAMS]["null"] = SmartObject();
+ srcObj[S_MSG_PARAMS]["double"] = -0.1234;
+
+ printf("\n Random object.\n");
+ calculateConvertionTime(srcObj, dstObj);
+ }
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 1;
- srcObj[S_MSG_PARAMS]["value"] = 5;
+ TEST_F(SmartObjectConvertionTimeTest, test_map_object_convertion) {
+ SmartObject srcObj, dstObj, mapObj, innerObj;
+ CSmartSchema schema = initObjectSchema();
+
+ srcObj.setSchema(schema);
+ dstObj.setSchema(schema);
+
+ // First iteration
+ mapObj["request"]["name"] = "My Request";
+ mapObj["request"]["id"] = 123;
+ mapObj["response"]["name"] = "My Response";
+ mapObj["response"]["id"] = 456;
+ mapObj["we"]["need"]["to"]["go"]["deeper"] = true;
+
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["value"] = mapObj;
+
+ printf("\n MAP object.\n");
+ calculateConvertionTime(srcObj, dstObj);
+
+ // Second iteration
+ innerObj = mapObj;
+ mapObj["request"]["value"] = innerObj;
+ mapObj["response"]["value"] = innerObj;
+ mapObj["we"]["need"]["to"]["go"]["deeper"]["value"] = innerObj;
+ srcObj[S_MSG_PARAMS]["value"] = mapObj;
+
+ printf("\n Complex MAP object.\n");
+ calculateConvertionTime(srcObj, dstObj);
+
+ // Third iteration
+ innerObj = mapObj;
+ mapObj["request"]["value"] = innerObj;
+ mapObj["response"]["value"] = innerObj;
+ mapObj["we"]["need"]["to"]["go"]["deeper"]["value"] = innerObj;
+ srcObj[S_MSG_PARAMS]["value"] = mapObj;
+
+ printf("\n Very Complex MAP object.\n");
+ calculateConvertionTime(srcObj, dstObj);
+
+ // Last iteration
+ innerObj = mapObj;
+ mapObj["request"]["value"] = innerObj;
+ mapObj["response"]["value"] = innerObj;
+ mapObj["we"]["need"]["to"]["go"]["deeper"]["value"] = innerObj;
+ srcObj[S_MSG_PARAMS]["value"] = mapObj;
+
+ printf("\n Very Very Complex MAP object.\n");
+ calculateConvertionTime(srcObj, dstObj);
+ }
- printf("\n INT value.\n");
- calculateConvertionTime(srcObj, dstObj);
-}
+ TEST_F(SmartObjectConvertionTimeTest, test_array_convertion) {
+ SmartObject srcObj, dstObj, arrayObj, innerObj;
+ CSmartSchema schema = initObjectSchema();
+ int arraySize = 10;
-TEST_F(SmartObjectConvertionTimeTest, test_double_object_convertion) {
- SmartObject srcObj, dstObj;
- CSmartSchema schema = initObjectSchema();
-
- srcObj.setSchema(schema);
- dstObj.setSchema(schema);
-
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["value1"] = 3.1415926;
- srcObj[S_MSG_PARAMS]["value2"] = 32.6;
- srcObj[S_MSG_PARAMS]["value3"] = 33.945;
- srcObj[S_MSG_PARAMS]["value4"] = -12.5487698;
- srcObj[S_MSG_PARAMS]["value5"] = 0.61287346;
-
- printf("\n Double value.\n");
- calculateConvertionTime(srcObj, dstObj);
-}
+ srcObj.setSchema(schema);
+ dstObj.setSchema(schema);
-TEST_F(SmartObjectConvertionTimeTest, test_some_object_convertion) {
- SmartObject srcObj, dstObj;
- CSmartSchema schema = initObjectSchema();
-
- srcObj.setSchema(schema);
- dstObj.setSchema(schema);
-
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["appId"] = "APP ID";
- srcObj[S_MSG_PARAMS]["appName"] = "APP NAME";
- srcObj[S_MSG_PARAMS]["appType"][0] = "SYSTEM";
- srcObj[S_MSG_PARAMS]["appType"][1] = "COMMUNICATION";
- srcObj[S_MSG_PARAMS]["hmiDisplayLanguageDesired"] = "RU-RU";
- srcObj[S_MSG_PARAMS]["isMediaApplication"] = true;
- srcObj[S_MSG_PARAMS]["languageDesired"] = "EN-US";
- srcObj[S_MSG_PARAMS]["ngnMediaScreenAppName"] = "SCREEN NAME";
- srcObj[S_MSG_PARAMS]["syncMsgVersion"]["majorVersion"] = 2;
- srcObj[S_MSG_PARAMS]["syncMsgVersion"]["minorVersion"] = 10;
- srcObj[S_MSG_PARAMS]["syncMsgVersion"]["patchVersion"] = 5;
-
- srcObj[S_MSG_PARAMS]["ttsName"][0]["text"] = "ABC";
- srcObj[S_MSG_PARAMS]["ttsName"][0]["type"] = "TEXT";
- srcObj[S_MSG_PARAMS]["vrSynonyms"][0] = "Synonym1";
- srcObj[S_MSG_PARAMS]["vrSynonyms"][1] = "Synonym2";
- srcObj[S_MSG_PARAMS]["null"] = SmartObject();
- srcObj[S_MSG_PARAMS]["double"] = -0.1234;
-
- printf("\n Random object.\n");
- calculateConvertionTime(srcObj, dstObj);
-}
+ // First iteration
+ for (int i = 0; i < arraySize; i++) {
+ arrayObj[i] = rand();
+ }
-TEST_F(SmartObjectConvertionTimeTest, test_map_object_convertion) {
- SmartObject srcObj, dstObj, mapObj, innerObj;
- CSmartSchema schema = initObjectSchema();
-
- srcObj.setSchema(schema);
- dstObj.setSchema(schema);
-
- // First iteration
- mapObj["request"]["name"] = "My Request";
- mapObj["request"]["id"] = 123;
- mapObj["response"]["name"] = "My Response";
- mapObj["response"]["id"] = 456;
- mapObj["we"]["need"]["to"]["go"]["deeper"] = true;
-
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["value"] = mapObj;
-
- printf("\n MAP object.\n");
- calculateConvertionTime(srcObj, dstObj);
-
- // Second iteration
- innerObj = mapObj;
- mapObj["request"]["value"] = innerObj;
- mapObj["response"]["value"] = innerObj;
- mapObj["we"]["need"]["to"]["go"]["deeper"]["value"] = innerObj;
- srcObj[S_MSG_PARAMS]["value"] = mapObj;
-
- printf("\n Complex MAP object.\n");
- calculateConvertionTime(srcObj, dstObj);
-
- // Third iteration
- innerObj = mapObj;
- mapObj["request"]["value"] = innerObj;
- mapObj["response"]["value"] = innerObj;
- mapObj["we"]["need"]["to"]["go"]["deeper"]["value"] = innerObj;
- srcObj[S_MSG_PARAMS]["value"] = mapObj;
-
- printf("\n Very Complex MAP object.\n");
- calculateConvertionTime(srcObj, dstObj);
-
- // Last iteration
- innerObj = mapObj;
- mapObj["request"]["value"] = innerObj;
- mapObj["response"]["value"] = innerObj;
- mapObj["we"]["need"]["to"]["go"]["deeper"]["value"] = innerObj;
- srcObj[S_MSG_PARAMS]["value"] = mapObj;
-
- printf("\n Very Very Complex MAP object.\n");
- calculateConvertionTime(srcObj, dstObj);
-}
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["array"] = arrayObj;
+
+ printf("\n Array object [%d].\n", arraySize);
+ calculateConvertionTime(srcObj, dstObj);
+
+ // Second iteration
+ printf("\n Array object [%d x %d].\n", arraySize, arraySize);
+ innerObj = arrayObj;
+ for (int i = 0; i < arraySize; i++) {
+ arrayObj[i] = innerObj;
+ }
-TEST_F(SmartObjectConvertionTimeTest, test_array_convertion) {
- SmartObject srcObj, dstObj, arrayObj, innerObj;
- CSmartSchema schema = initObjectSchema();
- int arraySize = 10;
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["array"] = arrayObj;
- srcObj.setSchema(schema);
- dstObj.setSchema(schema);
+ calculateConvertionTime(srcObj, dstObj);
- // First iteration
- for (int i = 0; i < arraySize; i++) {
- arrayObj[i] = rand();
- }
+ // Third iteration
+ printf(
+ "\n Array object [%d x %d x %d].\n", arraySize, arraySize, arraySize);
+ innerObj = arrayObj;
+ for (int i = 0; i < arraySize; i++) {
+ arrayObj[i] = innerObj;
+ }
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["array"] = arrayObj;
-
- printf("\n Array object [%d].\n", arraySize);
- calculateConvertionTime(srcObj, dstObj);
-
- // Second iteration
- printf("\n Array object [%d x %d].\n", arraySize, arraySize);
- innerObj = arrayObj;
- for (int i = 0; i < arraySize; i++) {
- arrayObj[i] = innerObj;
- }
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["array"] = arrayObj;
+
+ calculateConvertionTime(srcObj, dstObj);
+
+ // Fourth iteration
+ printf("\n Array object [%d x %d x %d x %d].\n",
+ arraySize,
+ arraySize,
+ arraySize,
+ arraySize);
+ innerObj = arrayObj;
+ for (int i = 0; i < arraySize; i++) {
+ arrayObj[i] = innerObj;
+ }
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["array"] = arrayObj;
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["array"] = arrayObj;
+
+ calculateConvertionTime(srcObj, dstObj);
+
+ // Last iteration
+ printf("\n Array object [%d x %d x %d x %d x %d].\n",
+ arraySize,
+ arraySize,
+ arraySize,
+ arraySize,
+ arraySize);
+ innerObj = arrayObj;
+ for (int i = 0; i < arraySize; i++) {
+ arrayObj[i] = innerObj;
+ }
- calculateConvertionTime(srcObj, dstObj);
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["array"] = arrayObj;
- // Third iteration
- printf("\n Array object [%d x %d x %d].\n", arraySize, arraySize, arraySize);
- innerObj = arrayObj;
- for (int i = 0; i < arraySize; i++) {
- arrayObj[i] = innerObj;
+ calculateConvertionTime(srcObj, dstObj);
}
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["array"] = arrayObj;
-
- calculateConvertionTime(srcObj, dstObj);
-
- // Fourth iteration
- printf("\n Array object [%d x %d x %d x %d].\n",
- arraySize,
- arraySize,
- arraySize,
- arraySize);
- innerObj = arrayObj;
- for (int i = 0; i < arraySize; i++) {
- arrayObj[i] = innerObj;
+ TEST_F(SmartObjectConvertionTimeTest, test_object_with_enum_convertion) {
+ SmartObject srcObj, dstObj;
+ CSmartSchema schema = initObjectSchema();
+
+ srcObj.setSchema(schema);
+ dstObj.setSchema(schema);
+
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["success"] = true;
+ srcObj[S_MSG_PARAMS]["resultCode"] = 2;
+ srcObj[S_MSG_PARAMS]["info"] = "Some string";
+ srcObj[S_MSG_PARAMS]["tryAgainTime"] = 322;
+ srcObj.setSchema(schema);
+
+ printf("\n Object with enum.\n");
+ calculateConvertionTime(srcObj, dstObj);
}
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["array"] = arrayObj;
-
- calculateConvertionTime(srcObj, dstObj);
-
- // Last iteration
- printf("\n Array object [%d x %d x %d x %d x %d].\n",
- arraySize,
- arraySize,
- arraySize,
- arraySize,
- arraySize);
- innerObj = arrayObj;
- for (int i = 0; i < arraySize; i++) {
- arrayObj[i] = innerObj;
+ TEST_F(SmartObjectConvertionTimeTest, test_object_without_enum_convertion) {
+ SmartObject srcObj, dstObj;
+ CSmartSchema schema = initObjectSchema();
+
+ srcObj.setSchema(schema);
+ dstObj.setSchema(schema);
+
+ srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
+ srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
+ srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
+ srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
+ srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
+ srcObj[S_MSG_PARAMS]["success"] = true;
+ srcObj[S_MSG_PARAMS]["resultCode"] = 2;
+ srcObj[S_MSG_PARAMS]["info"] = "Some string";
+ srcObj[S_MSG_PARAMS]["tryAgainTime"] = 322;
+
+ printf("\n Object without enum.\n");
+ calculateConvertionTime(srcObj, dstObj);
}
-
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["array"] = arrayObj;
-
- calculateConvertionTime(srcObj, dstObj);
-}
-
-TEST_F(SmartObjectConvertionTimeTest, test_object_with_enum_convertion) {
- SmartObject srcObj, dstObj;
- CSmartSchema schema = initObjectSchema();
-
- srcObj.setSchema(schema);
- dstObj.setSchema(schema);
-
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["success"] = true;
- srcObj[S_MSG_PARAMS]["resultCode"] = 2;
- srcObj[S_MSG_PARAMS]["info"] = "Some string";
- srcObj[S_MSG_PARAMS]["tryAgainTime"] = 322;
- srcObj.setSchema(schema);
-
- printf("\n Object with enum.\n");
- calculateConvertionTime(srcObj, dstObj);
-}
-
-TEST_F(SmartObjectConvertionTimeTest, test_object_without_enum_convertion) {
- SmartObject srcObj, dstObj;
- CSmartSchema schema = initObjectSchema();
-
- srcObj.setSchema(schema);
- dstObj.setSchema(schema);
-
- srcObj[S_PARAMS][S_MESSAGE_TYPE] = MessageTypeTest::request;
- srcObj[S_PARAMS][S_FUNCTION_ID] = FunctionIdTest::RegisterAppInterface;
- srcObj[S_PARAMS][S_CORRELATION_ID] = 13;
- srcObj[S_PARAMS][S_PROTOCOL_TYPE] = 0;
- srcObj[S_PARAMS][S_PROTOCOL_VERSION] = 2;
- srcObj[S_MSG_PARAMS]["success"] = true;
- srcObj[S_MSG_PARAMS]["resultCode"] = 2;
- srcObj[S_MSG_PARAMS]["info"] = "Some string";
- srcObj[S_MSG_PARAMS]["tryAgainTime"] = 322;
-
- printf("\n Object without enum.\n");
- calculateConvertionTime(srcObj, dstObj);
-}
-
+};
} // namespace smart_object_test
} // namespace components
-} // namespace test
namespace ns_smart_device_link {
namespace ns_smart_objects {
diff --git a/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h b/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
index 9eea8389e6..30ecf1a277 100644
--- a/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
+++ b/src/components/transport_manager/include/transport_manager/tcp/tcp_client_listener.h
@@ -37,6 +37,9 @@
#define SRC_COMPONENTS_TRANSPORT_MANAGER_INCLUDE_TRANSPORT_MANAGER_TCP_TCP_CLIENT_LISTENER_H_
#include "transport_manager/transport_adapter/client_connection_listener.h"
+
+#include <atomic>
+
#include "utils/lock.h"
#include "utils/threads/thread_delegate.h"
@@ -149,8 +152,8 @@ class TcpClientListener : public ClientConnectionListener {
bool started_;
threads::Thread* thread_;
int socket_;
- bool thread_stop_requested_;
- bool remove_devices_on_terminate_;
+ std::atomic_bool thread_stop_requested_;
+ std::atomic_bool remove_devices_on_terminate_;
int pipe_fds_[2];
NetworkInterfaceListener* interface_listener_;
const std::string designated_interface_;
diff --git a/src/components/transport_manager/src/cloud/websocket_client_connection.cc b/src/components/transport_manager/src/cloud/websocket_client_connection.cc
index f6b791f886..c3eba1d905 100644
--- a/src/components/transport_manager/src/cloud/websocket_client_connection.cc
+++ b/src/components/transport_manager/src/cloud/websocket_client_connection.cc
@@ -248,7 +248,6 @@ void WebsocketClientConnection::OnRead(boost::system::error_code ec,
Shutdown();
return;
}
- std::string data_str = boost::beast::buffers_to_string(buffer_.data());
ssize_t size = (ssize_t)buffer_.size();
const uint8_t* data = boost::asio::buffer_cast<const uint8_t*>(
diff --git a/src/components/transport_manager/src/tcp/tcp_client_listener.cc b/src/components/transport_manager/src/tcp/tcp_client_listener.cc
index 0812cd39c9..4010b2b628 100644
--- a/src/components/transport_manager/src/tcp/tcp_client_listener.cc
+++ b/src/components/transport_manager/src/tcp/tcp_client_listener.cc
@@ -97,7 +97,7 @@ TcpClientListener::TcpClientListener(TransportAdapterController* controller,
TransportAdapter::Error TcpClientListener::Init() {
SDL_LOG_AUTO_TRACE();
- thread_stop_requested_ = false;
+ thread_stop_requested_.store(false);
if (!IsListeningOnSpecificInterface()) {
// Network interface is not specified. We will listen on all interfaces
@@ -163,9 +163,13 @@ TcpClientListener::~TcpClientListener() {
void SetKeepaliveOptions(const int fd) {
SDL_LOG_AUTO_TRACE();
SDL_LOG_DEBUG("fd: " << fd);
+ // cppcheck-suppress unreadVariable
int yes = 1;
+ // cppcheck-suppress unreadVariable
int keepidle = 3; // 3 seconds to disconnection detecting
+ // cppcheck-suppress unreadVariable
int keepcnt = 5;
+ // cppcheck-suppress unreadVariable
int keepintvl = 1;
#ifdef __linux__
int user_timeout = 7000; // milliseconds
@@ -343,7 +347,7 @@ void TcpClientListener::StopLoop() {
return;
}
- thread_stop_requested_ = true;
+ thread_stop_requested_.store(true);
char dummy[1] = {0};
int ret = write(pipe_fds_[1], dummy, sizeof(dummy));
@@ -459,7 +463,7 @@ TransportAdapter::Error TcpClientListener::StartListeningThread() {
}
}
- thread_stop_requested_ = false;
+ thread_stop_requested_.store(false);
if (!thread_->Start()) {
return TransportAdapter::FAIL;
@@ -538,7 +542,7 @@ bool TcpClientListener::StartOnNetworkInterface() {
}
}
- remove_devices_on_terminate_ = true;
+ remove_devices_on_terminate_.store(true);
if (TransportAdapter::OK != StartListeningThread()) {
SDL_LOG_WARN("Failed to start TCP client listener");
@@ -564,7 +568,7 @@ bool TcpClientListener::StopOnNetworkInterface() {
socket_ = -1;
}
- remove_devices_on_terminate_ = false;
+ remove_devices_on_terminate_.store(false);
SDL_LOG_INFO("TCP server socket on " << designated_interface_
<< " stopped");
diff --git a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
index 7d0eda9773..6a16e81d18 100644
--- a/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
+++ b/src/components/transport_manager/src/transport_adapter/transport_adapter_impl.cc
@@ -558,13 +558,13 @@ void TransportAdapterImpl::SearchDeviceDone(const DeviceVector& devices) {
bool device_found = false;
devices_mutex_.Acquire();
- for (DeviceMap::iterator it = devices_.begin(); it != devices_.end();
- ++it) {
- DeviceSptr existing_device = it->second;
+ for (DeviceMap::iterator iter = devices_.begin(); iter != devices_.end();
+ ++iter) {
+ DeviceSptr existing_device = iter->second;
if (device->IsSameAs(existing_device.get())) {
existing_device->set_keep_on_disconnect(true);
device_found = true;
- SDL_LOG_DEBUG("device found. DeviceSptr" << it->second);
+ SDL_LOG_DEBUG("device found. DeviceSptr" << iter->second);
break;
}
}
diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc
index a0d019cd69..eb1b63fb96 100644
--- a/src/components/transport_manager/src/transport_manager_impl.cc
+++ b/src/components/transport_manager/src/transport_manager_impl.cc
@@ -1386,7 +1386,8 @@ void TransportManagerImpl::Handle(::protocol_handler::RawMessagePtr msg) {
}
TransportAdapter* transport_adapter = connection->transport_adapter;
- if (NULL == transport_adapter) {
+
+ if (nullptr == transport_adapter) {
std::string error_text = "Transport adapter is not found";
SDL_LOG_ERROR(error_text);
RaiseEvent(&TransportManagerListener::OnTMMessageSendFailed,
diff --git a/src/components/transport_manager/src/usb/qnx/usb_handler.cc b/src/components/transport_manager/src/usb/qnx/usb_handler.cc
index 441fc8b664..2381daa15a 100644
--- a/src/components/transport_manager/src/usb/qnx/usb_handler.cc
+++ b/src/components/transport_manager/src/usb/qnx/usb_handler.cc
@@ -76,11 +76,6 @@ UsbHandler::~UsbHandler() {
}
}
-bool operator==(const usbd_device_instance_t& a,
- const usbd_device_instance_t& b) {
- return a.path == b.path && a.devno == b.devno;
-}
-
void UsbHandler::DeviceArrived(usbd_connection* connection,
usbd_device_instance_t* instance) {
for (Devices::const_iterator it = devices_.begin(); it != devices_.end();
diff --git a/src/components/transport_manager/src/usb/usb_device_scanner.cc b/src/components/transport_manager/src/usb/usb_device_scanner.cc
index b0749728a6..e2e2fecd6e 100644
--- a/src/components/transport_manager/src/usb/usb_device_scanner.cc
+++ b/src/components/transport_manager/src/usb/usb_device_scanner.cc
@@ -47,7 +47,7 @@ SDL_CREATE_LOG_VARIABLE("TransportManager")
class AoaInitSequence : public UsbControlTransferSequence {
public:
AoaInitSequence();
- AoaInitSequence(const TransportManagerSettings& settings);
+ explicit AoaInitSequence(const TransportManagerSettings& settings);
virtual ~AoaInitSequence() {}
private:
diff --git a/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h b/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h
index 2ee699096f..5aedfd58aa 100644
--- a/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h
+++ b/src/components/transport_manager/test/include/transport_manager/raw_message_matcher.h
@@ -55,7 +55,8 @@ class RawMessageMatcher : public MatcherInterface<RawMessagePtr> {
public:
explicit RawMessageMatcher(RawMessagePtr ptr);
- virtual bool MatchAndExplain(const RawMessagePtr ptr,
+ DEPRECATED
+ virtual bool MatchAndExplain(const RawMessagePtr msg,
MatchResultListener* listener) const;
virtual void DescribeTo(std::ostream* os) const;
virtual void DescribeNegationTo(std::ostream* os) const;
diff --git a/src/components/transport_manager/test/network_interface_listener_test.cc b/src/components/transport_manager/test/network_interface_listener_test.cc
index c6e007b62a..b2d9cbb51e 100644
--- a/src/components/transport_manager/test/network_interface_listener_test.cc
+++ b/src/components/transport_manager/test/network_interface_listener_test.cc
@@ -30,24 +30,10 @@ class NetworkInterfaceListenerTest : public ::testing::Test {
virtual ~NetworkInterfaceListenerTest() {}
protected:
- struct InterfaceEntry {
- const char* name;
- const char* ipv4_address;
- const char* ipv6_address;
- unsigned int flags;
- };
-
void Deinit() {
delete interface_listener_impl_;
}
- void SleepFor(long msec) const {
- if (msec > 0) {
- struct timespec ts = {0, msec * 1000 * 1000};
- nanosleep(&ts, NULL);
- }
- }
-
NetworkInterfaceListenerImpl* interface_listener_impl_;
MockTcpClientListener mock_tcp_client_listener_;
};
diff --git a/src/components/transport_manager/test/raw_message_matcher.cc b/src/components/transport_manager/test/raw_message_matcher.cc
index 61d73a9253..48e0908f9a 100644
--- a/src/components/transport_manager/test/raw_message_matcher.cc
+++ b/src/components/transport_manager/test/raw_message_matcher.cc
@@ -38,6 +38,7 @@ namespace transport_manager_test {
RawMessageMatcher::RawMessageMatcher(RawMessagePtr ptr) : ptr_(ptr) {}
+// cppcheck-suppress unusedFunction
bool RawMessageMatcher::MatchAndExplain(const RawMessagePtr msg,
MatchResultListener* listener) const {
if (msg->data_size() != ptr_->data_size()) {
diff --git a/src/components/transport_manager/test/websocket_sample_client/websocket_sample_client.cc b/src/components/transport_manager/test/websocket_sample_client/websocket_sample_client.cc
index 88525ad29d..6c2ff12bfd 100644
--- a/src/components/transport_manager/test/websocket_sample_client/websocket_sample_client.cc
+++ b/src/components/transport_manager/test/websocket_sample_client/websocket_sample_client.cc
@@ -105,7 +105,6 @@ bool WSSampleClient<WS>::Connect(tcp::resolver::results_type& results) {
boost::system::error_code ec;
boost::asio::connect(ws_->next_layer(), results.begin(), results.end(), ec);
if (ec) {
- std::string str_err = "ErrorMessage: " + ec.message();
return false;
}
return true;
@@ -116,7 +115,6 @@ bool WSSampleClient<WSS>::Connect(tcp::resolver::results_type& results) {
boost::system::error_code ec;
boost::asio::connect(ws_->lowest_layer(), results.begin(), results.end(), ec);
if (ec) {
- std::string str_err = "ErrorMessage: " + ec.message();
return false;
}
return true;
@@ -128,7 +126,6 @@ bool WSSampleClient<WS>::Handshake(const std::string& host,
boost::system::error_code ec;
ws_->handshake(host, target, ec);
if (ec) {
- std::string str_err = "ErrorMessage: " + ec.message();
return false;
}
return true;
@@ -156,7 +153,6 @@ bool WSSampleClient<WSS>::Handshake(const std::string& host,
ws_->handshake(host, target, ec);
if (ec) {
- std::string str_err = "ErrorMessage: " + ec.message();
return false;
}
diff --git a/src/components/utils/src/date_time.cc b/src/components/utils/src/date_time.cc
index cea35a977e..389f973837 100644
--- a/src/components/utils/src/date_time.cc
+++ b/src/components/utils/src/date_time.cc
@@ -46,9 +46,7 @@ namespace date_time {
TimeDuration getCurrentTime() {
return bpt::microsec_clock::local_time() - bpt::from_time_t(0);
}
-TimeDuration TimeDurationZero() {
- return TimeDuration(0, 0, 0, 0);
-}
+
int64_t getSecs(const TimeDuration& t) {
return t.total_seconds();
}
@@ -61,13 +59,22 @@ int64_t getuSecs(const TimeDuration& t) {
return t.total_microseconds();
}
+#ifdef BUILD_TESTS
+// cppcheck-suppress unusedFunction //Used in unit tests
+TimeDuration TimeDurationZero() {
+ return TimeDuration(0, 0, 0, 0);
+}
+
+// cppcheck-suppress unusedFunction //Used in unit tests
int64_t get_just_mSecs(const TimeDuration& t) {
return t.total_milliseconds() % MILLISECONDS_IN_SECOND;
}
+// cppcheck-suppress unusedFunction //Used in unit tests
int64_t get_just_uSecs(const TimeDuration& t) {
return t.total_microseconds() % MICROSECONDS_IN_SECOND;
}
+#endif // BUILD_TESTS
int64_t calculateTimeSpan(const TimeDuration& sinceTime) {
return calculateTimeDiff(getCurrentTime(), sinceTime);
diff --git a/src/components/utils/src/file_system.cc b/src/components/utils/src/file_system.cc
index e5c98183ac..5985475983 100644
--- a/src/components/utils/src/file_system.cc
+++ b/src/components/utils/src/file_system.cc
@@ -56,8 +56,7 @@ using boost::system::error_code;
uint64_t file_system::GetAvailableDiskSpace(const std::string& path) {
SDL_LOG_AUTO_TRACE();
error_code ec;
- fs::space_info si = {0, 0, 0};
- si = fs::space(path, ec);
+ fs::space_info si = fs::space(path, ec);
if (ec) {
// If something went wrong, assume no free space
@@ -466,11 +465,10 @@ bool file_system::ReadFile(const std::string& name, std::string& result) {
const std::string file_system::ConvertPathForURL(const std::string& path) {
SDL_LOG_AUTO_TRACE();
const std::string reserved_symbols = "!#$&'()*+,:;=?@[] ";
- size_t pos = std::string::npos;
std::string converted_path;
for (const auto symbol : path) {
- pos = reserved_symbols.find_first_of(symbol);
+ size_t pos = reserved_symbols.find_first_of(symbol);
if (pos != std::string::npos) {
const size_t size = 100;
char percent_value[size];