summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorAatir <aatrapps@gmail.com>2019-12-10 15:27:16 -0600
committerMatt Spinler <spinler@us.ibm.com>2020-01-14 10:13:35 -0600
commitbad5f8a2331a150824002cf54227af71ffc34fe8 (patch)
treea1f4389e9a07eff159278c2e1cbd7ae5859539fa /extensions
parent37822f68048c00f49d3b2ac354c2bb80deec1af5 (diff)
downloadphosphor-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.cpp37
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);
OpenPOWER on IntegriCloud