Ensure BaseHandle class move noexcept (core public-api)
[platform/core/uifw/dali-core.git] / dali / public-api / object / object-registry.h
index 57a4a26..15a84d9 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_OBJECT_REGISTRY_H__
-#define __DALI_OBJECT_REGISTRY_H__
+#ifndef DALI_OBJECT_REGISTRY_H
+#define DALI_OBJECT_REGISTRY_H
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -56,23 +56,22 @@ class ObjectRegistry;
  * | objectDestroyed  | @ref ObjectDestroyedSignal() |
  * @SINCE_1_0.0
  */
-class DALI_IMPORT_API ObjectRegistry : public BaseHandle
+class DALI_CORE_API ObjectRegistry : public BaseHandle
 {
 public:
-
   // Typedefs
 
   /**
    * @brief Object created signal.
    * @SINCE_1_0.0
    */
-  typedef Signal< void ( BaseHandle ) > ObjectCreatedSignalType;
+  using ObjectCreatedSignalType = Signal<void(BaseHandle)>;
 
   /**
    * @brief Object destroyed signal.
    * @SINCE_1_0.0
    */
-  typedef Signal< void ( const Dali::RefObject* ) > ObjectDestroyedSignalType;
+  using ObjectDestroyedSignalType = Signal<void(const Dali::RefObject*)>;
 
   /**
    * @brief Allows the creation of an empty objectRegistry handle.
@@ -108,9 +107,25 @@ public:
    */
   ObjectRegistry& operator=(const ObjectRegistry& rhs);
 
-public: // Signals
+  /**
+   * @brief Move constructor.
+   *
+   * @SINCE_1_9.22
+   * @param[in] rhs A reference to the moved handle
+   */
+  ObjectRegistry(ObjectRegistry&& rhs) noexcept;
 
   /**
+   * @brief Move assignment operator.
+   *
+   * @SINCE_1_9.22
+   * @param[in] rhs A reference to the moved handle
+   * @return A reference to this handle
+   */
+  ObjectRegistry& operator=(ObjectRegistry&& rhs) noexcept;
+
+public: // Signals
+  /**
    * @brief This signal is emitted when an object is created.
    *
    * A callback of the following type may be connected:
@@ -148,7 +163,6 @@ public: // Signals
   ObjectDestroyedSignalType& ObjectDestroyedSignal();
 
 public: // Not intended for application developers
-
   /// @cond internal
   /**
    * @brief This constructor is used by Dali Get() method.
@@ -165,4 +179,4 @@ public: // Not intended for application developers
  */
 } // namespace Dali
 
-#endif // __DALI_OBJECT_REGISTRY_H__
+#endif // DALI_OBJECT_REGISTRY_H