#ifndef seafire__resources__resource_handler_hxx_ #define seafire__resources__resource_handler_hxx_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace seafire::resources { template class resource_handler_t { public: using resource_type = R; using factory_type = F; explicit resource_handler_t(factory_type factory, FactoryArgs&&... args); factory_type const& factory() const { return factory_; } void on_request(server::request_t& req, server::response_t& res) const; void operator()(server::request_t& req, server::response_t& res) const { on_request(req, res); } private: factory_type factory_; std::tuple factory_args_; }; template> H use_resource(F factory, FactoryArgs&&... args); } // namespace seafire::resources #include #endif