29 while (!m_subscribers.empty())
30 (*m_subscribers.begin())->observeEnd(*
this);
32 catch (
const std::exception& e)
40 m_subscribers.insert(o);
46 auto it = m_subscribers.find(o);
48 it != m_subscribers.end(),
49 "Ending subscription from an observer not subscribed to this object!");
50 m_subscribers.erase(it);
60 for (
auto& s : m_subscribers)
61 if (s) s->internal_on_event(e);
void internal_observer_end(CObserver *)
The basic event type for the observer-observable pattern in MRPT.
Inherit from this class to get notified about events from any CObservable object after subscribing to...
An event sent by any CObservable object (automatically) just before being destroyed and telling its o...
#define ASSERTMSG_(f, __ERROR_MSG)
Defines an assertion mechanism.
void internal_observer_begin(CObserver *)
void publishEvent(const mrptEvent &e) const
Called when you want this object to emit an event to all the observers currently subscribed to this o...
std::string exception_to_str(const std::exception &e)
Builds a nice textual representation of a nested exception, which if generated using MRPT macros (THR...