Added stl map QString comparator.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user