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