#ifndef MATADOR_RESOLVER_SERVICE_HPP #define MATADOR_RESOLVER_SERVICE_HPP #include "matador/sql/producer_resolver_factory.hpp" namespace matador::sql { class resolver_service { public: template std::shared_ptr> object_resolver() const { return object_resolver_factory_.resolver(); } template std::shared_ptr> collection_resolver(const std::type_index &root_type, const std::string &collection_name) const { return collection_resolver_factory_.resolver(root_type, collection_name); } void register_object_resolver(std::shared_ptr &&resolver); void register_collection_resolver(std::shared_ptr&& resolver); private: sql::producer_resolver_factory object_resolver_factory_; sql::producer_collection_resolver_factory collection_resolver_factory_; }; } #endif // MATADOR_RESOLVER_SERVICE_HPP