class VectorAnimationManager: public Integration::Processor
{
public:
+ struct LifecycleObserver
+ {
+ virtual void VectorAnimationManagerDestroyed() = 0;
+ };
/**
* @brief Constructor.
/**
* @brief Destructor.
*/
- virtual ~VectorAnimationManager();
+ ~VectorAnimationManager() override;
+
+ /**
+ * Add a lifecycle observer
+ * @param[in] observer The object watching this one
+ */
+ void AddObserver( LifecycleObserver& observer );
+
+ /**
+ * Remove a lifecycle observer
+ * @param[in] observer The object watching this one
+ */
+ void RemoveObserver( LifecycleObserver& observer );
/**
* Get the vector animation thread.
private:
std::vector< CallbackBase* > mEventCallbacks;
+ std::vector<LifecycleObserver*> mLifecycleObservers;
std::unique_ptr< VectorAnimationThread > mVectorAnimationThread;
bool mProcessorRegistered;
};