30 using Token = std::shared_ptr<void>;
40 template <
typename Broadcaster>
44 tokens.push_back(token);
52 for (
auto& token : tokens) {
64 if (!tokens.empty()) {
65 tokens.back().reset();
74 auto it = std::ranges::find(tokens, token);
75 if (it != tokens.end()) {
82 std::vector<Token> tokens;
Definition: assemblermanipulatorbuildingblocks.hh:22
Implements a Broadcaster for a given MessageType and BroadcasterState.
Definition: broadcaster.hh:26
Token registerListener(Callback callback)
This method is used to register a Listener function.
Definition: broadcaster.hh:43
MT MessageType
Definition: broadcaster.hh:28
S State
Definition: broadcaster.hh:29
Implements a listener.
Definition: listener.hh:28
auto subscribe(Broadcaster &broadcaster, std::function< void(typename Broadcaster::MessageType, const typename Broadcaster::State &)> callback)
Function to subscribe to a broadcaster with a given function (either a lambda, std::function or funct...
Definition: listener.hh:41
void unSubscribe(const Token &token)
Unsubscribe from a specific token.
Definition: listener.hh:73
void unSubscribeAll()
Unsubscribe from all listeners. At the moment unsubscribing can't be done more granularly.
Definition: listener.hh:51
void unSubscribeLast()
Unsubscribe from the last subscribed listener.
Definition: listener.hh:63
std::shared_ptr< void > Token
Definition: listener.hh:30