Lines Matching refs:classes
79 CORE_LOG_F("Object classes not unregistered before object registry death. (force unregister)");
135 BASE_NS::vector<IObject::Ptr> classes;
136 auto res = CreateInternal(factory->GetClassInfo().Id().ToUid(), classes);
137 if (res.successful && !classes.empty()) {
138 // for now we need to set the super classes to safely destroy some objects, using dummy instance id
139 SetObjectInstanceIds(classes, BASE_NS::Uid {});
161 BASE_NS::Uid uid, BASE_NS::vector<IObject::Ptr>& classes) const
169 return CreateResult { ConstructObjectInternal(obj, classes), info.category, info.IsSingleton() };
175 bool ObjectRegistry::ConstructObjectInternal(const IObject::Ptr& obj, BASE_NS::vector<IObject::Ptr>& classes) const
177 classes.push_back(obj);
182 auto super = CreateInternal(superUid, classes);
193 void ObjectRegistry::SetObjectInstanceIds(const BASE_NS::vector<IObject::Ptr>& classes, InstanceId instid) const
195 IObject::Ptr obj = classes.front();
199 for (auto it = classes.rbegin(); it != classes.rend(); ++it) {
214 bool ObjectRegistry::BuildObject(const BASE_NS::vector<IObject::Ptr>& classes, const IMetadata::Ptr& data) const
216 if (classes.empty()) {
219 IObject::Ptr obj = classes.front();
222 // Set metadata first so that one can use IMetadata via GetSelf in the non-top classes' Build
223 for (auto it = classes.rbegin(); it != classes.rend(); ++it) {
229 for (auto it = classes.rbegin(); it != classes.rend(); ++it) {
265 BASE_NS::vector<IObject::Ptr> classes;
266 auto t = CreateInternal(uid.ToUid(), classes);
267 if (t.successful && !classes.empty()) {
268 if (PostCreate(uid.ToUid(), instid.ToUid(), t, createInfo, classes, data)) {
269 return classes.front();
278 const CreateInfo& createInfo, const BASE_NS::vector<IObject::Ptr>& classes, const IMetadata::Ptr& data) const
280 SetObjectInstanceIds(classes, instid);
282 if (!BuildObject(classes, data)) {
294 i = ObjectInstance { classes.front(), t.category };
297 singletons_[uid] = classes.front(); // Store singleton weakref
301 globalObjects_[instid] = classes.front();