Wrap message handler registrations in class to subscribe/unsubscribe automatically.

This commit is contained in:
Jared Boone 2016-05-11 22:53:09 -07:00
parent e298e1ec5a
commit 7d4dd03418
18 changed files with 139 additions and 149 deletions

View file

@ -117,4 +117,23 @@ private:
void init_message_queues();
};
class MessageHandlerRegistration {
public:
template<typename Callback>
MessageHandlerRegistration(
const Message::ID message_id,
Callback callback
) : message_id { message_id }
{
EventDispatcher::message_map().register_handler(message_id, callback);
}
~MessageHandlerRegistration() {
EventDispatcher::message_map().unregister_handler(message_id);
}
private:
const Message::ID message_id;
};
#endif/*__EVENT_M0_H__*/