44 std::map<MtEvent::Type, Dest>
m_dest{};
51 std::map<MtEvent::Type, Dest>::iterator i =
m_dest.find(e->
getType());
53 std::list<FuncSpec> &funcs = i->second.funcs;
55 (*(func.f))(e, func.d);
62 std::map<MtEvent::Type, Dest>::iterator i =
m_dest.find(type);
64 i->second.funcs.emplace_back(f, data);
67 dest.
funcs.emplace_back(f, data);
73 auto i =
m_dest.find(type);
75 std::list<FuncSpec> &funcs = i->second.funcs;
76 for (
auto j = funcs.begin(); j != funcs.end(); ) {
77 bool remove = (j->f == f && (!data || j->d == data));
static void remove(TestMap &map, size_t offset, size_t count)
Definition: benchmark_mapmodify.cpp:47
Definition: event_manager.h:27
~EventManager() override=default
static void receiverReceive(MtEvent *e, void *data)
Definition: event_manager.h:28
void reg(MtEvent::Type type, event_receive_func f, void *data) override
Definition: event_manager.h:60
std::map< MtEvent::Type, Dest > m_dest
Definition: event_manager.h:44
void put(MtEvent *e) override
Definition: event_manager.h:49
void dereg(MtEvent::Type type, event_receive_func f, void *data) override
Definition: event_manager.h:71
virtual void onEvent(MtEvent *e)=0
Type
Definition: mtevent.h:28
virtual Type getType() const =0
void(* event_receive_func)(MtEvent *e, void *data)
Definition: mtevent.h:61
Definition: event_manager.h:41
std::list< FuncSpec > funcs
Definition: event_manager.h:42
Definition: event_manager.h:34
event_receive_func f
Definition: event_manager.h:35
FuncSpec(event_receive_func f, void *d)
Definition: event_manager.h:37
void * d
Definition: event_manager.h:36