carb::eventdispatcher::ObserverGuard
Defined in carb/eventdispatcher/EventDispatcherTypes.h
-
class ObserverGuard
Structure to manage the lifetime of an observer. Similar to
std::unique_ptr.Public Functions
-
constexpr ObserverGuard() noexcept
Default constructor.
Constructs an empty
ObserverGuard.
-
explicit constexpr ObserverGuard(Observer o) noexcept
Constructor that accepts an Observer handle.
- Parameters
o – The Observer to manage.
-
ObserverGuard(ObserverGuard &&other) noexcept
Move constructor.
Moves the Observer managed by
otherto*thisand leavesotherempty.- Parameters
other – The other
ObserverGuard.
-
~ObserverGuard() noexcept
Destructor.
-
ObserverGuard &operator=(ObserverGuard &&other) noexcept
Move-assign operator.
Moves the Observer managed by
otherto*this.- Parameters
other – The other
ObserverGuard.
-
Observer release() noexcept
Releases the managed Observer to the caller and leaves
*thisempty.Note
This does not stop the managed Observer.
- Returns
The Observer previously managed by
*this.
-
void reset(Observer o = kInvalidObserver) noexcept
Stops any currently managed observer (as via IEventDispatcher::stopObserving()) and takes ownership of the given Observer.
- Parameters
o – The new Observer to manage, or kInvalidObserver to remain empty.
-
void swap(ObserverGuard &o) noexcept
Exchanges state with another
ObserverGuard.- Parameters
o – The other
ObserverGuard.
-
constexpr Observer get() const noexcept
Returns the managed Observer while maintaining management of it.
- Returns
The managed Observer.
-
explicit operator bool() const noexcept
Validation test.
- Returns
trueif*thisis non-empty (manages a valid observer);falseotherwise.
-
constexpr ObserverGuard() noexcept