From 1cf39d0ef1fa907dba1dfa12acd3c8ace12c3835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=BChl?= Date: Mon, 26 Jan 2026 16:20:16 +0100 Subject: [PATCH] collection_resolver progress --- include/matador/object/collection_proxy.hpp | 21 ++++++++++--------- .../matador/object/collection_resolver.hpp | 4 ++-- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/include/matador/object/collection_proxy.hpp b/include/matador/object/collection_proxy.hpp index 3929549..0384d4e 100644 --- a/include/matador/object/collection_proxy.hpp +++ b/include/matador/object/collection_proxy.hpp @@ -4,6 +4,7 @@ #include #include "matador/object/object_ptr.hpp" +#include "matador/object/collection_resolver.hpp" #include "matador/utils/identifier.hpp" @@ -25,13 +26,13 @@ public: }; -template -class collection_resolver : public abstract_collection_resolver { -public: - collection_resolver() : abstract_collection_resolver(typeid(Type)) {} - - virtual std::shared_ptr resolve(const utils::identifier& id) = 0; -}; +// template +// class collection_resolver : public abstract_collection_resolver { +// public: +// collection_resolver() : abstract_collection_resolver(typeid(Type)) {} +// +// virtual std::shared_ptr resolve(const utils::identifier& id) = 0; +// }; template class collection_proxy final { @@ -39,11 +40,11 @@ public: collection_proxy() = default; // Lazy - collection_proxy(std::weak_ptr> resolver, utils::identifier owner_id) + collection_proxy(std::weak_ptr> resolver, utils::identifier owner_id) : owner_id_(std::move(owner_id)), resolver_(std::move(resolver)) {} // Eager - collection_proxy(std::weak_ptr> resolver, std::vector items) + collection_proxy(std::weak_ptr> resolver, std::vector items) : items_(std::move(items)), resolver_(std::move(resolver)) {} // Transient @@ -80,7 +81,7 @@ private: const utils::identifier owner_id_; std::atomic_bool loaded_{false}; std::vector items_; - std::weak_ptr> resolver_{}; + std::weak_ptr> resolver_{}; mutable std::mutex mutex_{}; }; } diff --git a/include/matador/object/collection_resolver.hpp b/include/matador/object/collection_resolver.hpp index 4c03fdb..db76a59 100644 --- a/include/matador/object/collection_resolver.hpp +++ b/include/matador/object/collection_resolver.hpp @@ -11,9 +11,9 @@ namespace matador::object { template class collection_resolver : public abstract_type_resolver { public: - collection_resolver() : abstract_type_resolver(typeid(std::vector>)) {} + collection_resolver() : abstract_type_resolver(typeid(std::vector)) {} - virtual std::vector> resolve(const utils::identifier& id) = 0; + virtual std::vector resolve(const utils::identifier& id) = 0; }; } #endif //MATADOR_COLLECTION_RESOLVER_HPP \ No newline at end of file