relation_completer progress

This commit is contained in:
Sascha Kühl
2025-06-30 16:01:21 +02:00
parent 3add45dfdf
commit 5a7ab5d4d0
5 changed files with 146 additions and 26 deletions
+10 -6
View File
@@ -26,27 +26,31 @@ public:
[[nodiscard]] const object_definition& definition() const;
[[nodiscard]] std::shared_ptr<attribute_definition> reference_column() const;
bool has_primary_key() const;
[[nodiscard]] const utils::identifier& primary_key() const;
void register_relation_endpoint(const std::type_index &type, const relation_endpoint &endpoint);
void unregister_relation_endpoint(const std::type_index &type);
const_endpoint_iterator find_relation_endpoint(const std::type_index &type) const;
[[nodiscard]] const_endpoint_iterator find_relation_endpoint(const std::type_index &type) const;
endpoint_iterator find_relation_endpoint(const std::type_index &type);
const_endpoint_iterator find_relation_endpoint(const std::string &field) const;
[[nodiscard]] const_endpoint_iterator find_relation_endpoint(const std::string &field) const;
endpoint_iterator find_relation_endpoint(const std::string &field);
endpoint_iterator endpoint_begin();
const_endpoint_iterator endpoint_begin() const;
[[nodiscard]] const_endpoint_iterator endpoint_begin() const;
endpoint_iterator endpoint_end();
const_endpoint_iterator endpoint_end() const;
[[nodiscard]] const_endpoint_iterator endpoint_end() const;
std::size_t endpoints_size() const;
bool endpoints_empty() const;
[[nodiscard]] std::size_t endpoints_size() const;
[[nodiscard]] bool endpoints_empty() const;
protected:
basic_object_info(std::shared_ptr<schema_node> node, std::type_index type_index, utils::identifier &&pk, std::shared_ptr<attribute_definition> &&pk_column, object_definition &&definition);
basic_object_info(std::shared_ptr<schema_node> node, std::type_index type_index, utils::identifier &&pk, std::shared_ptr<attribute_definition> &&pk_column);
basic_object_info(std::shared_ptr<schema_node> node, std::type_index type_index, object_definition &&definition);
protected:
std::shared_ptr<schema_node> node_; /**< prototype node of the represented object type */