class MessageHandler

Allows you to transparently pass messages between different systems.

Public

Constructors

MessageHandler

MessageHandler() = default

Methods

Send

void Send(MessageId message)

Sends a message to all subscribed listeners.

Listen

HMessage Listen(MessageId message, std::function<void ()> callback)

Subscribes a message listener for the specified message.

Provided callback will be triggered whenever that message gets sent.

Returns: A handle to the message subscription that you can use to unsubscribe from listening.

staticInstance

static T &Instance()

Returns a reference to the module instance.

Module has to have been started up first otherwise an exception will be thrown.

staticInstancePtr

static T *InstancePtr()

Returns a pointer to the module instance.

Module has to have been started up first otherwise an exception will be thrown.

staticShutDown

static void ShutDown()

Shuts down this module and frees any resources it is using.

staticIsStarted

static bool IsStarted()

Query if the module has been started.

Protected

Methods

~Module<T>

virtual ~Module<T>() = default

OnStartUp

virtual void OnStartUp()

Override if you want your module to be notified once it has been constructed and started.

OnShutDown

virtual void OnShutDown()

Override if you want your module to be notified just before it is deleted.

staticInstanceInternal

static T *&InstanceInternal()

Returns a singleton instance of this module.

staticIsDestroyed

static bool &IsDestroyed()

Checks has the Module been shut down.

staticIsStartedUp

static bool &IsStartedUp()

Checks has the Module been started up.

Private

Methods

Unsubscribe

void Unsubscribe(u32 handleId)

Fields

mMessageHandlers

Map<u32, Vector<MessageHandlerData>> mMessageHandlers

mHandlerIdToMessageMap

Map<u32, u32> mHandlerIdToMessageMap

mNextCallbackId

u32 mNextCallbackId