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.