25 #ifndef __I6ENGINE_CORE_MESSAGINGCONTROLLER_H__
26 #define __I6ENGINE_CORE_MESSAGINGCONTROLLER_H__
28 #include <condition_variable>
78 class EngineCoreController;
79 class MessageSubscriber;
104 void registerMessageType(uint16_t messageType,
MessageSubscriber * objMessageSubscriber);
111 void unregisterMessageType(uint16_t messageType,
MessageSubscriber * objMessageSubscriber);
128 void deliverMessages();
134 void deliverMessageToSubscribers(
const Message::Ptr & msg)
const;
139 std::map<uint16_t, std::vector<MessageSubscriber *>> _objMessageTypeDictionary;
144 mutable std::mutex _dictionaryMutex;
151 boost::thread * _deliverThread;
153 std::condition_variable _condVar;
154 std::mutex _condMutex;
boost::shared_ptr< Message > Ptr
Interface for every class that wants to subscribe to the messaging system.
Central controller for messaging between subsystems and subsystems of different clients.