diff --git a/iparser.h b/iparser.h index 3835e86..aa79ec5 100644 --- a/iparser.h +++ b/iparser.h @@ -8,10 +8,10 @@ class IParser { public: - virtual std::string extractCommand(std::string cmdname, std::string content) const = 0; - virtual std::vector extractHeadlines(std::string content) const = 0; - virtual std::string parse(const PageDao &pagedao, UrlProvider &provider, std::string content) const = 0; - virtual std::vector extractCategories(std::string content) const = 0; + virtual std::string extractCommand(std::string cmdname, const std::string &content) const = 0; + virtual std::vector extractHeadlines(const std::string &content) const = 0; + virtual std::string parse(const PageDao &pagedao, UrlProvider &provider, const std::string &content) const = 0; + virtual std::vector extractCategories(const std::string &content) const = 0; virtual ~IParser(){}; }; diff --git a/parser.cpp b/parser.cpp index ae4e9be..17e7db8 100644 --- a/parser.cpp +++ b/parser.cpp @@ -27,7 +27,7 @@ SOFTWARE. #include "parser.h" #include "utils.h" #include "htmllink.h" -std::vector Parser::extractHeadlines(std::string content) const +std::vector Parser::extractHeadlines(const std::string &content) const { std::vector result; std::string reg = R"(\[h(1|2|3)\](.*?)\[/h\1\])"; @@ -46,7 +46,7 @@ std::vector Parser::extractHeadlines(std::string content) const return result; } -std::vector Parser::extractCategories(std::string content) const +std::vector Parser::extractCategories(const std::string &content) const { std::vector result; std::string reg = R"(\[category\](.*?)\[/category\])"; @@ -62,7 +62,7 @@ std::vector Parser::extractCategories(std::string content) const return result; } -std::string Parser::extractCommand(std::string cmdname, std::string content) const +std::string Parser::extractCommand(std::string cmdname, const std::string &content) const { std::string cmd = "[cmd:" + cmdname + "]"; std::string cmdend = "[/cmd:" + cmdname + "]"; @@ -116,7 +116,7 @@ std::string Parser::processLink(const PageDao &pageDao, UrlProvider &urlProvider return htmllink.render(); } -std::string Parser::parse(const PageDao &pagedao, UrlProvider &provider, std::string content) const +std::string Parser::parse(const PageDao &pagedao, UrlProvider &provider, const std::string &content) const { std::string result; // we don't care about commands, but we nevertheless replace them with empty strings diff --git a/parser.h b/parser.h index f34e12c..a9bb95c 100644 --- a/parser.h +++ b/parser.h @@ -8,10 +8,10 @@ class Parser : public IParser std::string processLink(const PageDao &pageDao, UrlProvider &urlProvider, std::smatch &match) const; public: - std::string extractCommand(std::string cmdname, std::string content) const; - std::vector extractHeadlines(std::string content) const override; - std::vector extractCategories(std::string content) const override; - std::string parse(const PageDao &pagedao, UrlProvider &provider, std::string content) const override; + std::string extractCommand(std::string cmdname, const std::string &content) const; + std::vector extractHeadlines(const std::string &content) const override; + std::vector extractCategories(const std::string &content) const override; + std::string parse(const PageDao &pagedao, UrlProvider &provider, const std::string &content) const override; using IParser::IParser; ~Parser(){}; };