object generation progress
This commit is contained in:
@@ -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>(""));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user