HMI Message Handler Component
authorJustin Dickow <jjdickow@gmail.com>
Tue, 15 Jul 2014 15:42:22 +0000 (11:42 -0400)
committerJustin Dickow <jjdickow@gmail.com>
Tue, 15 Jul 2014 15:42:22 +0000 (11:42 -0400)
Signed-off-by: Justin Dickow <jjdickow@gmail.com>
src/components/hmi_message_handler/CMakeLists.txt
src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h
src/components/hmi_message_handler/include/hmi_message_handler/messagebroker_adapter.h
src/components/hmi_message_handler/src/dbus_message_adapter.cc
src/components/hmi_message_handler/src/hmi_message_handler_impl.cc
src/components/hmi_message_handler/src/messagebroker_adapter.cc
src/components/hmi_message_handler/src/mqueue_adapter.cc

index 186b0c9..eff2b3f 100644 (file)
@@ -31,9 +31,12 @@ set (SOURCES
 
 set (LIBRARIES
     Utils
-    log4cxx
     ${DBUS_ADAPTER}
 )
 
 add_library("HMIMessageHandler" ${SOURCES})
-target_link_libraries ("HMIMessageHandler" ${LIBRARIES})
+target_link_libraries("HMIMessageHandler" ${LIBRARIES})
+
+if(ENABLE_LOG)
+  target_link_libraries("HMIMessageHandler" log4cxx)
+endif()
index f6839aa..69ed949 100644 (file)
@@ -113,12 +113,7 @@ class HMIMessageHandlerImpl
   // Thread that pumps messages being passed to hmi.
   impl::ToHmiQueue messages_to_hmi_;
 
-#ifdef ENABLE_LOG
-  static log4cxx::LoggerPtr logger_;
-#endif // ENABLE_LOG
-
   DISALLOW_COPY_AND_ASSIGN(HMIMessageHandlerImpl);
-
   FRIEND_BASE_SINGLETON_CLASS(HMIMessageHandlerImpl);
 };
 }  // namespace hmi_message_handler
index d91963c..df344c8 100644 (file)
@@ -37,7 +37,6 @@
 
 #include "mb_controller.hpp"
 #include "hmi_message_handler/hmi_message_adapter.h"
-#include "utils/logger.h"
 #include "utils/threads/thread_validator.h"
 
 namespace hmi_message_handler {
@@ -82,9 +81,6 @@ class MessageBrokerAdapter : public HMIMessageAdapter,
   static const std::string ADDRESS;
   static const uint16_t PORT;
 
-#ifdef ENABLE_LOG
-  static log4cxx::LoggerPtr logger_;
-#endif // ENABLE_LOG
   DISALLOW_COPY_AND_ASSIGN(MessageBrokerAdapter);
 };
 }  //  namespace hmi_message_handler
index 62d9f86..b832bf8 100644 (file)
@@ -31,7 +31,8 @@
 */
 
 #include "hmi_message_handler/dbus_message_adapter.h"
-
+#include <sstream>
+#include "utils/logger.h"
 #include "formatters/CSmartFactory.hpp"
 
 namespace smart_objects = NsSmartDeviceLink::NsSmartObjects;
