Un-template MessageHandlerRegistration, move code to .cpp.

This commit is contained in:
Jared Boone 2016-05-12 15:24:08 -07:00
parent 7d4dd03418
commit d64344a84f
2 changed files with 16 additions and 10 deletions

View File

@ -257,3 +257,15 @@ void EventDispatcher::init_message_queues() {
shared_memory.application_queue_data, SharedMemory::application_queue_k
);
}
MessageHandlerRegistration::MessageHandlerRegistration(
const Message::ID message_id,
MessageHandlerMap::MessageHandler&& callback
) : message_id { message_id }
{
EventDispatcher::message_map().register_handler(message_id, std::move(callback));
}
MessageHandlerRegistration::~MessageHandlerRegistration() {
EventDispatcher::message_map().unregister_handler(message_id);
}

View File

@ -119,19 +119,13 @@ private:
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);
}
MessageHandlerMap::MessageHandler&& callback
);
~MessageHandlerRegistration();
private:
const Message::ID message_id;
};