11#include <spdlog/spdlog.h>
27 using Messages = BC::MessageType;
28 using State = BC::State;
43 f_{std::forward<F>(f)} {
44 this->
subscribe(bc, [&](Messages message,
const BC::State& state) { this->
updateImpl(message, state); });
48 if (message_ == message)
54 std::function<void(
const State&)> f_;
57template <
typename BC,
typename MT,
typename F>
Enums for observer messages.
Implementation of the observer design pattern with broadcasters.
Definition: assemblermanipulatorbuildingblocks.hh:22
GenericListener(BC &, MT, F &&) -> GenericListener< BC >
GenericListener class for observing specific messages. This class template implements an listener for...
Definition: genericlistener.hh:26
GenericListener(BC &bc, Messages message, F &&f)
Constructor for GenericListener.
Definition: genericlistener.hh:41
void updateImpl(Messages message, const State &state)
Definition: genericlistener.hh:47
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