#ifndef PAGED_ARTICLE_H #define PAGED_ARTICLE_H #include #include "core/containers/vector.h" #include "core/string.h" #include "core/file_cache.h" #include "core/http/web_node.h" #include "core/http/request.h" struct Article { String url; String summary_page; std::map pages; FileCache *file_cache; Article() { file_cache = new FileCache(); } ~Article() { for (std::map::iterator it = pages.begin(); it != pages.end(); ++it) { delete ((*it).second); } pages.clear(); delete file_cache; } }; class PagedArticle : public WebNode { RCPP_OBJECT(PagedArticle, WebNode); public: void handle_request_main(Request *request); void load(); Article *load_folder(const String &folder, const String &path); void generate_summaries(); void generate_summary(Article *article); PagedArticle(); ~PagedArticle(); std::map pages; String folder; String base_path; }; #endif