diff options
Diffstat (limited to 'src/components/hmi_message_handler/src/hmi_message_handler_impl.cc')
-rw-r--r-- | src/components/hmi_message_handler/src/hmi_message_handler_impl.cc | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc b/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc index 887d145617..4081facb4e 100644 --- a/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc +++ b/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc @@ -31,35 +31,33 @@ */ #include "hmi_message_handler/hmi_message_handler_impl.h" -#include "config_profile/profile.h" #include "utils/logger.h" namespace hmi_message_handler { CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler") -HMIMessageHandlerImpl::HMIMessageHandlerImpl() - : observer_(NULL), - messages_to_hmi_("HMH ToHMI", this, - threads::ThreadOptions( - profile::Profile::instance()->thread_min_stack_size())), - messages_from_hmi_("HMH FromHMI", this, - threads::ThreadOptions( - profile::Profile::instance()->thread_min_stack_size())) { +HMIMessageHandlerImpl::HMIMessageHandlerImpl( + const HMIMessageHandlerSettings& settings) + : settings_(settings) + , observer_(NULL) + , messages_to_hmi_("HMH ToHMI", this, + threads::ThreadOptions( + get_settings().thread_min_stack_size())) + , messages_from_hmi_("HMH FromHMI", this, + threads::ThreadOptions( + get_settings().thread_min_stack_size())){ } HMIMessageHandlerImpl::~HMIMessageHandlerImpl() { - LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::~HMIMessageHandlerImpl()"); - sync_primitives::AutoLock lock(observer_locker_); - observer_ = NULL; - if (!message_adapters_.empty()) { - LOG4CXX_WARN(logger_, "Not all HMIMessageAdapter have unsubscribed from" - " HMIMessageHandlerImpl"); - } + LOG4CXX_AUTO_TRACE(logger_); + messages_to_hmi_.Shutdown(); + messages_from_hmi_.Shutdown(); + set_message_observer(NULL); } void HMIMessageHandlerImpl::OnMessageReceived(MessageSharedPointer message) { - LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::OnMessageReceived()"); + LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock lock(observer_locker_); if (!observer_) { LOG4CXX_WARN(logger_, "No HMI message observer set!"); @@ -74,12 +72,13 @@ void HMIMessageHandlerImpl::SendMessageToHMI(MessageSharedPointer message) { } void HMIMessageHandlerImpl::set_message_observer(HMIMessageObserver* observer) { - LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::SetMessageObserver()"); + LOG4CXX_AUTO_TRACE(logger_); + sync_primitives::AutoLock lock(observer_locker_); observer_ = observer; } void HMIMessageHandlerImpl::OnErrorSending(MessageSharedPointer message) { - LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::OnErrorSending()"); + LOG4CXX_AUTO_TRACE(logger_); sync_primitives::AutoLock lock(observer_locker_); if (!observer_) { LOG4CXX_WARN(logger_, "No HMI message observer set!"); @@ -88,17 +87,28 @@ void HMIMessageHandlerImpl::OnErrorSending(MessageSharedPointer message) { observer_->OnErrorSending(message); } -void HMIMessageHandlerImpl::AddHMIMessageAdapter(HMIMessageAdapter* adapter) { - LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::AddHMIMessageAdapter()"); +void HMIMessageHandlerImpl::AddHMIMessageAdapter( + HMIMessageAdapter* adapter) { + LOG4CXX_AUTO_TRACE(logger_); + if (!adapter) { + LOG4CXX_WARN(logger_, "HMIMessageAdapter is not valid!"); + return; + } message_adapters_.insert(adapter); } void HMIMessageHandlerImpl::RemoveHMIMessageAdapter( HMIMessageAdapter* adapter) { - LOG4CXX_INFO(logger_, "HMIMessageHandlerImpl::RemoveHMIMessageAdapter()"); - if (adapter != NULL) { - message_adapters_.erase(adapter); + LOG4CXX_AUTO_TRACE(logger_); + if (!adapter) { + LOG4CXX_WARN(logger_, "HMIMessageAdapter is not valid!"); + return; } + message_adapters_.erase(adapter); +} + +const HMIMessageHandlerSettings& HMIMessageHandlerImpl::get_settings() const { + return settings_; } void HMIMessageHandlerImpl::Handle(const impl::MessageFromHmi message) { |