Optimization to reduce Handle size by 50% 79/24179/1
authorVictor Cebollada <v.cebollada@samsung.com>
Fri, 20 Jun 2014 07:47:24 +0000 (08:47 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Tue, 8 Jul 2014 17:47:32 +0000 (18:47 +0100)
[problem]      Memory usage is too high, event-thread operations are too heavy.
[cause]        Too much Dali::Handle data copied around.
[solution]     Remove all virtual methods from handles, to avoid needing a C++ vptr

Change-Id: I87c8c526be53413e895a88ac8a355083a4797d8e
Signed-off-by: Adeel Kazmi <adeel.kazmi@samsung.com>
73 files changed:
base/dali-toolkit/internal/controls/relayout-controller.h
base/dali-toolkit/internal/controls/relayout-helper.h
base/dali-toolkit/internal/controls/scroll-component/scroll-bar-internal.h
base/dali-toolkit/public-api/builder/builder.h
base/dali-toolkit/public-api/builder/json-parser.h
base/dali-toolkit/public-api/controls/buttons/check-box-button.h
base/dali-toolkit/public-api/controls/control.cpp
base/dali-toolkit/public-api/controls/table-view/table-view.h
base/dali-toolkit/public-api/focus-manager/keyinput-focus-manager.h
base/dali-toolkit/public-api/shader-effects/bouncing-effect.h
base/dali-toolkit/public-api/styling/style-manager.h
capi/dali-toolkit/public-api/controls/alignment/alignment.h
capi/dali-toolkit/public-api/controls/buttons/button.h
capi/dali-toolkit/public-api/controls/buttons/push-button.h
capi/dali-toolkit/public-api/controls/cluster/cluster-style.h
capi/dali-toolkit/public-api/controls/control.h
capi/dali-toolkit/public-api/controls/image-view/masked-image-view.h
capi/dali-toolkit/public-api/controls/popup/popup.h
capi/dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h
capi/dali-toolkit/public-api/controls/scrollable/item-view/item-view.h
capi/dali-toolkit/public-api/controls/scrollable/scroll-component.h
capi/dali-toolkit/public-api/controls/scrollable/scroll-connector.h
capi/dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h
capi/dali-toolkit/public-api/controls/scrollable/scrollable.h
capi/dali-toolkit/public-api/controls/super-blur-view/super-blur-view.h
capi/dali-toolkit/public-api/controls/text-input/text-input.h
capi/dali-toolkit/public-api/controls/text-view/text-view.h
capi/dali-toolkit/public-api/factory/localized-control-factory.h
capi/dali-toolkit/public-api/focus-manager/focus-manager.h
capi/dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h
capi/dali-toolkit/public-api/shader-effects/dissolve-effect.h
capi/dali-toolkit/public-api/shader-effects/image-region-effect.h
capi/dali-toolkit/public-api/shader-effects/iris-effect.h
capi/dali-toolkit/public-api/shader-effects/mask-effect.h
capi/dali-toolkit/public-api/shader-effects/page-turn-book-spine-effect.h
capi/dali-toolkit/public-api/shader-effects/page-turn-effect.h
capi/dali-toolkit/public-api/shader-effects/ripple-effect.h
capi/dali-toolkit/public-api/shader-effects/ripple2d-effect.h
capi/dali-toolkit/public-api/shader-effects/swirl-effect.h
optional/dali-toolkit/internal/transition-effects/cube-transition-effect-impl.h
optional/dali-toolkit/public-api/controls/bloom-view/bloom-view.h
optional/dali-toolkit/public-api/controls/cluster/cluster.h
optional/dali-toolkit/public-api/controls/effects-view/effects-view.h
optional/dali-toolkit/public-api/controls/gaussian-blur-view/gaussian-blur-view.h
optional/dali-toolkit/public-api/controls/image-view/image-view.h
optional/dali-toolkit/public-api/controls/magnifier/magnifier.h
optional/dali-toolkit/public-api/controls/navigation-frame/navigation-control.h
optional/dali-toolkit/public-api/controls/page-turn-view/page-turn-landscape-view.h
optional/dali-toolkit/public-api/controls/page-turn-view/page-turn-portrait-view.h
optional/dali-toolkit/public-api/controls/page-turn-view/page-turn-view.h
optional/dali-toolkit/public-api/controls/selectors/rotating-selector.h
optional/dali-toolkit/public-api/controls/shadow-view/shadow-view.h
optional/dali-toolkit/public-api/controls/slider/slider.h
optional/dali-toolkit/public-api/controls/tool-bar/tool-bar.h
optional/dali-toolkit/public-api/controls/view/view.h
optional/dali-toolkit/public-api/shader-effects/alpha-discard-effect.h
optional/dali-toolkit/public-api/shader-effects/bendy-effect.h
optional/dali-toolkit/public-api/shader-effects/blind-effect.h
optional/dali-toolkit/public-api/shader-effects/bubble-effect/bubble-effect.h
optional/dali-toolkit/public-api/shader-effects/bubble-effect/color-adjuster.h
optional/dali-toolkit/public-api/shader-effects/carousel-effect.h
optional/dali-toolkit/public-api/shader-effects/displacement-effect.h
optional/dali-toolkit/public-api/shader-effects/dissolve-local-effect.h
optional/dali-toolkit/public-api/shader-effects/distance-field-effect.h
optional/dali-toolkit/public-api/shader-effects/mirror-effect.h
optional/dali-toolkit/public-api/shader-effects/motion-blur-effect.h
optional/dali-toolkit/public-api/shader-effects/motion-stretch-effect.h
optional/dali-toolkit/public-api/shader-effects/overlay-effect.h
optional/dali-toolkit/public-api/shader-effects/shear-effect.h
optional/dali-toolkit/public-api/shader-effects/soft-button-effect.h
optional/dali-toolkit/public-api/shader-effects/spot-effect.h
optional/dali-toolkit/public-api/shader-effects/square-dissolve-effect.h
optional/dali-toolkit/public-api/shader-effects/water-effect.h

index c9463e0..7ec67b8 100644 (file)
@@ -46,9 +46,11 @@ public:
   RelayoutController();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~RelayoutController();
+  ~RelayoutController();
 
   /**
    * Request to relayout.
index b356262..15fbfe4 100644 (file)
@@ -35,12 +35,30 @@ namespace RelayoutHelper
 {
 
 /**
+ * Gets the natural size of the given actor.
  *
+ * If the actor is a Control, it returns the natural size of the Control. @see Control::GetNaturalSize()
+ * If the actor is an ImageActor, it returns the size of the image.
+ * If the actor is a TextActor, it returns the size of the text. @see Font::MeasureText()
+ * Otherwise it returns the actor's current size. @see Actor::GetCurrentSize()
+ *
+ * @param[in] actor The actor.
+ *
+ * @return The natural size.
  */
 Vector3 GetNaturalSize( Actor actor );
 
 /**
+ * Gets the actor's height for the given width.
+ *
+ * If the actor is a Control it returns the height for width. @see Control::GetHeightForWidth()
+ * If the actor is an ImageActor or a TextActor it scales the natural size to fit the given width. @see GetNaturalSize()
+ * Otherwise it returns the actor's current size. @see Actor::GetCurrentSize()
+ *
+ * @param[in] actor The actor.
+ * @param[in] width The width.
  *
+ * @return The actor's height for given width.
  */
 float GetHeightForWidth( Actor actor, float width );
 
index f269685..f1e84af 100755 (executable)
@@ -19,7 +19,7 @@
  */
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/scrollable//scroll-component.h>
+#include <dali-toolkit/public-api/controls/scrollable/scroll-component.h>
 #include <dali-toolkit/public-api/controls/scrollable/scrollable.h>
 
 namespace Dali DALI_IMPORT_API
index ee9dc18..cee1458 100644 (file)
@@ -101,9 +101,11 @@ typedef std::map<std::string, Property::Value> PropertyValueMap;
   static Builder New();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Builder();
+  ~Builder();
 
   /**
    * UI string data format
index 67a2ba6..5ea57e2 100644 (file)
@@ -63,10 +63,12 @@ public:
    */
   JsonParser();
 
-  /*
-   * virtual Destructor
+  /**
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~JsonParser();
+  ~JsonParser();
 
   /**
    * Downcast an Object handle to JsonParser if it is a JsonParser.
index 545d224..de65310 100644 (file)
@@ -79,10 +79,11 @@ public:
   CheckBoxButton& operator=( const CheckBoxButton& checkBox );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~CheckBoxButton();
+  ~CheckBoxButton();
 
   /**
    * Create an initialized CheckBoxButton.
index bfa3175..917a5b9 100644 (file)
@@ -179,31 +179,6 @@ Control::KeyEventSignalV2& Control::KeyEventSignal()
   return GetImplementation().KeyEventSignal();
 }
 
-/**
- * @copydoc ConnectionTrackerInterface::SignalConnected
- */
-void Control::SignalConnected( SlotObserver* slotObserver, CallbackBase* callback )
-{
-  GetImplementation().SignalConnected(slotObserver, callback );
-}
-
-/**
- * @copydoc ConnectionTrackerInterface::SignalDisconnected
- */
-void Control::SignalDisconnected( SlotObserver* slotObserver, CallbackBase* callback )
-{
-  GetImplementation().SignalDisconnected(slotObserver, callback );
-}
-
-/**
- * @copydoc ConnectionTrackerInterface::GetConnectionCount
- */
-std::size_t Control::GetConnectionCount() const
-{
-  return GetImplementation().GetConnectionCount( );
-}
-
-
 Control::Control(Internal::Control& implementation)
 : CustomActor(implementation)
 {
index c33c8dd..73cb39a 100644 (file)
@@ -81,10 +81,11 @@ public:
   TableView& operator=( const TableView& handle );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~TableView();
+  ~TableView();
 
   /**
    * Create the TableView control.
index 422fe58..5c05b3f 100644 (file)
@@ -64,9 +64,11 @@ class KeyInputFocusManager;
   KeyInputFocusManager();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~KeyInputFocusManager();
+  ~KeyInputFocusManager();
 
   /**
    * Get the singleton of KeyInputFocusManager object.
index 35398d5..a9e6280 100644 (file)
@@ -56,9 +56,11 @@ public:
   BouncingEffect();
 
   /**
-   * @brief Virtual destructor
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~BouncingEffect();
+  ~BouncingEffect();
 
   /**
    * @brief Create a BouncingEffect object
index b60ed61..6ac2662 100644 (file)
@@ -72,9 +72,11 @@ public:
   StyleManager();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~StyleManager();
+  ~StyleManager();
 
   /**
    * @brief Get the singleton of StyleManager object.
index f7e70df..737126c 100644 (file)
@@ -137,11 +137,11 @@ public:
   Alignment(const Alignment& alignment);
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Alignment();
+  ~Alignment();
 
   /**
    * @brief Downcast an Object handle to Alignment.
index 62ad4e1..767536a 100644 (file)
@@ -94,11 +94,11 @@ public:
   static Button DownCast( BaseHandle handle );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Button();
+  ~Button();
 
   /**
    * @brief Sets the button as \e dimmed.
index 59b05f2..30bad26 100644 (file)
@@ -123,11 +123,11 @@ public:
   PushButton& operator=( const PushButton& pushButton );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~PushButton();
+  ~PushButton();
 
   /**
    * @brief Create an initialized PushButton.
index 05ea5d2..77cfacc 100644 (file)
@@ -58,9 +58,11 @@ public:
 public:
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ClusterStyle();
+  ~ClusterStyle();
 
   /**
    * @brief Query the maximum number of children this Style can handle.
index 6fcc7a1..36e4635 100644 (file)
@@ -45,7 +45,7 @@ class Control;
  * The implementation of the control must be supplied; see Internal::Control for more details.
  * @see Internal::Control
  */
-class Control : public CustomActor, public ConnectionTrackerInterface
+class Control : public CustomActor
 {
 public:
 
@@ -134,11 +134,11 @@ public: // Creation & Destruction
   Control(const Control& uiControl);
 
   /**
-   * @brief Virtual destructor.
+   * @brief Dali::Control is intended as a base class
    *
-   * Dali::Object derived classes do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Control();
+  ~Control();
 
 public: // operators
 
@@ -372,23 +372,6 @@ public:
    */
   KeyEventSignalV2& KeyEventSignal();
 
-protected:
-
-  /**
-   * @copydoc ConnectionTrackerInterface::SignalConnected
-   */
-  virtual void SignalConnected( SlotObserver* slotObserver, CallbackBase* callback );
-
-  /**
-   * @copydoc ConnectionTrackerInterface::SignalDisconnected
-   */
-  virtual void SignalDisconnected( SlotObserver* slotObserver, CallbackBase* callback );
-
-  /**
-   * @copydoc ConnectionTrackerInterface::GetConnectionCount
-   */
-  virtual std::size_t GetConnectionCount() const;
-
 public: // Not intended for application developers
 
   /**
index 6502949..3fc5f33 100644 (file)
@@ -123,11 +123,11 @@ public:
   MaskedImageView& operator=( const MaskedImageView& handle );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~MaskedImageView();
+  ~MaskedImageView();
 
   /**
    * @brief Create the MaskedImageView control.
index 5758a9d..d147c4d 100644 (file)
@@ -125,11 +125,11 @@ public:
   Popup& operator=( const Popup& handle );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Popup();
+  ~Popup();
 
   /**
    * @brief Create the Poup control.
index a433997..d67b9c0 100755 (executable)
@@ -83,10 +83,11 @@ public:
   ScrollBar& operator=( const ScrollBar& scrollBar );
 
   /**
-   * @brief Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ScrollBar();
+  ~ScrollBar();
 
   /**
    * @brief Create an initialized ScrollBar
index 61c7265..3b31c91 100644 (file)
@@ -76,11 +76,11 @@ public:
   ItemView& operator=( const ItemView& itemView );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ItemView();
+  ~ItemView();
 
   /**
    * @brief Create an initialized ItemView.
index a3ee3f0..2745572 100644 (file)
@@ -56,10 +56,11 @@ public:
   ScrollComponent& operator=( const ScrollComponent& scrollComponent );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ScrollComponent();
+  ~ScrollComponent();
 
   /**
    * Downcast an Object handle to ScrollComponent. If handle points to a ScrollComponent the
index c8ac206..6960b4b 100644 (file)
@@ -93,9 +93,11 @@ public:
   using Dali::BaseHandle::operator=;
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ScrollConnector();
+  ~ScrollConnector();
 
   /**
    * Downcast a BaseHandle to ScrollConnector handle.
index 6592fd6..58fbbfc 100644 (file)
@@ -137,11 +137,6 @@ public:
   Ruler();
 
   /**
-   * @brief Destructor - A reference counted object may only be deleted by calling Unreference().
-   */
-  virtual ~Ruler();
-
-  /**
    * @brief Snaps (x) in accordance to the ruler settings.
    *
    * @param[in] x The input value on the ruler to be snapped.
@@ -296,6 +291,13 @@ public:
 
 protected:
 
+  /**
+   * @brief Destructor - A reference counted object may only be deleted by calling Unreference().
+   */
+  virtual ~Ruler();
+
+protected:
+
   RulerType mType;               ///< Type of Ruler (Fixed or Free).
   bool mEnabled;                 ///< If the ruler is enabled.
   RulerDomain mDomain;           ///< The domain of the ruler.
@@ -490,11 +492,11 @@ public:
   ScrollView& operator=( const ScrollView& handle );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ScrollView();
+  ~ScrollView();
 
   /**
    * @brief Create an initialized ScrollView.
index 2aee4f1..5ecec0d 100644 (file)
@@ -165,11 +165,11 @@ public:
   Scrollable& operator=( const Scrollable& handle );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Scrollable();
+  ~Scrollable();
 
   /**
    * @brief Downcast an Object handle to Scrollable.
index c0670bd..26ae109 100644 (file)
@@ -100,9 +100,11 @@ public:
   SuperBlurView& operator=( const SuperBlurView& rhs );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~SuperBlurView();
+  ~SuperBlurView();
 
   /**
    * @brief Downcast an Object handle to SuperBlurView.
index 57c51ba..6cce464 100644 (file)
@@ -122,11 +122,11 @@ public:
   static TextInput DownCast( BaseHandle handle );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~TextInput();
+  ~TextInput();
 
   /**
    * @brief Get the inputed text currently being displayed.
index bbad023..b8b8e2a 100644 (file)
@@ -307,11 +307,11 @@ public:
   static TextView DownCast( BaseHandle handle );
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
    *
-   * Dali::Object derived classes typically do not contain member data.
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~TextView();
+  ~TextView();
 
   /**
    * @brief Replace the current text with a new text string.
index 4fcd81d..1c900a9 100644 (file)
@@ -76,9 +76,11 @@ private:
   LocalizedControlFactory();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~LocalizedControlFactory();
+  ~LocalizedControlFactory();
 
   /**
    * @brief Get the singleton of LocalizedControlFactory object.
index 0c465bb..aee3045 100644 (file)
@@ -99,9 +99,11 @@ public:
   FocusManager();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~FocusManager();
+  ~FocusManager();
 
   /**
    * @brief Get the singleton of FocusManager object.
index 6cad036..f891e11 100644 (file)
@@ -78,9 +78,11 @@ public:
   KeyboardFocusManager();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~KeyboardFocusManager();
+  ~KeyboardFocusManager();
 
   /**
    * @brief Get the singleton of KeyboardFocusManager object.
index 7b51caf..4ec8f9e 100644 (file)
@@ -47,9 +47,11 @@ public:
   DissolveEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~DissolveEffect();
+  ~DissolveEffect();
 
   /**
    * @brief Create an initialized DissolveEffect.
index ad6ce54..7dd2b8c 100644 (file)
@@ -47,9 +47,11 @@ public:
   ImageRegionEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ImageRegionEffect();
+  ~ImageRegionEffect();
 
   /**
    * @brief Create an initialized ImageRegionEffect.
index bb1050e..dd0e68b 100644 (file)
@@ -48,9 +48,11 @@ public:
   IrisEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~IrisEffect();
+  ~IrisEffect();
 
   /**
    * @brief Create an initialized IrisEffect.
index 077d005..3c3d2d4 100644 (file)
@@ -53,9 +53,11 @@ public:
   MaskEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~MaskEffect();
+  ~MaskEffect();
 
   /**
    * @brief Create a MaskEffect.
index a55d2c3..bc86733 100644 (file)
@@ -51,9 +51,11 @@ public:
   PageTurnBookSpineEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~PageTurnBookSpineEffect();
+  ~PageTurnBookSpineEffect();
 
   /**
    * @brief Create an initialized PageTurnBookSpineEffect.
index adfdab9..970e091 100644 (file)
@@ -84,9 +84,11 @@ public:
   PageTurnEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~PageTurnEffect();
+  ~PageTurnEffect();
 
   /**
    * @brief Create an initialized PageTurnEffect.
index 17638f2..1f7e597 100644 (file)
@@ -47,9 +47,11 @@ public:
   RippleEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~RippleEffect();
+  ~RippleEffect();
 
   /**
    * @brief Create an initialized RippleEffect.
index a03aa8c..67eda39 100644 (file)
@@ -47,9 +47,11 @@ public:
   Ripple2DEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Ripple2DEffect();
+  ~Ripple2DEffect();
 
   /**
    * @brief Create an initialized Ripple2DEffect.
index 81ace19..11713c1 100644 (file)
@@ -47,9 +47,11 @@ public:
   SwirlEffect();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~SwirlEffect();
+  ~SwirlEffect();
 
   /**
    * @brief Create an initialized SwirlEffect.
index d5868ee..b1d3a41 100644 (file)
@@ -51,9 +51,11 @@ public:
   FullAreaImageCreator(){}
 
   /**
-   * virtual destructor
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~FullAreaImageCreator(){}
+  ~FullAreaImageCreator(){}
 
   /**
    * Create an initialized FullAreaImageCreator.
index eed3761..7edfc14 100644 (file)
@@ -109,9 +109,11 @@ public:
   BloomView& operator=(const BloomView& ZoomView);
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~BloomView();
+  ~BloomView();
 
   /**
    * Downcast an Object handle to BloomView. If handle points to a BloomView the
index 459cf57..8ab3ddb 100644 (file)
@@ -69,10 +69,11 @@ public:
   Cluster& operator=( const Cluster& cluster );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Cluster();
+  ~Cluster();
 
   /**
    * Create the Cluster control with the given style.
index c16f2e9..a742252 100644 (file)
@@ -109,10 +109,11 @@ public:
   static EffectsView DownCast( BaseHandle handle );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~EffectsView();
+  ~EffectsView();
 
 public:
 
index df616ee..ea80385 100644 (file)
@@ -113,9 +113,11 @@ public:
   GaussianBlurView& operator=(const GaussianBlurView& ZoomView);
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~GaussianBlurView();
+  ~GaussianBlurView();
 
   /**
    * Downcast an Object handle to GaussianBlurView. If handle points to a GaussianBlurView the
index 8927bfa..dee9e41 100644 (file)
@@ -88,10 +88,11 @@ public:
   ImageView& operator=( const ImageView& handle );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ImageView();
+  ~ImageView();
 
   /**
    * Create the Poup control
index 7aad636..0f62504 100644 (file)
@@ -68,10 +68,11 @@ public:
   Magnifier& operator=( const Magnifier& handle );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Magnifier();
+  ~Magnifier();
 
   /**
    * Create the Poup control
index b42e64f..be49931 100644 (file)
@@ -102,9 +102,11 @@ public:
   NavigationControl& operator=( const NavigationControl& handle );
 
   /**
-   * virtual Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~NavigationControl();
+  ~NavigationControl();
 
   /**
    * Create an initialized NavigationControl.
index df697dc..00f99d9 100644 (file)
@@ -56,10 +56,11 @@ public:
   PageTurnLandscapeView& operator=( const PageTurnLandscapeView& pageTurnLandscapeView );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~PageTurnLandscapeView();
+  ~PageTurnLandscapeView();
 
   /**
    * Create an initialized PageTurnLandscapeView control
index 93cda07..1af8bf5 100644 (file)
@@ -56,10 +56,11 @@ public:
   PageTurnPortraitView& operator=( const PageTurnPortraitView& pageTurnPortraitView );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~PageTurnPortraitView();
+  ~PageTurnPortraitView();
 
   /**
    * Create an initialized  PageTurnPortraitView control
index 39b91da..b91aeec 100644 (file)
@@ -74,9 +74,11 @@ public:
   PageTurnView& operator=( const PageTurnView& handle );
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~PageTurnView();
+  ~PageTurnView();
 
   /**
    * Downcast an Object handle to PageTurnView.
index 5ce4726..747c700 100644 (file)
@@ -62,8 +62,9 @@ public:
   RotatingSelector& operator=( const RotatingSelector& rotatingSelector );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
   ~RotatingSelector();
 
index 7bd2cf9..0013ab5 100644 (file)
@@ -122,9 +122,11 @@ public:
   ShadowView& operator=(const ShadowView& view);
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ShadowView();
+  ~ShadowView();
 
   /**
    * Downcast an Object handle to ShadowView. If handle points to a ShadowView the
index efdaf5a..4f111dc 100644 (file)
@@ -96,10 +96,11 @@ public:
   Slider& operator=( const Slider& handle );
 
   /**
-   * Virtual destructor.
-   * Dali::Object derived classes typically do not contain member data.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Slider();
+  ~Slider();
 
   /**
    * Downcast an Object handle to Slider. If handle points to a Slider the
index 6fc2e61..76653be 100644 (file)
@@ -68,9 +68,11 @@ public:
   ToolBar& operator=( const ToolBar& handle );
 
   /**
-   * virtual Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ToolBar();
+  ~ToolBar();
 
   /**
    * Create an initialized ToolBar.
index 50d072b..0371b92 100644 (file)
@@ -101,9 +101,11 @@ public:
   View& operator=( const View& handle );
 
   /**
-   * virtual Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~View();
+  ~View();
 
   /**
    * Create an initialized View.
index 9eca0fc..abc1f59 100644 (file)
@@ -47,9 +47,11 @@ public:
   AlphaDiscardEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~AlphaDiscardEffect();
+  ~AlphaDiscardEffect();
 
   /**
    * Create a AlphaDiscardEffect.
index 2b24814..f073fed 100644 (file)
@@ -41,9 +41,11 @@ public:
   BendyEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~BendyEffect();
+  ~BendyEffect();
 
   /**
    * Create an initialized BendyEffect.
index 38ed14f..6968611 100644 (file)
@@ -41,9 +41,11 @@ public:
   BlindEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~BlindEffect();
+  ~BlindEffect();
 
   /**
    * Create an initialized ~BlindEffect.
index 3d0b5a3..69a1c3a 100644 (file)
@@ -41,9 +41,11 @@ public:
   BubbleEffect();
 
   /**
-   * Virtual destructor
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~BubbleEffect();
+  ~BubbleEffect();
 
   /**
    * Create an initialized BubbleEffect
index ab393f7..0dac3e5 100644 (file)
@@ -40,9 +40,11 @@ public:
   ColorAdjuster();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ColorAdjuster();
+  ~ColorAdjuster();
 
   /**
    * Create an initialized ColorAdjuster.
index edd57e7..9e899ef 100644 (file)
@@ -51,9 +51,11 @@ public:
   CarouselEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~CarouselEffect();
+  ~CarouselEffect();
 
   /**
    * Create an initialized CarouselEffect.
index d787ac8..7f7e2ec 100644 (file)
@@ -88,9 +88,11 @@ public:
   DisplacementEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~DisplacementEffect();
+  ~DisplacementEffect();
 
   /**
    * Create an initialized DisplacementEffect
index 0ab784f..7b01b59 100644 (file)
@@ -41,9 +41,11 @@ public:
   DissolveLocalEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~DissolveLocalEffect();
+  ~DissolveLocalEffect();
 
   /**
    * Create an initialized DissolveLocalEffect.
index ea034af..17904a2 100644 (file)
@@ -41,9 +41,11 @@ public:
   DistanceFieldEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~DistanceFieldEffect();
+  ~DistanceFieldEffect();
 
   /**
    * Create an initialized DistanceFieldEffect.
index 9b1bdf7..3e9ebab 100644 (file)
@@ -41,9 +41,11 @@ public:
   MirrorEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~MirrorEffect();
+  ~MirrorEffect();
 
   /**
    * Create an initialized MirrorEffect.
index 19b9ea6..053531b 100644 (file)
@@ -57,9 +57,11 @@ public:
   MotionBlurEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~MotionBlurEffect();
+  ~MotionBlurEffect();
 
   /**
    * Create an initialized MotionBlurEffect
index 3747786..e097748 100644 (file)
@@ -56,9 +56,11 @@ public:
   MotionStretchEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~MotionStretchEffect();
+  ~MotionStretchEffect();
 
   /**
    * Create an initialized MotionStretchEffect
index 8fd9694..1f9e41e 100644 (file)
@@ -47,9 +47,11 @@ public:
   OverlayEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~OverlayEffect();
+  ~OverlayEffect();
 
   /**
    * Create a OverlayEffect.
index 48c3b5d..780d2ce 100644 (file)
@@ -41,9 +41,11 @@ public:
   ShearEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ShearEffect();
+  ~ShearEffect();
 
   /**
    * Create an initialized ShearEffect.
index 0517f61..ae54df0 100644 (file)
@@ -61,9 +61,11 @@ public:
   SoftButtonEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~SoftButtonEffect();
+  ~SoftButtonEffect();
 
   typedef enum
   {
index 24fac72..c435dd9 100644 (file)
@@ -41,9 +41,11 @@ public:
   SpotEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~SpotEffect();
+  ~SpotEffect();
 
   /**
    * Create an initialized SpotEffect.
index d5ba25c..d8db126 100644 (file)
@@ -41,9 +41,11 @@ public:
   SquareDissolveEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~SquareDissolveEffect();
+  ~SquareDissolveEffect();
 
   /**
    * Create an initialized SquareDissolveEffect.
index 3713721..e40ea54 100644 (file)
@@ -65,9 +65,11 @@ public:
   WaterEffect();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~WaterEffect();
+  ~WaterEffect();
 
   /**
    * Create an initialized WaterEffect.