summaryrefslogtreecommitdiff
path: root/src/components/hmi_message_handler/include/hmi_message_handler/hmi_message_handler_impl.h
diff options
context:
space:
mode:
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.h29
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