28 lines
991 B
C++
28 lines
991 B
C++
#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<class Type>
|
|
std::shared_ptr<object::object_resolver<Type>> object_resolver() const {
|
|
return object_resolver_factory_.resolver<Type>();
|
|
}
|
|
|
|
template<class Type>
|
|
std::shared_ptr<object::collection_resolver<Type>> collection_resolver(const std::type_index &root_type, const std::string &collection_name) const {
|
|
return collection_resolver_factory_.resolver<Type>(root_type, collection_name);
|
|
}
|
|
|
|
void register_object_resolver(std::shared_ptr<object::abstract_type_resolver> &&resolver);
|
|
void register_collection_resolver(std::shared_ptr<object::abstract_collection_resolver>&& resolver);
|
|
|
|
private:
|
|
sql::producer_resolver_factory object_resolver_factory_;
|
|
sql::producer_collection_resolver_factory collection_resolver_factory_;
|
|
};
|
|
}
|
|
#endif // MATADOR_RESOLVER_SERVICE_HPP
|