object changes

This commit is contained in:
Sascha Kühl
2025-12-09 14:47:08 +01:00
parent d4a8801cd2
commit 4fcbe9c064
19 changed files with 109 additions and 92 deletions
+8 -1
View File
@@ -177,16 +177,22 @@ private:
static void insert_node(const node_ptr &parent, const node_ptr &child);
void remove_node(const node_ptr &node);
bool expecting_relation_node(const std::string &name) const;
[[nodiscard]] bool expecting_relation_node(const std::string &name) const;
void expect_relation_node(const std::string &name, const std::type_index &ti);
void remove_expected_relation_node(const std::string &name);
[[nodiscard]] std::shared_ptr<object> provide_object_in_advance(const std::type_index &ti, const std::shared_ptr<object>& obj);
[[nodiscard]] bool has_object_for_type(const std::type_index &ti) const;
[[nodiscard]] std::shared_ptr<object> object_for_type(const std::type_index &ti) const;
void remove_object_for_type(const std::type_index &ti);
private:
friend class internal::shadow_repository;
friend class repository_node;
friend class attribute_generator;
template < typename NodeType >
friend class foreign_node_completer;
friend class object_generator;
std::string name_;
std::shared_ptr<repository_node> root_;
@@ -197,6 +203,7 @@ private:
std::unordered_map<std::type_index, attribute*> missing_references_;
std::unordered_map<std::string, std::type_index> expected_relation_nodes_;
std::unordered_map<std::type_index, std::shared_ptr<object>> object_by_type_;
};
}