24template <
typename... Args>
27 using F = std::function<void(Args...)>;
30 std::vector<std::weak_ptr<F>> listeners;
33 using Token = std::shared_ptr<F>;
45 auto sp = std::make_shared<F>(std::move(f));
46 listeners.push_back(sp);
58 for (
auto& w : listeners) {
59 if (
auto p = w.lock()) {
68 listeners.erase(std::remove_if(listeners.begin(), listeners.end(), [](
auto& p) { return p.expired(); }),
79template <
typename... Signatures>
84 using Broadcaster<Signatures>::unregisterListener...;
Definition: assemblermanipulatorbuildingblocks.hh:22
Definition: broadcaster.hh:17
void unregisterListener(Token &&t)
Definition: broadcaster.hh:51
std::shared_ptr< F > Token
Definition: broadcaster.hh:33
void notify(Args... args)
This calls all the registered functions.
Definition: broadcaster.hh:56
Token registerListener(F f)
This method is used to register a Listener function.
Definition: broadcaster.hh:44
Fuses together multiple function signatures that can be emitted by one broadcaster....
Definition: broadcaster.hh:81
Broadcaster< M > & station()
Definition: broadcaster.hh:89
const Broadcaster< M > & station() const
Definition: broadcaster.hh:95