10 assert(listeners.empty());
15 return contains(listeners, listener);
20 assert(!isRegistered(&listener));
21 listeners.push_back(&listener);
38 listenersCopy = listeners;
39 for (
auto& l : listenersCopy) {
40 if (isRegistered(l)) {
43 l->signalMSXEvent(event, time);
void registerEventListener(MSXEventListener &listener)
Registers a given object to receive certain events.
void distributeEvent(const Event &event, EmuTime::param time)
Deliver the event to all registered listeners.
void unregisterEventListener(MSXEventListener &listener)
Unregisters a previously registered event listener.
This file implemented 3 utility functions:
void move_pop_back(VECTOR &v, typename VECTOR::iterator it)
Erase the pointed to element from the given vector.
auto rfind_unguarded(RANGE &range, const VAL &val, Proj proj={})
Similar to the find(_if)_unguarded functions above, but searches from the back to front.
constexpr bool contains(ITER first, ITER last, const VAL &val)
Check if a range contains a given value, using linear search.