24template <
typename MT,
typename S>
32 using Token = std::shared_ptr<Callback>;
44 auto sp = std::make_shared<Callback>(std::move(callback));
45 listeners.push_back(sp);
63 for (
auto& weakCb : listeners) {
64 if (
auto callback = weakCb.lock()) {
65 (*callback)(message, data);
71 std::vector<std::weak_ptr<Callback>> listeners;
75 std::remove_if(listeners.begin(), listeners.end(), [](
const auto& weakCb) { return weakCb.expired(); }),
Definition: assemblermanipulatorbuildingblocks.hh:22
Implements a Broadcaster for a given MessageType and BroadcasterState.
Definition: broadcaster.hh:26
void notify(MT message, const State &data)
This calls all the registered functions.
Definition: broadcaster.hh:61
std::function< void(MT, const State &)> Callback
Definition: broadcaster.hh:31
Token registerListener(Callback callback)
This method is used to register a Listener function.
Definition: broadcaster.hh:43
std::shared_ptr< Callback > Token
Definition: broadcaster.hh:32
MT MessageType
Definition: broadcaster.hh:28
S State
Definition: broadcaster.hh:29
void unregisterListener(Token token)
deregisters a specific function
Definition: broadcaster.hh:52