object generation progress

This commit is contained in:
Sascha Kühl
2025-12-10 17:05:24 +01:00
parent 9b7b74524f
commit 5afb616205
9 changed files with 59 additions and 45 deletions
+14
View File
@@ -9,6 +9,17 @@ object_generator::object_generator(repository& repo, const std::shared_ptr<objec
: repo_(repo)
, object_(object) {}
std::shared_ptr<object> object_generator::acquire_object(repository &repo, const std::type_index &ti, const std::string& name) {
if (repo.has_object_for_type(ti)) {
auto obj = repo.object_for_type(ti);
repo.remove_object_for_type(ti);
obj->update_name(name);
return obj;
}
return repo.provide_object_in_advance(ti, std::make_shared<object>(name));
}
void object_generator::on_revision(const char* id, uint64_t& rev) {
on_attribute(id, rev);
}
@@ -61,6 +72,9 @@ std::shared_ptr<class object> object_generator::fk_object(const std::type_index&
return result->get().object();
}
if (repo_.has_object_for_type(ti)) {
return repo_.object_for_type(ti);
}
return repo_.provide_object_in_advance(ti, std::make_shared<object>(""));
}
}