21 using TCPair = std::pair<PairElementToken, Callback>;
43 std::vector<TCPair> callbacks_;
55 std::find_if(callbacks_.begin(), callbacks_.end(), [&](
const TCPair & p) { return p.first.isPairedWith(t); });
56 if(it != callbacks_.end())
59 throw std::runtime_error(
"Element to unregister not found.");
64 for(
size_t i = 0; i < callbacks_.size();)
66 if(callbacks_[i].first.isPaired())
68 std::invoke(callbacks_[i].second);
73 callbacks_.erase(callbacks_.begin() + i);
Definition: CallbackManager.h:18
virtual ~CallbackManager()=default
PairElementTokenHandle registerCallback(std::function< void()> c)
Definition: CallbackManager.h:46
CallbackManager & operator=(const CallbackManager &)=delete
CallbackManager(const CallbackManager &)=delete
std::function< void()> Callback
Definition: CallbackManager.h:20
std::pair< PairElementToken, Callback > TCPair
Definition: CallbackManager.h:21
void unregisterCallback(const PairElementToken &t)
Definition: CallbackManager.h:52
CallbackManager()=default
void run()
Definition: CallbackManager.h:62
Definition: PairElementToken.h:19
Definition: PairElementToken.h:45
Definition: CallbackManager.h:12