From 97715374412fbbe88f433e159a9d86101adfe409 Mon Sep 17 00:00:00 2001 From: Iron Prando da Silva Date: Thu, 9 Dec 2021 13:29:06 +0100 Subject: [PATCH] Added stl map QString comparator. --- .../timedependenciesIF.cpp | 22 +++++++++++-------- .../dramTimeDependencies/timedependenciesIF.h | 16 +++++++++++--- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.cpp b/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.cpp index 8f6c8c7f..692c87c4 100644 --- a/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.cpp +++ b/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.cpp @@ -8,16 +8,14 @@ DRAMTimeDependenciesIF::DRAMTimeDependenciesIF(const TraceDB& tdb) { } -std::map +DependencyMap DRAMTimeDependenciesIF::getDependencies(std::vector& dependencyFilter) const { - std::map dependenciesMap; + DependencyMap dependenciesMap; std::sort( dependencyFilter.begin(), dependencyFilter.end(), - [](const QString& s1, const QString& s2) { - return s1.compare(s2); - } + QStringsComparator::compareQStrings ); dependenciesMap = mSpecializedGetDependencies(); @@ -59,9 +57,7 @@ void DRAMTimeDependenciesIF::mFilterDependencyList(std::vector& dependencyFilter.begin(), dependencyFilter.end(), dep.phaseDep, - [](const QString& cmd, const QString& value) { - return value.compare(cmd); - } + QStringsComparator::compareQStrings ); if (it != dependencyFilter.end() && *it == dep.phaseDep) return true; @@ -76,7 +72,7 @@ void DRAMTimeDependenciesIF::mFilterDependencyList(std::vector& } -void DRAMTimeDependenciesIF::mFilterDependencyMap(std::map& dependencyMap, const std::vector& dependencyFilter) const { +void DRAMTimeDependenciesIF::mFilterDependencyMap(DependencyMap& dependencyMap, const std::vector& dependencyFilter) const { if (!dependencyMap.empty()) { auto itFilter = dependencyFilter.begin(); @@ -131,3 +127,11 @@ size_t DRAMTimeDependenciesIF::mFindVectorMaximum(const std::vectortimeValue; } + +bool QStringsComparator::operator()(const QString& s1, const QString& s2) { + return s1.compare(s2) < 0; +} + +bool QStringsComparator::compareQStrings(const QString& s1, const QString& s2) { + return s1.compare(s2) < 0; +} diff --git a/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.h b/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.h index 2d0c657f..a9bbde13 100644 --- a/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.h +++ b/DRAMSys/traceAnalyzer/businessObjects/dramTimeDependencies/timedependenciesIF.h @@ -22,16 +22,24 @@ struct PhaseTimeDependencies { size_t maxTime; }; + +struct QStringsComparator { + bool operator()(const QString& s1, const QString& s2); + static bool compareQStrings(const QString& s1, const QString& s2); +}; + +typedef std::map DependencyMap; + class DRAMTimeDependenciesIF { public: DRAMTimeDependenciesIF(const TraceDB& tdb); virtual ~DRAMTimeDependenciesIF() = default; - std::map getDependencies(std::vector& dependencyFilter) const; + DependencyMap getDependencies(std::vector& dependencyFilter) const; protected: void mFilterDependencyList(std::vector& dependencyList, const std::vector& dependencyFilter) const; - void mFilterDependencyMap(std::map& dependencyMap, const std::vector& dependencyFilter) const; + void mFilterDependencyMap(DependencyMap& dependencyMap, const std::vector& dependencyFilter) const; size_t mFindVectorMaximum(const std::vector& dependencyList) const; protected: @@ -40,8 +48,10 @@ protected: // To be implemented protected: virtual void mInitializeValues() = 0; - virtual std::map mSpecializedGetDependencies() const = 0; + virtual DependencyMap mSpecializedGetDependencies() const = 0; private: void mGetMemspec(const TraceDB& tdb); + }; +