diff options
Diffstat (limited to 'src/components/application_manager/src/hmi_capabilities_impl.cc')
-rw-r--r-- | src/components/application_manager/src/hmi_capabilities_impl.cc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/components/application_manager/src/hmi_capabilities_impl.cc b/src/components/application_manager/src/hmi_capabilities_impl.cc index 116732d13d..1390a3ae2c 100644 --- a/src/components/application_manager/src/hmi_capabilities_impl.cc +++ b/src/components/application_manager/src/hmi_capabilities_impl.cc @@ -131,6 +131,7 @@ HMICapabilitiesImpl::HMICapabilitiesImpl(ApplicationManager& app_mngr) HMICapabilitiesImpl::~HMICapabilitiesImpl() {} bool HMICapabilitiesImpl::VerifyImageType(const int32_t image_type) const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); auto capabilities = display_capabilities(); if (!capabilities) { return false; @@ -226,6 +227,7 @@ void HMICapabilitiesImpl::set_ui_supported_languages( const smart_objects::SmartObject& supported_languages) { auto new_value = std::make_shared<smart_objects::SmartObject>(supported_languages); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); ui_supported_languages_.swap(new_value); } @@ -233,6 +235,7 @@ void HMICapabilitiesImpl::set_tts_supported_languages( const smart_objects::SmartObject& supported_languages) { auto new_value = std::make_shared<smart_objects::SmartObject>(supported_languages); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); tts_supported_languages_.swap(new_value); } @@ -240,6 +243,7 @@ void HMICapabilitiesImpl::set_vr_supported_languages( const smart_objects::SmartObject& supported_languages) { auto new_value = std::make_shared<smart_objects::SmartObject>(supported_languages); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); vr_supported_languages_.swap(new_value); } @@ -250,12 +254,14 @@ void HMICapabilitiesImpl::set_display_capabilities( display_capabilities)) { auto new_value = std::make_shared<smart_objects::SmartObject>(display_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); display_capabilities_.swap(new_value); } } void HMICapabilitiesImpl::set_system_display_capabilities( const smart_objects::SmartObject& display_capabilities) { + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); system_display_capabilities_.reset( new smart_objects::SmartObject(display_capabilities)); } @@ -264,6 +270,7 @@ void HMICapabilitiesImpl::set_hmi_zone_capabilities( const smart_objects::SmartObject& hmi_zone_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>(hmi_zone_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); hmi_zone_capabilities_.swap(new_value); } @@ -271,6 +278,7 @@ void HMICapabilitiesImpl::set_soft_button_capabilities( const smart_objects::SmartObject& soft_button_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>(soft_button_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); soft_buttons_capabilities_.swap(new_value); } @@ -278,6 +286,7 @@ void HMICapabilitiesImpl::set_button_capabilities( const smart_objects::SmartObject& button_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>(button_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); button_capabilities_.swap(new_value); } @@ -285,6 +294,7 @@ void HMICapabilitiesImpl::set_vr_capabilities( const smart_objects::SmartObject& vr_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>(vr_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); vr_capabilities_.swap(new_value); } @@ -292,6 +302,7 @@ void HMICapabilitiesImpl::set_speech_capabilities( const smart_objects::SmartObject& speech_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>(speech_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); speech_capabilities_.swap(new_value); } @@ -299,6 +310,7 @@ void HMICapabilitiesImpl::set_audio_pass_thru_capabilities( const smart_objects::SmartObject& audio_pass_thru_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>( audio_pass_thru_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); audio_pass_thru_capabilities_.swap(new_value); } @@ -306,6 +318,7 @@ void HMICapabilitiesImpl::set_pcm_stream_capabilities( const smart_objects::SmartObject& pcm_stream_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>(pcm_stream_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); pcm_stream_capabilities_.swap(new_value); } @@ -313,12 +326,14 @@ void HMICapabilitiesImpl::set_preset_bank_capabilities( const smart_objects::SmartObject& preset_bank_capabilities) { auto new_value = std::make_shared<smart_objects::SmartObject>(preset_bank_capabilities); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); preset_bank_capabilities_.swap(new_value); } void HMICapabilitiesImpl::set_vehicle_type( const smart_objects::SmartObject& vehicle_type) { auto new_value = std::make_shared<smart_objects::SmartObject>(vehicle_type); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); vehicle_type_.swap(new_value); } @@ -326,6 +341,7 @@ void HMICapabilitiesImpl::set_prerecorded_speech( const smart_objects::SmartObject& prerecorded_speech) { auto new_value = std::make_shared<smart_objects::SmartObject>(prerecorded_speech); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); prerecorded_speech_.swap(new_value); } @@ -353,6 +369,7 @@ void HMICapabilitiesImpl::set_navigation_capability( const smart_objects::SmartObject& navigation_capability) { auto new_value = std::make_shared<smart_objects::SmartObject>(navigation_capability); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); navigation_capability_.swap(new_value); } @@ -360,6 +377,7 @@ void HMICapabilitiesImpl::set_phone_capability( const smart_objects::SmartObject& phone_capability) { auto new_value = std::make_shared<smart_objects::SmartObject>(phone_capability); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); phone_capability_.swap(new_value); } @@ -367,12 +385,14 @@ void HMICapabilitiesImpl::set_video_streaming_capability( const smart_objects::SmartObject& video_streaming_capability) { auto new_value = std::make_shared<smart_objects::SmartObject>(video_streaming_capability); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); video_streaming_capability_.swap(new_value); } void HMICapabilitiesImpl::set_rc_capability( const smart_objects::SmartObject& rc_capability) { auto new_value = std::make_shared<smart_objects::SmartObject>(rc_capability); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); rc_capability_.swap(new_value); } @@ -380,6 +400,7 @@ void HMICapabilitiesImpl::set_driver_distraction_capability( const smart_objects::SmartObject& driver_distraction_capability) { auto new_value = std::make_shared<smart_objects::SmartObject>( driver_distraction_capability); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); driver_distraction_capability_.swap(new_value); } @@ -387,6 +408,7 @@ void HMICapabilitiesImpl::set_seat_location_capability( const smart_objects::SmartObject& seat_location_capability) { auto new_value = std::make_shared<smart_objects::SmartObject>(seat_location_capability); + sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_); seat_location_capability_.swap(new_value); } @@ -430,79 +452,95 @@ bool HMICapabilitiesImpl::is_rc_cooperating() const { const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::ui_supported_languages() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return ui_supported_languages_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::vr_supported_languages() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return vr_supported_languages_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::tts_supported_languages() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return tts_supported_languages_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::display_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return display_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::system_display_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return system_display_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::hmi_zone_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return hmi_zone_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::soft_button_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return soft_buttons_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::button_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return button_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::speech_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return speech_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::vr_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return vr_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::audio_pass_thru_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return audio_pass_thru_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::pcm_stream_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return pcm_stream_capabilities_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::preset_bank_capabilities() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return preset_bank_capabilities_; } bool HMICapabilitiesImpl::attenuated_supported() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return attenuated_supported_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::vehicle_type() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return vehicle_type_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::prerecorded_speech() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return prerecorded_speech_; } @@ -528,31 +566,37 @@ bool HMICapabilitiesImpl::driver_distraction_supported() const { const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::navigation_capability() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return navigation_capability_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::phone_capability() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return phone_capability_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::video_streaming_capability() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return video_streaming_capability_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::rc_capability() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return rc_capability_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::driver_distraction_capability() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return driver_distraction_capability_; } const smart_objects::SmartObjectSPtr HMICapabilitiesImpl::seat_location_capability() const { + sync_primitives::AutoReadLock lock(hmi_capabilities_lock_); return seat_location_capability_; } |