Fix retrieval of CommandLengths in TraceAnalyzer and fix some warnings
This commit is contained in:
@@ -116,7 +116,7 @@ protected:
|
||||
friend class PhaseDependency;
|
||||
};
|
||||
|
||||
class REQ : public Phase
|
||||
class REQ final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -136,8 +136,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class RESP : public Phase
|
||||
class RESP final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -158,7 +157,7 @@ protected:
|
||||
|
||||
};
|
||||
/*
|
||||
class PREB: public Phase
|
||||
class PREB final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -173,7 +172,7 @@ protected:
|
||||
}
|
||||
};
|
||||
*/
|
||||
class PREPB : public Phase
|
||||
class PREPB final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -188,7 +187,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class PRESB : public Phase
|
||||
class PRESB final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -216,7 +215,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class PREAB : public Phase
|
||||
class PREAB final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -244,7 +243,7 @@ protected:
|
||||
}
|
||||
};
|
||||
/*
|
||||
class ACTB : public Phase
|
||||
class ACTB final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -259,7 +258,7 @@ protected:
|
||||
}
|
||||
};
|
||||
*/
|
||||
class ACT : public Phase
|
||||
class ACT final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -274,7 +273,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class RD : public Phase
|
||||
class RD final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -289,7 +288,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class RDA : public Phase
|
||||
class RDA final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -304,7 +303,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class WR : public Phase
|
||||
class WR final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -319,7 +318,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class WRA : public Phase
|
||||
class WRA final : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
@@ -360,7 +359,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class REFAB : public AUTO_REFRESH
|
||||
class REFAB final : public AUTO_REFRESH
|
||||
{
|
||||
public:
|
||||
using AUTO_REFRESH::AUTO_REFRESH;
|
||||
@@ -375,7 +374,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class RFMAB : public AUTO_REFRESH
|
||||
class RFMAB final : public AUTO_REFRESH
|
||||
{
|
||||
public:
|
||||
using AUTO_REFRESH::AUTO_REFRESH;
|
||||
@@ -396,8 +395,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class REFPB : public AUTO_REFRESH
|
||||
class REFPB final : public AUTO_REFRESH
|
||||
{
|
||||
public:
|
||||
using AUTO_REFRESH::AUTO_REFRESH;
|
||||
@@ -408,7 +406,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class REFP2B : public AUTO_REFRESH
|
||||
class REFP2B final : public AUTO_REFRESH
|
||||
{
|
||||
public:
|
||||
using AUTO_REFRESH::AUTO_REFRESH;
|
||||
@@ -423,7 +421,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class RFMP2B : public AUTO_REFRESH
|
||||
class RFMP2B final : public AUTO_REFRESH
|
||||
{
|
||||
public:
|
||||
using AUTO_REFRESH::AUTO_REFRESH;
|
||||
@@ -444,7 +442,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class REFSB : public AUTO_REFRESH
|
||||
class REFSB final : public AUTO_REFRESH
|
||||
{
|
||||
public:
|
||||
using AUTO_REFRESH::AUTO_REFRESH;
|
||||
@@ -459,7 +457,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class RFMSB : public AUTO_REFRESH
|
||||
class RFMSB final : public AUTO_REFRESH
|
||||
{
|
||||
public:
|
||||
using AUTO_REFRESH::AUTO_REFRESH;
|
||||
@@ -484,6 +482,8 @@ class PDNAB : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
virtual ~PDNAB() = default;
|
||||
|
||||
protected:
|
||||
QString Name() const override
|
||||
{
|
||||
@@ -508,7 +508,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class PDNA : public PDNAB
|
||||
class PDNA final : public PDNAB
|
||||
{
|
||||
public:
|
||||
using PDNAB::PDNAB;
|
||||
@@ -527,6 +527,8 @@ class PDNPB : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
virtual ~PDNPB() = default;
|
||||
|
||||
protected:
|
||||
QString Name() const override
|
||||
{
|
||||
@@ -551,7 +553,7 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class PDNP : public PDNPB
|
||||
class PDNP final : public PDNPB
|
||||
{
|
||||
public:
|
||||
using PDNPB::PDNPB;
|
||||
@@ -570,6 +572,8 @@ class SREFB : public Phase
|
||||
{
|
||||
public:
|
||||
using Phase::Phase;
|
||||
virtual ~SREFB() = default;
|
||||
|
||||
protected:
|
||||
QString Name() const override
|
||||
{
|
||||
|
||||
@@ -334,101 +334,80 @@ GeneralInfo TraceDB::getGeneralInfoFromDB()
|
||||
|
||||
CommandLengths TraceDB::getCommandLengthsFromDB()
|
||||
{
|
||||
QVariant parameter;
|
||||
parameter = getParameterFromTable("NOP", "CommandLengths");
|
||||
unsigned NOP = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("RD", "CommandLengths");
|
||||
unsigned RD = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("WR", "CommandLengths");
|
||||
unsigned WR = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("RDA", "CommandLengths");
|
||||
unsigned RDA = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("WRA", "CommandLengths");
|
||||
unsigned WRA = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("ACT", "CommandLengths");
|
||||
unsigned ACT = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("PREPB", "CommandLengths");
|
||||
unsigned PREPB;
|
||||
if (parameter.isValid())
|
||||
const std::string table = "CommandLengths";
|
||||
|
||||
auto getLengthFromDb = [=, &table](const std::string &command) -> QVariant
|
||||
{
|
||||
PREPB = parameter.toUInt();
|
||||
}
|
||||
else
|
||||
{
|
||||
parameter = getParameterFromTable("PRE", "CommandLengths");
|
||||
if (parameter.isValid())
|
||||
PREPB = parameter.toUInt();
|
||||
QSqlQuery query(("SELECT Length FROM " + table + " WHERE Command = \"" + command + "\"").c_str(), database);
|
||||
|
||||
if (query.first())
|
||||
return query.value(0);
|
||||
else
|
||||
PREPB = 1;
|
||||
}
|
||||
parameter = getParameterFromTable("REFPB", "CommandLengths");
|
||||
unsigned REFPB;
|
||||
if (parameter.isValid())
|
||||
return {};
|
||||
};
|
||||
|
||||
auto getCommandLength = [=, &table](const std::string &command) -> unsigned
|
||||
{
|
||||
REFPB = parameter.toUInt();
|
||||
}
|
||||
else
|
||||
{
|
||||
parameter = getParameterFromTable("REFB", "CommandLengths");
|
||||
if (parameter.isValid())
|
||||
REFPB = parameter.toUInt();
|
||||
QVariant length = getLengthFromDb(command);
|
||||
|
||||
if (length.isValid())
|
||||
return length.toUInt();
|
||||
else
|
||||
REFPB = 1;
|
||||
}
|
||||
parameter = getParameterFromTable("RFMPB", "CommandLengths");
|
||||
unsigned RFMPB = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("REFP2B", "CommandLengths");
|
||||
unsigned REFP2B = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("RFMP2B", "CommandLengths");
|
||||
unsigned RFMP2B = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("PRESB", "CommandLengths");
|
||||
unsigned PRESB = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("REFSB", "CommandLengths");
|
||||
unsigned REFSB = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("RFMSB", "CommandLengths");
|
||||
unsigned RFMSB = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("PREAB", "CommandLengths");
|
||||
unsigned PREAB;
|
||||
if (parameter.isValid())
|
||||
{
|
||||
qDebug() << "CommandLength for" << command.c_str() << "not present in table" << table.c_str()
|
||||
<< ". Defaulting to 1.";
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
|
||||
auto getCommandLengthOrElse = [=, &table](const std::string &command, const std::string &elseCommand) -> unsigned
|
||||
{
|
||||
PREAB = parameter.toUInt();
|
||||
}
|
||||
else
|
||||
{
|
||||
parameter = getParameterFromTable("PREA", "CommandLengths");
|
||||
if (parameter.isValid())
|
||||
PREAB = parameter.toUInt();
|
||||
QVariant length = getLengthFromDb(command);
|
||||
|
||||
if (length.isValid())
|
||||
return length.toUInt();
|
||||
else
|
||||
PREAB = 1;
|
||||
}
|
||||
parameter = getParameterFromTable("REFAB", "CommandLengths");
|
||||
unsigned REFAB;
|
||||
if (parameter.isValid())
|
||||
{
|
||||
REFAB = parameter.toUInt();
|
||||
}
|
||||
else
|
||||
{
|
||||
parameter = getParameterFromTable("REFA", "CommandLengths");
|
||||
if (parameter.isValid())
|
||||
REFAB = parameter.toUInt();
|
||||
else
|
||||
REFAB = 1;
|
||||
}
|
||||
parameter = getParameterFromTable("RFMAB", "CommandLengths");
|
||||
unsigned RFMAB = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("PDEA", "CommandLengths");
|
||||
unsigned PDEA = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("PDXA", "CommandLengths");
|
||||
unsigned PDXA = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("PDEP", "CommandLengths");
|
||||
unsigned PDEP = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("PDXP", "CommandLengths");
|
||||
unsigned PDXP = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("SREFEN", "CommandLengths");
|
||||
unsigned SREFEN = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
parameter = getParameterFromTable("SREFEX", "CommandLengths");
|
||||
unsigned SREFEX = parameter.isValid() ? parameter.toUInt() : 1;
|
||||
{
|
||||
length = getLengthFromDb(command);
|
||||
|
||||
if (length.isValid())
|
||||
return length.toUInt();
|
||||
else
|
||||
{
|
||||
qDebug() << "CommandLength for" << command.c_str() << "and" << elseCommand.c_str()
|
||||
<< "not present in table" << table.c_str() << ". Defaulting to 1.";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
unsigned NOP = getCommandLength("NOP");
|
||||
unsigned RD = getCommandLength("RD");
|
||||
unsigned WR = getCommandLength("RD");
|
||||
unsigned RDA = getCommandLength("RDA");
|
||||
unsigned WRA = getCommandLength("WRA");
|
||||
unsigned ACT = getCommandLength("ACT");
|
||||
|
||||
unsigned PREPB = getCommandLengthOrElse("PREPB", "PRE");
|
||||
unsigned REFPB = getCommandLengthOrElse("REFPB", "REFB");
|
||||
|
||||
unsigned RFMPB = getCommandLength("RFMPB");
|
||||
unsigned REFP2B = getCommandLength("REFP2B");
|
||||
unsigned RFMP2B = getCommandLength("RFMP2B");
|
||||
unsigned PRESB = getCommandLength("PRESB");
|
||||
unsigned REFSB = getCommandLength("REFSB");
|
||||
unsigned RFMSB = getCommandLength("RFMSB");
|
||||
|
||||
unsigned PREAB = getCommandLengthOrElse("PREAB", "PREA");
|
||||
unsigned REFAB = getCommandLengthOrElse("REFAB", "REFA");
|
||||
|
||||
unsigned RFMAB = getCommandLength("RFMAB");
|
||||
unsigned PDEA = getCommandLength("PDEA");
|
||||
unsigned PDXA = getCommandLength("PDXA");
|
||||
unsigned PDEP = getCommandLength("PDEP");
|
||||
unsigned PDXP = getCommandLength("PDXP");
|
||||
unsigned SREFEN = getCommandLength("SREFEN");
|
||||
unsigned SREFEX = getCommandLength("SREFEX");
|
||||
|
||||
return {NOP, RD, WR, RDA, WRA, ACT, PREPB, REFPB, RFMPB, REFP2B, RFMP2B, PRESB, REFSB, RFMSB,
|
||||
PREAB, REFAB, RFMAB, PDEA, PDXA, PDEP, PDXP, SREFEN, SREFEX};
|
||||
|
||||
@@ -115,7 +115,7 @@ private:
|
||||
QString pathToDB;
|
||||
QSqlDatabase database;
|
||||
GeneralInfo generalInfo;
|
||||
CommandLengths commandLengths{};
|
||||
CommandLengths commandLengths;
|
||||
|
||||
QSqlQuery insertPhaseQuery;
|
||||
QSqlQuery insertTransactionQuery;
|
||||
|
||||
Reference in New Issue
Block a user