@@ -39,6 +40,8 @@ namespace sos = NsSmartDeviceLink::NsJSONHandler::strings;
 
 namespace hmi_message_handler {
 
+CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler")
+
 const std::string DBusMessageAdapter::SDL_SERVICE_NAME = "com.ford.sdl.core";
 const std::string DBusMessageAdapter::SDL_OBJECT_PATH  = "/";
 const std::string DBusMessageAdapter::HMI_SERVICE_NAME = "com.ford.sdl.hmi";
index 2062b21..87563ad 100644 (file)
 
 #include "hmi_message_handler/hmi_message_handler_impl.h"
 #include "config_profile/profile.h"
+#include "utils/logger.h"
 
 namespace hmi_message_handler {
 
-#ifdef ENABLE_LOG
-log4cxx::LoggerPtr HMIMessageHandlerImpl::logger_ = log4cxx::LoggerPtr(
-    log4cxx::Logger::getLogger("HMIMessageHandler"));
-#endif // ENABLE_LOG
+CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler")
 
 HMIMessageHandlerImpl::HMIMessageHandlerImpl()
     : observer_(NULL),
index 841ee15..0fbbf4c 100644 (file)
 
 #include "hmi_message_handler/messagebroker_adapter.h"
 #include "config_profile/profile.h"
+#include "utils/logger.h"
 
 namespace hmi_message_handler {
 
-typedef NsMessageBroker::CMessageBrokerController MessageBrokerController;
+CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler")
 
-#ifdef ENABLE_LOG
-log4cxx::LoggerPtr MessageBrokerAdapter::logger_ = log4cxx::LoggerPtr(
-    log4cxx::Logger::getLogger("HMIMessageHandler"));
-#endif // ENABLE_LOG
+typedef NsMessageBroker::CMessageBrokerController MessageBrokerController;
 
 MessageBrokerAdapter::MessageBrokerAdapter(HMIMessageHandler* handler_param,
-                                           const std::string& server_address,
-                                           uint16_t port)
-    : MessageBrokerController(server_address, port, "SDL"),
-      HMIMessageAdapter(handler_param) {
+    const std::string& server_address,
+    uint16_t port)
+  : MessageBrokerController(server_address, port, "SDL"),
+    HMIMessageAdapter(handler_param) {
   LOG4CXX_INFO(logger_, "Created MessageBrokerAdapter");
 }
 
@@ -56,7 +54,7 @@ MessageBrokerAdapter::~MessageBrokerAdapter() {
 }
 
 void MessageBrokerAdapter::SendMessageToHMI(
-     hmi_message_handler::MessageSharedPointer message) {
+  hmi_message_handler::MessageSharedPointer message) {
   LOG4CXX_INFO(logger_, "MessageBrokerAdapter::sendMessageToHMI");
   /*if (!message) {
    // TODO(PV): LOG
@@ -74,7 +72,7 @@ void MessageBrokerAdapter::SendMessageToHMI(
 }
 
 void MessageBrokerAdapter::processResponse(std::string method,
-                                           Json::Value& root) {
+    Json::Value& root) {
   LOG4CXX_INFO(logger_, "MessageBrokerAdapter::processResponse");
   ProcessRecievedFromMB(root);
 }
@@ -104,14 +102,12 @@ void MessageBrokerAdapter::SubscribeTo() {
   MessageBrokerController::subscribeTo("UI.OnTouchEvent");
   MessageBrokerController::subscribeTo("UI.OnResetTimeout");
   MessageBrokerController::subscribeTo("BasicCommunication.OnAppDeactivated");
-  MessageBrokerController::subscribeTo(
-      "BasicCommunication.OnStartDeviceDiscovery");
+  MessageBrokerController::subscribeTo("BasicCommunication.OnStartDeviceDiscovery");
   MessageBrokerController::subscribeTo("BasicCommunication.OnUpdateDeviceList");
   MessageBrokerController::subscribeTo("BasicCommunication.OnFindApplications");
   MessageBrokerController::subscribeTo("BasicCommunication.OnAppActivated");
   MessageBrokerController::subscribeTo("BasicCommunication.OnExitApplication");
-  MessageBrokerController::subscribeTo(
-      "BasicCommunication.OnExitAllApplications");
+  MessageBrokerController::subscribeTo("BasicCommunication.OnExitAllApplications");
   MessageBrokerController::subscribeTo("BasicCommunication.OnDeviceChosen");
   MessageBrokerController::subscribeTo("UI.OnLanguageChange");
   MessageBrokerController::subscribeTo("VR.OnLanguageChange");
@@ -127,8 +123,11 @@ void MessageBrokerAdapter::SubscribeTo() {
   MessageBrokerController::subscribeTo("BasicCommunication.OnSystemInfoChanged");
   MessageBrokerController::subscribeTo("SDL.OnAppPermissionConsent");
   MessageBrokerController::subscribeTo("SDL.OnAllowSDLFunctionality");
+  MessageBrokerController::subscribeTo("SDL.OnReceivedPolicyUpdate");
   MessageBrokerController::subscribeTo("SDL.OnSystemError");
   MessageBrokerController::subscribeTo("SDL.AddStatisticsInfo");
+  MessageBrokerController::subscribeTo("SDL.OnDeviceStateChanged");
+  MessageBrokerController::subscribeTo("SDL.OnPolicyUpdate");
 
   LOG4CXX_INFO(logger_, "Subscribed to notifications.");
 }
@@ -155,19 +154,19 @@ void MessageBrokerAdapter::ProcessRecievedFromMB(Json::Value& root) {
     return;
   }
 
-  if (!handler()) {
-    // WARNING
-    return;
-  }
-
   // Messages from HMI (sent through message broker) have no priority so far
   // assign default priority
   hmi_message_handler::MessageSharedPointer message = hmi_message_handler::MessageSharedPointer(new application_manager::Message(
-      protocol_handler::MessagePriority::kDefault));
+        protocol_handler::MessagePriority::kDefault));
   // message->set_message_type()
   message->set_json_message(message_string);
   message->set_protocol_version(application_manager::ProtocolVersion::kHMI);
 
+  if (!handler()) {
+    // WARNING
+    return;
+  }
+
   handler()->OnMessageReceived(message);
   LOG4CXX_INFO(logger_, "Successfully sent to observer");
 }
index d57ebfa..3e414c2 100644 (file)
@@ -32,6 +32,7 @@
 
 #include "hmi_message_handler/mqueue_adapter.h"
 #include "hmi_message_handler/hmi_message_handler.h"
+#include "utils/logger.h"
 
 namespace hmi_message_handler {
 
@@ -40,8 +41,7 @@ const int kMqueueMessageSize = 65536;
 const char* kSdlToHmiQueue = "/sdl_to_hmi";
 const char* kHmiToSdlQueue = "/hmi_to_sdl";
 
-log4cxx::LoggerPtr logger =
-    log4cxx::LoggerPtr(log4cxx::Logger::getLogger("HMIMessageHandler"));
+CREATE_LOGGERPTR_GLOBAL(logger_, "HMIMessageHandler")
 
 class ReceiverThreadDelegate : public threads::ThreadDelegate {
  public:
@@ -57,11 +57,11 @@ class ReceiverThreadDelegate : public threads::ThreadDelegate {
       const ssize_t size =
           mq_receive(mqueue_descriptor_, buffer, kMqueueMessageSize, NULL);
       if (-1 == size) {
-        LOG4CXX_ERROR(logger, "Message queue receive failed, error " << errno);
+        LOG4CXX_ERROR(logger_, "Message queue receive failed, error " << errno);
         continue;
       }
       const std::string message_string(buffer, buffer + size);
-      LOG4CXX_INFO(logger, "Message: " << message_string);
+      LOG4CXX_INFO(logger_, "Message: " << message_string);
       MessageSharedPointer message(new application_manager::Message(
           protocol_handler::MessagePriority::kDefault));
       message->set_json_message(message_string);
@@ -85,14 +85,14 @@ MqueueAdapter::MqueueAdapter(HMIMessageHandler* hmi_message_handler)
   sdl_to_hmi_mqueue_ =
       mq_open(kSdlToHmiQueue, O_CREAT | O_RDWR, S_IRWXU, &mq_attributes);
   if (-1 == sdl_to_hmi_mqueue_) {
-    LOG4CXX_ERROR(logger, "Could not open message queue "
+    LOG4CXX_ERROR(logger_, "Could not open message queue "
                               << kSdlToHmiQueue << ", error " << errno);
     return;
   }
   hmi_to_sdl_mqueue_ =
       mq_open(kHmiToSdlQueue, O_CREAT | O_RDWR, S_IRWXU, &mq_attributes);
   if (-1 == hmi_to_sdl_mqueue_) {
-    LOG4CXX_ERROR(logger, "Could not open message queue "
+    LOG4CXX_ERROR(logger_, "Could not open message queue "
                               << kHmiToSdlQueue << ", error " << errno);
     return;
   }
@@ -112,24 +112,24 @@ MqueueAdapter::~MqueueAdapter() {
 }
 
 void MqueueAdapter::SendMessageToHMI(const MessageSharedPointer message) {
-  LOG4CXX_TRACE_ENTER(logger);
+  LOG4CXX_TRACE_ENTER(logger_);
 
   if (-1 == sdl_to_hmi_mqueue_) {
-    LOG4CXX_ERROR(logger, "Message queue is not opened");
+    LOG4CXX_ERROR(logger_, "Message queue is not opened");
     return;
   }
   const std::string& json = message->json_message();
   if (json.size() > kMqueueMessageSize) {
-    LOG4CXX_ERROR(logger, "Message size " << json.size() << " is too big");
+    LOG4CXX_ERROR(logger_, "Message size " << json.size() << " is too big");
     return;
   }
   const int rc = mq_send(sdl_to_hmi_mqueue_, json.c_str(), json.size(), 0);
   if (0 != rc) {
-    LOG4CXX_ERROR(logger, "Could not send message, error " << errno);
+    LOG4CXX_ERROR(logger_, "Could not send message, error " << errno);
     return;
   }
 
-  LOG4CXX_TRACE_EXIT(logger);
+  LOG4CXX_TRACE_EXIT(logger_);
 }
 
 void MqueueAdapter::SubscribeTo() {