mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-07-29 09:39:12 -04:00
Hide implementation of MessageHandlerMap.
This commit is contained in:
parent
2aa8ae0d1f
commit
a7226820d0
9 changed files with 95 additions and 78 deletions
|
@ -246,12 +246,19 @@ class MessageHandlerMap {
|
|||
public:
|
||||
using MessageHandler = std::function<void(const Message* const p)>;
|
||||
|
||||
MessageHandler& operator[](Message::ID n) {
|
||||
return map_[toUType(n)];
|
||||
void register_handler(const Message::ID id, MessageHandler&& handler) {
|
||||
map_[toUType(id)] = std::move(handler);
|
||||
}
|
||||
|
||||
const MessageHandler& operator[](Message::ID n) const {
|
||||
return map_[toUType(n)];
|
||||
void unregister_handler(const Message::ID id) {
|
||||
map_[toUType(id)] = nullptr;
|
||||
}
|
||||
|
||||
void send(const Message* const message) {
|
||||
auto& fn = map_[toUType(message->id)];
|
||||
if( fn ) {
|
||||
fn(message);
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue