30 #ifndef GUM_LISTENER_H 31 #define GUM_LISTENER_H 36 #include <agrum/agrum.h> 37 #include <agrum/tools/core/debug.h> 41 #ifndef DOXYGEN_SHOULD_SKIP_THIS 56 virtual ~ISignaler(){};
57 virtual void detachFromTarget(
Listener* target) = 0;
58 virtual void duplicateTarget(
const Listener* oldtarget,
Listener* newtarget) = 0;
59 virtual bool hasListener() = 0;
96 #define GUM_CONNECT(sender, signal, receiver, target) (sender).signal.attach(&(receiver), &target) 99 # include <agrum/tools/core/signal/listener_inl.h> void _detachSignal_(__sig__::ISignaler *sender)
Listener(const Listener &l)
Internal namespace for aGrUM signaler/listener components.
INLINE void emplace(Args &&... args)
void _attachSignal_(__sig__::ISignaler *sender)
std::vector< __sig__::ISignaler *> Senders_list
Alias for the list of signal senders.
Listener()
Class constructor.
Every class who would catch signal from signaler should derive from Listener.