X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fevents%2Factor-observer.h;h=31adc3480593cc5fd2b15fcd5de5bb4fd84397b3;hb=c1df908470fc3dd242fef202248e56009727bca4;hp=9742b1f4d3ab5b66307eea251795398a8e5e50e6;hpb=2ab55aa4b1e1ee6d28598cd0fa9b17174650eb73;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/events/actor-observer.h b/dali/internal/event/events/actor-observer.h index 9742b1f..31adc34 100644 --- a/dali/internal/event/events/actor-observer.h +++ b/dali/internal/event/events/actor-observer.h @@ -64,13 +64,41 @@ public: */ ~ActorObserver(); + // Movable + + /** + * Move constructor. + * + * @param[in] other The object to move the data from + * + * @note The other's actor is appropriately disconnected. + * @note Ownership of callback is passed onto this class. + */ + ActorObserver( ActorObserver&& other ); + + /** + * Move assignment operator. + * + * @param[in] other The object to move the data from + * + * @note The other's actor is appropriately disconnected. + * @note Ownership of callback is passed onto this class. + */ + ActorObserver& operator=( ActorObserver&& other ); + + // Not copyable + + ActorObserver( const ActorObserver& ) = delete; ///< Deleted copy constructor. + ActorObserver& operator=( const ActorObserver& ) = delete; ///< Deleted copy assignment operator. + // Methods /** * Return the stored Actor pointer. * @return The Actor pointer. + * @note Returns nullptr while the observed actor is not on the scene. */ - Actor* GetActor(); + Actor* GetActor() const; /** * Assignment operator. @@ -86,33 +114,26 @@ public: private: - // Undefined - ActorObserver( const ActorObserver& ); - ActorObserver& operator=( const ActorObserver& ); - -private: - /** - * This will never get called as we do not observe objects that have not been added to the scene. + * This will be called if an actor is added to the scene. * @param[in] object The object object. * @see Object::Observer::SceneObjectAdded() */ - virtual void SceneObjectAdded(Object& object) { } + virtual void SceneObjectAdded( Object& object ); /** - * This will be called when the actor is removed from the stage, we should clear and stop - * observing it. + * This will be called when the actor is removed from the scene. * @param[in] object The object object. * @see Object::Observer::SceneObjectRemoved() */ - virtual void SceneObjectRemoved(Object& object); + virtual void SceneObjectRemoved( Object& object ); /** * This will be called when the actor is destroyed. We should clear the actor. * No need to stop observing as the object is being destroyed anyway. * @see Object::Observer::ObjectDestroyed() */ - virtual void ObjectDestroyed(Object& object); + virtual void ObjectDestroyed( Object& object ); private: Actor* mActor; ///< Raw pointer to an Actor.