diff options
author | Aatir <aatrapps@gmail.com> | 2019-12-10 15:27:16 -0600 |
---|---|---|
committer | Matt Spinler <spinler@us.ibm.com> | 2020-01-14 10:13:35 -0600 |
commit | bad5f8a2331a150824002cf54227af71ffc34fe8 (patch) | |
tree | a1f4389e9a07eff159278c2e1cbd7ae5859539fa /extensions | |
parent | 37822f68048c00f49d3b2ac354c2bb80deec1af5 (diff) | |
download | phosphor-logging-bad5f8a2331a150824002cf54227af71ffc34fe8.tar.gz phosphor-logging-bad5f8a2331a150824002cf54227af71ffc34fe8.zip |
PEL: Taking regex calls out of PEL listing function
Taking out regex calls to improve time complexity
Change-Id: Id0ca32bf78b006b3c8e03ac95206c670f92d4002
Signed-off-by: Aatir <aatrapps@gmail.com>
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/openpower-pels/tools/peltool.cpp | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/extensions/openpower-pels/tools/peltool.cpp b/extensions/openpower-pels/tools/peltool.cpp index 10646de..5c040ca 100644 --- a/extensions/openpower-pels/tools/peltool.cpp +++ b/extensions/openpower-pels/tools/peltool.cpp @@ -35,21 +35,6 @@ namespace file_error = sdbusplus::xyz::openbmc_project::Common::File::Error; namespace message = openpower::pels::message; namespace pv = openpower::pels::pel_values; -std::string ltrim(const std::string& s) -{ - return std::regex_replace(s, std::regex("^\\s+"), std::string("")); -} - -std::string rtrim(const std::string& s) -{ - return std::regex_replace(s, std::regex("\\s+$"), std::string("")); -} - -std::string trim(const std::string& s) -{ - return ltrim(rtrim(s)); -} - /** * @brief helper function to get PEL commit timestamp from file name * @retrun BCDTime - PEL commit timestamp @@ -180,7 +165,7 @@ bool ends_with(const std::string& str, const std::string& end) * @param[in] std::string Name of file with raw PEL * @return std::vector<uint8_t> char vector read from raw PEL file. */ -std::vector<uint8_t> getFileData(std::string name) +std::vector<uint8_t> getFileData(const std::string& name) { std::ifstream file(name, std::ifstream::in); if (file.good()) @@ -196,6 +181,21 @@ std::vector<uint8_t> getFileData(std::string name) } } +/** + * @brief helper function to trim trailing whitespaces + * @return std::string - trimmed string + * @param[in] std::string - string to trim + */ +const char* ws = " \t\n\r\f\v"; +std::string trim(std::string s, const char* t = ws) +{ + if (s.find_last_not_of(t) != std::string::npos) + { + s.erase(s.find_last_not_of(t) + 1); + } + return s; +} + template <typename T> std::string genPELJSON(T itr, bool hidden) { @@ -213,10 +213,8 @@ std::string genPELJSON(T itr, bool hidden) try { std::vector<uint8_t> data = getFileData(fileName); - if (!data.empty()) { - PEL pel{data}; std::bitset<16> actionFlags{pel.userHeader().actionFlags()}; if (pel.valid() && (hidden || !actionFlags.test(hiddenFlagBit))) @@ -310,7 +308,6 @@ void printList(bool order, bool hidden) fileNameToTimestamp((*it).path().filename())); } } - std::string val; auto buildJSON = [&listStr, &hidden](const auto& i) { listStr += genPELJSON(i, hidden); }; @@ -349,7 +346,7 @@ int main(int argc, char** argv) app.add_option("-f,--file", fileName, "Display a PEL using its Raw PEL file"); app.add_option("-i, --id", idPEL, "Display a PEL based on its ID"); - app.add_flag("-l", listPEL, "List PELS"); + app.add_flag("-l", listPEL, "List PELs"); app.add_flag("-r", listPELDescOrd, "Reverse order of output"); app.add_flag("-s", listPELShowHidden, "Show hidden PELs"); CLI11_PARSE(app, argc, argv); |