• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef META_INTERFACE_BUILTIN_OBJECTS_H
17 #define META_INTERFACE_BUILTIN_OBJECTS_H
18 
19 #include <meta/base/namespace.h>
20 #include <meta/base/types.h>
21 
META_BEGIN_NAMESPACE()22 META_BEGIN_NAMESPACE()
23 
24 namespace GlobalObjectInstance {
25 /** Instance id of the default object context instance */
26 [[maybe_unused]] constexpr static BASE_NS::Uid DEFAULT_OBJECT_CONTEXT { "3fe40d0f-4ec5-455c-a66d-dcd749b08194" };
27 } // namespace GlobalObjectInstance
28 
29 /** Base objects */
30 META_REGISTER_CLASS(BaseObject, "211f0da1-1a09-422c-8dd0-fbc493a72d08", ObjectCategoryBits::NO_CATEGORY)
31 META_REGISTER_CLASS(Object, "b2377edc-27ec-4aa1-b071-636d78db63e2", ObjectCategoryBits::NO_CATEGORY)
32 META_REGISTER_CLASS(ObjectContext, "22b552eb-2caa-4b8a-9983-9817ab9fa92d", ObjectCategoryBits::INTERNAL)
33 META_REGISTER_CLASS(ProxyObject, "bd2164e1-b1b6-472a-8783-7787c7de9b36", ObjectCategoryBits::INTERNAL)
34 META_REGISTER_CLASS(ObjectContainer, "e25ec91e-f5cb-4afa-b277-a16c19da2e4a", ObjectCategoryBits::CONTAINER)
35 META_REGISTER_CLASS(ObjectFlatContainer, "30f501c2-7b62-44a4-911b-9b0ff2c850c4", ObjectCategoryBits::CONTAINER)
36 META_REGISTER_CLASS(AttachmentContainer, "d03551ab-8ef4-4b0b-98ba-f0edd2db6ba2", ObjectCategoryBits::CONTAINER)
37 META_REGISTER_CLASS(ResourceContainer, "d86402a2-1a05-4d6e-9c31-f5979f3fa017", ObjectCategoryBits::CONTAINER)
38 META_REGISTER_CLASS(ObjectDataContainer, "699f6e94-a988-406d-af8b-8a4fa88a3485", ObjectCategoryBits::CONTAINER)
39 META_REGISTER_CLASS(ContainerObserver, "a13844ca-9830-4dd2-8ecc-625563bcc5b0", ObjectCategoryBits::NO_CATEGORY)
40 META_REGISTER_CLASS(ObjectHierarchyObserver, "48cb1bb4-dd0a-44a5-a530-c2073e3a70df", ObjectCategoryBits::NO_CATEGORY)
41 
42 /** String pool */
43 META_REGISTER_CLASS(StringPool, "8fb945d5-a73e-44c5-be0e-c6f518900aef", ObjectCategoryBits::NO_CATEGORY)
44 
45 /** Json serializer */
46 META_REGISTER_CLASS(JsonSerializer, "71c930c7-91ad-45a5-8d47-044d70316ea5", ObjectCategoryBits::NO_CATEGORY)
47 
48 META_REGISTER_CLASS(SystemClock, "96a7dc3c-7532-4a0e-b6b1-3a406947419c", ObjectCategoryBits::NO_CATEGORY)
49 META_REGISTER_CLASS(ManualClock, "7069eb20-4fe8-4c78-8d98-9a5938b09170", ObjectCategoryBits::NO_CATEGORY)
50 
51 /** Property validators */
52 META_REGISTER_CLASS(ClampIntegerValidator, "3b8278a3-e50b-4e56-8cc1-990370ed5aa7", ObjectCategoryBits::NO_CATEGORY)
53 
54 /**
55  * @brief Implementation of data model that implements IContainer interface.
56  */
57 META_REGISTER_CLASS(ContainerDataModel, "84911f22-92ad-47fe-9399-cc0e9222affa", ObjectCategoryBits::NO_CATEGORY)
58 
59 /**
60  * @brief Implementation that instantiates objects with given class uid and sets properties from the data for this
61  * object Note: "Model." is added to the property names of data when added to the created object instance. CreateObject:
62  * Creates object by giving metadata from the model as Build argument. If object implements IRecyclable, Rebuild is
63  * being called with the metadata. Otherwise matching properties are added to the object and those bind to the original
64  * data. DisposeObject: If object implements IRecyclable, Dispose is called, otherwise all properties without NATIVE
65  * flag are reset. Recycles objects based on the cache hint.
66  */
67 META_REGISTER_CLASS(
68     InstantiatingObjectProvider, "208fc857-2d5c-4eb9-98e4-de45eba5e2ca", ObjectCategoryBits::NO_CATEGORY)
69 
70 /**
71  * @brief Implements object provider that uses content loader interface to create the objects.
72  */
73 META_REGISTER_CLASS(
74     ContentLoaderObjectProvider, "f5ab9348-43cf-4154-bdd6-11d7ed6082d6", ObjectCategoryBits::NO_CATEGORY)
75 
76 /**
77  * @brief Implementation that provides view over many IObjectProviders as single IObjectProvider. Implements IContainer.
78  */
79 META_REGISTER_CLASS(CompositeObjectProvider, "f0eaec42-f6b2-43f0-b487-52ddbda305bb", ObjectCategoryBits::NO_CATEGORY)
80 
81 /** Content loaders */
82 META_REGISTER_CLASS(CsvStringResourceLoader, "2e264ba2-a9a3-4f95-bac6-339b6c3ea033", ObjectCategoryBits::NO_CATEGORY)
83 META_REGISTER_CLASS(JsonContentLoader, "b9d3860f-2a7e-4ac0-8140-542aea4a5e09", ObjectCategoryBits::NO_CATEGORY)
84 META_REGISTER_CLASS(ClassContentLoader, "5d2bebca-f12c-11ec-8ea0-0242ac120002", ObjectCategoryBits::NO_CATEGORY)
85 
86 /**
87  * @brief Default Event <-> Meta function connector object.
88  */
89 META_REGISTER_CLASS(Connector, "5b643aaa-c6f2-4839-b145-3afcb04d4125", ObjectCategoryBits::NO_CATEGORY)
90 
91 /**
92  * @brief Function that refers to IObject's meta-function by name.
93  */
94 META_REGISTER_CLASS(SettableFunction, "9a3c3b9d-406c-487f-87c5-184c4b80724a", ObjectCategoryBits::NO_CATEGORY)
95 
96 /**
97  * @brief Function that returns value of a property.
98  */
99 META_REGISTER_CLASS(PropertyFunction, "d458e645-c83a-4cb6-be3d-2bc1720b384f", ObjectCategoryBits::NO_CATEGORY)
100 
101 /**
102  * @brief Object that contains another object, the searchability and serialisation for the contained object can be
103  * controlled.
104  */
105 META_REGISTER_CLASS(ContentObject, "a1e95c16-99df-42d9-bc94-600df414a43b", ObjectCategoryBits::NO_CATEGORY)
106 
107 /**
108  * @brief An object which can be used to control all IStartable instances that are (or become) part of an
109  *        object hierarchy.
110  */
111 META_REGISTER_CLASS(StartableObjectController, "8e6748be-3ff3-4b2a-8f7e-7b2d3fa2fc94", ObjectCategoryBits::NO_CATEGORY)
112 
113 META_REGISTER_CLASS(Exporter, "143ae57a-fb57-4130-ae7c-ae3aa4b56495", ObjectCategoryBits::NO_CATEGORY)
114 META_REGISTER_CLASS(Importer, "4fbc30f7-2225-4f2a-8dc4-7d23bdb7c782", ObjectCategoryBits::NO_CATEGORY)
115 
116 META_REGISTER_CLASS(JsonExporter, "fe5d68ca-334a-44e0-b8c0-9d44bf2dc9a6", ObjectCategoryBits::NO_CATEGORY)
117 META_REGISTER_CLASS(JsonImporter, "80f8cd0b-c5a9-4f19-bc36-5c83eb2926b4", ObjectCategoryBits::NO_CATEGORY)
118 
119 META_REGISTER_CLASS(DebugOutput, "cfb42445-363f-40d2-a231-1623b8028392", ObjectCategoryBits::NO_CATEGORY)
120 META_REGISTER_CLASS(JsonOutput, "dd4f3444-bc9d-436b-90c7-312793dc38f2", ObjectCategoryBits::NO_CATEGORY)
121 META_REGISTER_CLASS(JsonInput, "0b4587d2-af0d-4c67-bd6b-0386fa2de094", ObjectCategoryBits::NO_CATEGORY)
122 
123 META_REGISTER_CLASS(RootNode, "776bd8ab-a135-4108-bae3-233ce615b900", ObjectCategoryBits::NO_CATEGORY)
124 META_REGISTER_CLASS(NilNode, "776bd8ab-a135-4108-bae3-233ce615b901", ObjectCategoryBits::NO_CATEGORY)
125 META_REGISTER_CLASS(ObjectNode, "776bd8ab-a135-4108-bae3-233ce615b902", ObjectCategoryBits::NO_CATEGORY)
126 META_REGISTER_CLASS(ArrayNode, "776bd8ab-a135-4108-bae3-233ce615b903", ObjectCategoryBits::NO_CATEGORY)
127 META_REGISTER_CLASS(MapNode, "776bd8ab-a135-4108-bae3-233ce615b904", ObjectCategoryBits::NO_CATEGORY)
128 META_REGISTER_CLASS(BoolNode, "776bd8ab-a135-4108-bae3-233ce615b905", ObjectCategoryBits::NO_CATEGORY)
129 META_REGISTER_CLASS(IntNode, "776bd8ab-a135-4108-bae3-233ce615b906", ObjectCategoryBits::NO_CATEGORY)
130 META_REGISTER_CLASS(UIntNode, "776bd8ab-a135-4108-bae3-233ce615b907", ObjectCategoryBits::NO_CATEGORY)
131 META_REGISTER_CLASS(DoubleNode, "776bd8ab-a135-4108-bae3-233ce615b909", ObjectCategoryBits::NO_CATEGORY)
132 META_REGISTER_CLASS(StringNode, "776bd8ab-a135-4108-bae3-233ce615b90a", ObjectCategoryBits::NO_CATEGORY)
133 META_REGISTER_CLASS(RefNode, "776bd8ab-a135-4108-bae3-233ce615b90b", ObjectCategoryBits::NO_CATEGORY)
134 META_REGISTER_CLASS(MetaMigrateV1, "6a6cddfc-3788-4948-8d04-6acca3d120fb", ObjectCategoryBits::NO_CATEGORY)
135 
136 META_REGISTER_CLASS(Bind, "27513ec5-8415-4491-b3f4-51205936cc5d", ObjectCategoryBits::NO_CATEGORY)
137 
138 // engine support
139 META_REGISTER_CLASS(EngineValueManager, "a63723d0-7755-4ca3-a9d6-983df6e12cff", ObjectCategoryBits::NO_CATEGORY)
140 META_REGISTER_CLASS(EngineInputPropertyManager, "10a81469-07c2-4cab-b8a5-3249e415cb5a", ObjectCategoryBits::NO_CATEGORY)
141 
142 META_END_NAMESPACE()
143 
144 #endif
145