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