![]() |
aGrUM 3.0.0
a C++ library for (probabilistic) graphical models
|
Variadic template signaler for any number of arguments. More...
#include <agrum/base/core/signal/signaler.h>
Public Member Functions | |
| Signaler () | |
| Default constructor. | |
| Signaler (const Signaler &other) | |
| Copy constructor. | |
| ~Signaler () override | |
| Destructor. | |
| template<class TargetClass> | |
| void | attach (TargetClass *target, void(TargetClass::*action)(const void *, Args...)) |
| Attach a listener with a member function callback. | |
| void | operator() (const void *src, Args... args) |
| Emit the signal, notifying all attached listeners. | |
| bool | hasListener () override |
| void | detach (Listener *target) |
| Detach a specific listener from this signaler. | |
Protected Types | |
| using | ConnectorList |
Protected Member Functions | |
| void | detachFromTarget (Listener *target) override |
| Called by Listener to detach when the listener is destroyed. | |
| void | duplicateTarget (const Listener *oldTarget, Listener *newTarget) override |
| Called by Listener copy constructor to duplicate connections. | |
Protected Attributes | |
| ConnectorList | _connectors_ |
Variadic template signaler for any number of arguments.
This class implements the signal/slot pattern with C++20 variadic templates. It can be used with any number of arguments (0 to N).
| Args | The types of arguments passed when the signal is emitted. |
Definition at line 236 of file signaler.h.
|
protectedinherited |
Definition at line 165 of file signaler.h.
|
inline |
Default constructor.
Definition at line 239 of file signaler.h.
Referenced by Signaler().
| gum::Signaler< Args >::Signaler | ( | const Signaler< Args > & | other | ) |
Copy constructor.
Definition at line 158 of file signaler_tpl.h.
References gum::__sig__::BasicSignaler< Args... >::BasicSignaler(), and Signaler().
|
inlineoverride |
| void gum::Signaler< Args >::attach | ( | TargetClass * | target, |
| void(TargetClass::* | action )(const void *, Args...) ) |
Attach a listener with a member function callback.
| TargetClass | The class type of the listener (must derive from Listener). |
| target | Pointer to the listener object. |
| action | Pointer to the member function to call on signal emission. |
Definition at line 164 of file signaler_tpl.h.
References gum::__sig__::BasicSignaler< Args... >::_connectors_.
|
inherited |
Detach a specific listener from this signaler.
Definition at line 181 of file signaler_tpl.h.
|
overrideprotectedinherited |
Called by Listener to detach when the listener is destroyed.
Definition at line 187 of file signaler_tpl.h.
|
overrideprotectedinherited |
Called by Listener copy constructor to duplicate connections.
Definition at line 190 of file signaler_tpl.h.
|
overrideinherited |
Definition at line 178 of file signaler_tpl.h.
| void gum::Signaler< Args >::operator() | ( | const void * | src, |
| Args... | args ) |
Emit the signal, notifying all attached listeners.
| src | Pointer to the source object (typically this of the emitter). |
| args | The arguments to pass to each listener's callback. |
Definition at line 172 of file signaler_tpl.h.
References gum::__sig__::BasicSignaler< Args... >::_connectors_.
|
protectedinherited |
Definition at line 192 of file signaler.h.
Referenced by gum::Signaler< Args >::attach(), and gum::Signaler< Args >::operator()().