summaryrefslogtreecommitdiff
path: root/src/components/hmi_message_handler/src/hmi_message_handler_impl.cc
diff options
context:
space:
mode:
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.cc58
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) {