|
TracktionEngine
|
Manages adding and removing listeners in an RAII way so you don't forget to unregister a listener. More...
#include <tracktion_SafeScopedListener.h>
Public Member Functions | |
| SafeScopedListener ()=default | |
| Creates an empty ScopedListener. | |
| SafeScopedListener (SafeScopedListener &&o) | |
| Move-constructor. | |
| SafeScopedListener & | operator= (SafeScopedListener &&o) |
| Move-assignment. | |
| template<typename BroadcasterType , typename ListenerType > requires WeakReferenceable<BroadcasterType> | |
| SafeScopedListener (BroadcasterType b, ListenerType &l) | |
| Creates a ScopedListener which makes ListenerType listen to BroadcasterType. | |
| template<typename BroadcasterType , typename ListenerType > requires WeakReferenceable<BroadcasterType> | |
| void | reset (BroadcasterType b, ListenerType &l) |
| Unregisters any previous listener and registers the new one. | |
| void | reset () |
| Unregisters the listener. | |
| SafeScopedListener (const SafeScopedListener &)=delete | |
| Non-copyable. | |
| SafeScopedListener & | operator= (const SafeScopedListener &)=delete |
| Non-copyable. | |
Manages adding and removing listeners in an RAII way so you don't forget to unregister a listener.
This is similar to a ScopedListener except that BroadcasterType is expected to be some kind of safe-pointer that is boolean checkable. This way, you can't forget to remove a registered listener and if the broadcaster gets deleted, this won't attempt to unregister itself and thus avoids a dangling reference.
The BroadcasterType must have the following functions: BroadcasterType::addListener (ListenerType*); BroadcasterType::removeListener (ListenerType*);
|
default |
Creates an empty ScopedListener.
| tracktion::engine::SafeScopedListener::SafeScopedListener | ( | SafeScopedListener && | o | ) |
Move-constructor.
| tracktion::engine::SafeScopedListener::SafeScopedListener | ( | BroadcasterType | b, |
| ListenerType & | l | ||
| ) |
Creates a ScopedListener which makes ListenerType listen to BroadcasterType.
References reset().
|
delete |
Non-copyable.
| SafeScopedListener & tracktion::engine::SafeScopedListener::operator= | ( | SafeScopedListener && | o | ) |
Move-assignment.
| void tracktion::engine::SafeScopedListener::reset | ( | BroadcasterType | b, |
| ListenerType & | l | ||
| ) |
Unregisters any previous listener and registers the new one.
References reset().
| void tracktion::engine::SafeScopedListener::reset | ( | ) |
Unregisters the listener.
Referenced by reset(), and SafeScopedListener().
|
delete |
Non-copyable.