diff options
Diffstat (limited to 'src/components/application_manager/include/application_manager/event_engine/event_observer.h')
-rw-r--r-- | src/components/application_manager/include/application_manager/event_engine/event_observer.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/components/application_manager/include/application_manager/event_engine/event_observer.h b/src/components/application_manager/include/application_manager/event_engine/event_observer.h index 1f4eccaf46..0ebf90133e 100644 --- a/src/components/application_manager/include/application_manager/event_engine/event_observer.h +++ b/src/components/application_manager/include/application_manager/event_engine/event_observer.h @@ -70,9 +70,23 @@ class EventObserver { * * @param event The received event */ - virtual void on_event(const Event& event) = 0; + virtual void HandleOnEvent(const Event& event) = 0; - virtual void on_event(const MobileEvent& event); + virtual void HandleOnEvent(const MobileEvent& event); + + /** + * @brief Increments reference count to avoid observer destruction while + * event dispatcher keeping pointer to that observer + * @return true if request reference was incremented, otherwise returns false + */ + virtual bool IncrementReferenceCount() const; + + /** + * @brief Decrements reference count to allow observer be safely destroyed + * as event dispatcher does not keep any pointers to it + * @return true if request reference was decremented, otherwise returns false + */ + virtual bool DecrementReferenceCount() const; protected: /* |