#ifndef CONTENT_H #define CONTENT_H 1 #include <inja/inja.hpp> #include <string> #include <tuple> #include <vector> typedef std::vector<std::string> Redirections; class Content { public: virtual bool Init() = 0; virtual void Shutdown() = 0; virtual bool Render(std::string & out) = 0; virtual std::string const & GetBasePath() const = 0; virtual Redirections const & GetRedirections() const = 0; }; class TemplatedContent : public Content { public: explicit TemplatedContent(std::string filesystemPath); virtual bool Init(); virtual void Shutdown(); virtual bool Render(std::string & out); void SetTemplateData(nlohmann::json & data); private: std::string m_FilesystemPath; nlohmann::json m_TemplateData; }; #endif