Added stl map QString comparator.

This commit is contained in:
Iron Prando da Silva
2021-12-09 13:29:06 +01:00
parent 23c66e7e56
commit 9771537441
2 changed files with 26 additions and 12 deletions

View File

@@ -8,16 +8,14 @@ DRAMTimeDependenciesIF::DRAMTimeDependenciesIF(const TraceDB& tdb) {
}
std::map<QString, PhaseTimeDependencies>
DependencyMap
DRAMTimeDependenciesIF::getDependencies(std::vector<QString>& dependencyFilter) const {
std::map<QString, PhaseTimeDependencies> 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<TimeDependency>&
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<TimeDependency>&
}
void DRAMTimeDependenciesIF::mFilterDependencyMap(std::map<QString, PhaseTimeDependencies>& dependencyMap, const std::vector<QString>& dependencyFilter) const {
void DRAMTimeDependenciesIF::mFilterDependencyMap(DependencyMap& dependencyMap, const std::vector<QString>& dependencyFilter) const {
if (!dependencyMap.empty()) {
auto itFilter = dependencyFilter.begin();
@@ -131,3 +127,11 @@ size_t DRAMTimeDependenciesIF::mFindVectorMaximum(const std::vector<TimeDependen
return maxElement->timeValue;
}
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;
}

View File

@@ -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<QString, PhaseTimeDependencies, QStringsComparator> DependencyMap;
class DRAMTimeDependenciesIF {
public:
DRAMTimeDependenciesIF(const TraceDB& tdb);
virtual ~DRAMTimeDependenciesIF() = default;
std::map<QString, PhaseTimeDependencies> getDependencies(std::vector<QString>& dependencyFilter) const;
DependencyMap getDependencies(std::vector<QString>& dependencyFilter) const;
protected:
void mFilterDependencyList(std::vector<TimeDependency>& dependencyList, const std::vector<QString>& dependencyFilter) const;
void mFilterDependencyMap(std::map<QString, PhaseTimeDependencies>& dependencyMap, const std::vector<QString>& dependencyFilter) const;
void mFilterDependencyMap(DependencyMap& dependencyMap, const std::vector<QString>& dependencyFilter) const;
size_t mFindVectorMaximum(const std::vector<TimeDependency>& dependencyList) const;
protected:
@@ -40,8 +48,10 @@ protected:
// To be implemented
protected:
virtual void mInitializeValues() = 0;
virtual std::map<QString, PhaseTimeDependencies> mSpecializedGetDependencies() const = 0;
virtual DependencyMap mSpecializedGetDependencies() const = 0;
private:
void mGetMemspec(const TraceDB& tdb);
};