diff options
Diffstat (limited to 'src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h')
-rw-r--r-- | src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h b/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h index d638f370d8..2f235aa968 100644 --- a/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h +++ b/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h @@ -36,12 +36,12 @@ #include <set> #include "hmi_message_handler/hmi_message_adapter.h" #include "hmi_message_handler/hmi_message_handler.h" +#include "hmi_message_handler/hmi_message_handler_settings.h" #include "utils/macro.h" #include "utils/message_queue.h" #include "utils/prioritized_queue.h" #include "utils/threads/message_loop_thread.h" #include "utils/threads/thread.h" -#include "utils/singleton.h" namespace hmi_message_handler { @@ -55,14 +55,16 @@ namespace impl { * when we have them. */ struct MessageFromHmi: public MessageSharedPointer { - MessageFromHmi(const MessageSharedPointer& message) + MessageFromHmi() {} + explicit MessageFromHmi(const MessageSharedPointer& message) : MessageSharedPointer(message) {} // PrioritizedQueue requres this method to decide which priority to assign size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } }; struct MessageToHmi: public MessageSharedPointer { - MessageToHmi(const MessageSharedPointer& message) + MessageToHmi() {} + explicit MessageToHmi(const MessageSharedPointer& message) : MessageSharedPointer(message) {} // PrioritizedQueue requres this method to decide which priority to assign size_t PriorityOrder() const { return (*this)->Priority().OrderingValue(); } @@ -80,9 +82,10 @@ class FromHMIThreadImpl; class HMIMessageHandlerImpl : public HMIMessageHandler, public impl::FromHmiQueue::Handler, - public impl::ToHmiQueue::Handler, - public utils::Singleton<HMIMessageHandlerImpl> { + public impl::ToHmiQueue::Handler { public: + explicit HMIMessageHandlerImpl(const HMIMessageHandlerSettings& settings); + ~HMIMessageHandlerImpl(); void OnMessageReceived(MessageSharedPointer message); void SendMessageToHMI(MessageSharedPointer message); @@ -91,10 +94,19 @@ class HMIMessageHandlerImpl void AddHMIMessageAdapter(HMIMessageAdapter* adapter); void RemoveHMIMessageAdapter(HMIMessageAdapter* adapter); - private: - HMIMessageHandlerImpl(); + virtual const HMIMessageHandlerSettings& get_settings() const OVERRIDE; + +#ifdef BUILD_TESTS + std::set<HMIMessageAdapter*> message_adapters() const { + return message_adapters_; + } + HMIMessageObserver* observer() const { + return observer_; + } +#endif // BUILD_TESTS + private: // threads::MessageLoopThread<*>::Handler implementations // CALLED ON messages_from_hmi_ THREAD! @@ -102,7 +114,7 @@ class HMIMessageHandlerImpl // CALLED ON messages_to_hmi_ THREAD! virtual void Handle(const impl::MessageToHmi message) OVERRIDE; private: - + const HMIMessageHandlerSettings& settings_; HMIMessageObserver* observer_; mutable sync_primitives::Lock observer_locker_; std::set<HMIMessageAdapter*> message_adapters_; @@ -115,7 +127,6 @@ class HMIMessageHandlerImpl impl::FromHmiQueue messages_from_hmi_; DISALLOW_COPY_AND_ASSIGN(HMIMessageHandlerImpl); - FRIEND_BASE_SINGLETON_CLASS(HMIMessageHandlerImpl); }; } // namespace hmi_message_handler |