2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali/public-api/object/type-info.h>
24 #include <dali/internal/event/common/type-info-impl.h>
28 TypeInfo::TypeInfo() = default;
30 TypeInfo::~TypeInfo() = default;
32 TypeInfo::TypeInfo(const TypeInfo& copy) = default;
34 TypeInfo& TypeInfo::operator=(const TypeInfo& rhs) = default;
36 TypeInfo::TypeInfo(TypeInfo&& rhs) = default;
38 TypeInfo& TypeInfo::operator=(TypeInfo&& rhs) = default;
40 const std::string& TypeInfo::GetName() const
42 return GetImplementation(*this).GetName();
45 const std::string& TypeInfo::GetBaseName() const
47 return GetImplementation(*this).GetBaseName();
50 BaseHandle TypeInfo::CreateInstance() const
52 return GetImplementation(*this).CreateInstance();
55 TypeInfo::CreateFunction TypeInfo::GetCreator() const
57 return GetImplementation(*this).GetCreator();
60 size_t TypeInfo::GetActionCount() const
62 return GetImplementation(*this).GetActionCount();
65 std::string TypeInfo::GetActionName(size_t index)
67 return GetImplementation(*this).GetActionName(static_cast<uint32_t>(index));
70 size_t TypeInfo::GetSignalCount() const
72 return GetImplementation(*this).GetSignalCount();
75 std::string TypeInfo::GetSignalName(size_t index)
77 return GetImplementation(*this).GetSignalName(static_cast<uint32_t>(index));
80 size_t TypeInfo::GetPropertyCount() const
82 return GetImplementation(*this).GetPropertyCount();
85 void TypeInfo::GetPropertyIndices(Property::IndexContainer& indices) const
87 indices.Clear(); // We do not want to clear the container if called internally, so only clear here
88 GetImplementation(*this).GetPropertyIndices(indices);
91 std::string_view TypeInfo::GetPropertyName(Property::Index index) const
93 return GetImplementation(*this).GetRegisteredPropertyName(index);
96 Property::Index TypeInfo::GetChildPropertyIndex(const std::string& name) const
98 return GetImplementation(*this).GetChildPropertyIndex(Internal::ConstString(name));
101 std::string_view TypeInfo::GetChildPropertyName(Property::Index index) const
103 return GetImplementation(*this).GetChildPropertyName(index);
106 Property::Type TypeInfo::GetChildPropertyType(Property::Index index) const
108 return GetImplementation(*this).GetChildPropertyType(index);
111 void TypeInfo::GetChildPropertyIndices(Property::IndexContainer& indices) const
113 indices.Clear(); // We do not want to clear the container if called internally, so only clear here
114 GetImplementation(*this).GetChildPropertyIndices(indices);
117 TypeInfo::TypeInfo(Internal::TypeInfo* internal)
118 : BaseHandle(internal)