X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fobject%2Ftype-registry.h;h=7eddbe2099d688a8fac6ef69b7138890f6c81b59;hb=adae31cf70bdeed19789edc694d4baaf2fc67f21;hp=f4f66f33776dfaa728c159a752012fde1d615a16;hpb=3fc7efff68de13a8d1d423422ac408b77a28f232;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/object/type-registry.h b/dali/public-api/object/type-registry.h index f4f66f3..7eddbe2 100644 --- a/dali/public-api/object/type-registry.h +++ b/dali/public-api/object/type-registry.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TYPE_REGISTRY_H__ -#define __DALI_TYPE_REGISTRY_H__ +#ifndef DALI_TYPE_REGISTRY_H +#define DALI_TYPE_REGISTRY_H /* - * Copyright (c) 2018 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. @@ -19,8 +19,8 @@ */ // EXTERNAL INCLUDES -#include #include // uint32_t +#include // INTERNAL INCLUDES #include @@ -37,7 +37,7 @@ namespace Internal DALI_INTERNAL { class TypeRegistry; } -class DefaultPropertyMetadata; +struct DefaultPropertyMetadata; /** * @brief The TypeRegistry allows registration of type instance creation functions. @@ -135,13 +135,30 @@ public: TypeRegistry& operator=(const TypeRegistry& rhs); /** + * @brief Move constructor. + * + * @SINCE_1_9.22 + * @param[in] rhs A reference to the moved handle + */ + TypeRegistry(TypeRegistry&& 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 + */ + TypeRegistry& operator=(TypeRegistry&& rhs) noexcept; + + /** * @brief Gets TypeInfo for a registered type. * * @SINCE_1_0.0 * @param[in] uniqueTypeName A unique type name * @return TypeInfo if the type exists, otherwise an empty handle */ - TypeInfo GetTypeInfo( const std::string &uniqueTypeName ); + TypeInfo GetTypeInfo(const std::string& uniqueTypeName); /** * @brief Gets TypeInfo for a registered type. @@ -150,7 +167,7 @@ public: * @param[in] registerType The registered type info * @return TypeInfo if the type exists, otherwise an empty handle */ - TypeInfo GetTypeInfo( const std::type_info& registerType ); + TypeInfo GetTypeInfo(const std::type_info& registerType); /** * @brief Gets type name count. @@ -170,7 +187,6 @@ public: std::string GetTypeName(size_t index) const; public: // Not intended for application developers - /// @cond internal /** * @brief This constructor is used by Dali Get() method. @@ -178,7 +194,7 @@ public: // Not intended for application developers * @SINCE_1_0.0 * @param[in] typeRegistry A pointer to a Dali resource */ - explicit DALI_INTERNAL TypeRegistry(Internal::TypeRegistry*typeRegistry); + explicit DALI_INTERNAL TypeRegistry(Internal::TypeRegistry* typeRegistry); /// @endcond }; @@ -197,8 +213,7 @@ public: * @param[in] baseType The base type info of registerType * @param[in] f registerType Instance creation function */ - TypeRegistration( const std::type_info& registerType, const std::type_info& baseType, - TypeInfo::CreateFunction f ); + TypeRegistration(const std::type_info& registerType, const std::type_info& baseType, TypeInfo::CreateFunction f); /** * @brief Constructor registers the type creation function. @@ -209,19 +224,18 @@ public: * @param[in] f registerType instance creation function * @param[in] callCreateOnInit If true the creation function is called as part of Dali initialization */ - TypeRegistration( const std::type_info& registerType, const std::type_info& baseType, - TypeInfo::CreateFunction f, bool callCreateOnInit ); + TypeRegistration(const std::type_info& registerType, const std::type_info& baseType, TypeInfo::CreateFunction f, bool callCreateOnInit); /** * @brief Constructor registers the type creation function. * + * @SINCE_1_4.0 * @param[in] registerType the type info for the type to be registered * @param[in] baseType the base type info of registerType * @param[in] f registerType instance creation function * @param[in] defaultProperties the default property meta-data */ - TypeRegistration( const std::type_info& registerType, const std::type_info& baseType, - TypeInfo::CreateFunction f, const DefaultPropertyMetadata& defaultProperties ); + TypeRegistration(const std::type_info& registerType, const std::type_info& baseType, TypeInfo::CreateFunction f, const DefaultPropertyMetadata& defaultProperties); /** * @brief Constructor registers the type creation function for a named class or type. @@ -233,8 +247,7 @@ public: * @param[in] baseType the base type info of registerType * @param[in] f registerType instance creation function */ - TypeRegistration( const std::string& name, const std::type_info& baseType, - TypeInfo::CreateFunction f ); + TypeRegistration(std::string name, const std::type_info& baseType, TypeInfo::CreateFunction f); /** * @brief The name the type is registered under (derived from type_info). @@ -242,11 +255,11 @@ public: * @SINCE_1_0.0 * @return The registered name or empty if unregistered */ - const std::string RegisteredName() const; + const std::string& RegisteredName() const; private: TypeRegistry mReference; ///< Reference to the type registry - std::string mName; ///< Name of the type + std::string mName; ///< Name of the type }; /** @@ -264,7 +277,7 @@ public: * @param[in] name The signal name * @param[in] func The signal connector function */ - SignalConnectorType( TypeRegistration& typeRegistration, const std::string& name, TypeInfo::SignalConnectorFunction func ); + SignalConnectorType(TypeRegistration& typeRegistration, std::string name, TypeInfo::SignalConnectorFunction func); }; /** @@ -282,7 +295,7 @@ public: * @param[in] name The action name * @param[in] f The action function */ - TypeAction( TypeRegistration ®istered, const std::string &name, TypeInfo::ActionFunction f); + TypeAction(TypeRegistration& registered, std::string name, TypeInfo::ActionFunction f); }; /** @@ -292,7 +305,6 @@ public: class DALI_CORE_API PropertyRegistration { public: - /** * @brief This constructor registers the property with the registered type. * @@ -319,9 +331,12 @@ public: * @note "getFunc" MUST be provided. * */ - PropertyRegistration( TypeRegistration& registered, - const std::string& name, Property::Index index, Property::Type type, - TypeInfo::SetPropertyFunction setFunc, TypeInfo::GetPropertyFunction getFunc ); + PropertyRegistration(TypeRegistration& registered, + std::string name, + Property::Index index, + Property::Type type, + TypeInfo::SetPropertyFunction setFunc, + TypeInfo::GetPropertyFunction getFunc); }; /** @@ -331,7 +346,6 @@ public: class DALI_CORE_API AnimatablePropertyRegistration { public: - /** * @brief This constructor registers the animatable property with the registered type. * @@ -346,7 +360,7 @@ public: * @param[in] type The property value type * @pre "registered" must be registered with the TypeRegistry. */ - AnimatablePropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type ); + AnimatablePropertyRegistration(TypeRegistration& registered, std::string name, Property::Index index, Property::Type type); /** * @brief This constructor registers the animatable property with the registered default value. @@ -362,7 +376,7 @@ public: * @param[in] value The property default value * @pre "registered" must be registered with the TypeRegistry. */ - AnimatablePropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, const Property::Value& value ); + AnimatablePropertyRegistration(TypeRegistration& registered, std::string name, Property::Index index, const Property::Value& value); }; /** @@ -372,7 +386,6 @@ public: class DALI_CORE_API AnimatablePropertyComponentRegistration { public: - /** * @brief This constructor registers a component of an animatable property where * the base animatable property must be a property that supports property component @@ -390,7 +403,7 @@ public: * @param[in] componentIndex The index of the component (e.g. 0 for the x component of a Vector2 property and 1 for the y component of a Vector2 property) * @pre "registered" must be registered with the TypeRegistry. */ - AnimatablePropertyComponentRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Index baseIndex, uint32_t componentIndex ); + AnimatablePropertyComponentRegistration(TypeRegistration& registered, std::string name, Property::Index index, Property::Index baseIndex, uint32_t componentIndex); }; /** @@ -400,7 +413,6 @@ public: class DALI_CORE_API ChildPropertyRegistration { public: - /** * @brief This constructor registers an event-thread only child property (i.e. a property * that the parent supports in its children) with the registered type. @@ -412,7 +424,7 @@ public: * @param[in] type The property value type * @pre "registered" must be registered with the TypeRegistry. */ - ChildPropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type ); + ChildPropertyRegistration(TypeRegistration& registered, std::string name, Property::Index index, Property::Type type); /** * @brief This constructor registers an event-thread only child property (i.e. a property @@ -425,10 +437,9 @@ public: * @param[in] type The property value type * @pre "registered" must be registered with the TypeRegistry. */ - ChildPropertyRegistration( const std::string& registered, const std::string& name, Property::Index index, Property::Type type ); + ChildPropertyRegistration(std::string registered, std::string name, Property::Index index, Property::Type type); }; - /** * @} */