#ifndef HANDLERFACTORY_H #define HANDLERFACTORY_H #include #include "handler.h" #include "../template.h" class HandlerFactory { HandlerConfig &handlerConfig; Template &templ; Database &db; UrlProvider &urlProvider; ICache &cache; template inline std::unique_ptr produce(Session &userSession) { return std::make_unique(handlerConfig, templ, db, userSession, urlProvider, cache); } public: HandlerFactory(HandlerConfig &handlerConfig, Template &templ, Database &db, UrlProvider &urlprovider, ICache &cache) : handlerConfig(handlerConfig), templ(templ), db(db), urlProvider(urlprovider), cache(cache) { } std::unique_ptr createHandler(const std::string &action, Session &userSession); }; #endif // HANDLERFACTORY_H