#include <dali/public-api/object/base-handle.h>
#include <dali/public-api/object/type-info.h>
-namespace Dali DALI_IMPORT_API
+namespace Dali
{
namespace Internal DALI_INTERNAL
* separated ie 'next-page'. This maintains consistency with the scripted interface.
*
*/
-class TypeRegistry : public BaseHandle
+class DALI_IMPORT_API TypeRegistry : public BaseHandle
{
public:
typedef std::vector<std::string> NameContainer; ///< Container of type names
~TypeRegistry();
/**
- * @copydoc Dali::BaseHandle::operator=
+ * @brief This copy constructor is required for (smart) pointer semantics.
+ *
+ * @param [in] handle A reference to the copied handle
+ */
+ TypeRegistry(const TypeRegistry& handle);
+
+ /**
+ * @brief This assignment operator is required for (smart) pointer semantics.
+ *
+ * @param [in] rhs A reference to the copied handle
+ * @return A reference to this
+ */
+ TypeRegistry& operator=(const TypeRegistry& rhs);
+
+ /**
+ * @brief This method is defined to allow assignment of the NULL value,
+ * and will throw an exception if passed any other value.
+ *
+ * Assigning to NULL is an alias for Reset().
+ * @param [in] rhs A NULL pointer
+ * @return A reference to this handle
*/
- using BaseHandle::operator=;
+ TypeRegistry& operator=(BaseHandle::NullType* rhs);
/**
* @brief Get TypeInfo for a registered type.
/**
* @brief Register a type from type info.
*/
-class TypeRegistration
+class DALI_IMPORT_API TypeRegistration
{
public:
/**
/**
* @brief Register a signal connector function to a registered type.
*/
-class SignalConnectorType
+class DALI_IMPORT_API SignalConnectorType
{
public:
/**
/**
* @brief Register an action function.
*/
-class TypeAction
+class DALI_IMPORT_API TypeAction
{
public:
/**
/**
* @brief Register a property for the given type.
*/
-class PropertyRegistration
+class DALI_IMPORT_API PropertyRegistration
{
public: