Refactor configuration library
The configuration library has been refactored to make use of nlohmann macros to reduce boilerplate code. The nlohmann parser callback is used to decide whether to include configuration json objects directly, or if they need to be loaded from a sperate file.
This commit is contained in:
@@ -217,7 +217,7 @@ void SimulationDialog::saveConfiguration(QFile &file)
|
||||
|
||||
loadConfigurationFromTextFields();
|
||||
|
||||
std::string dump = DRAMSys::Config::dump(configuration, 4);
|
||||
std::string dump = nlohmann::json(configuration).dump(4);
|
||||
out << dump.c_str();
|
||||
}
|
||||
|
||||
@@ -252,13 +252,13 @@ void SimulationDialog::loadConfigurationFromTextFields()
|
||||
|
||||
try
|
||||
{
|
||||
from_dump(ui->addressMappingTextEdit->toPlainText().toStdString(), addressMapping);
|
||||
from_dump(ui->mcConfigTextEdit->toPlainText().toStdString(), mcConfig);
|
||||
from_dump(ui->memSpecTextEdit->toPlainText().toStdString(), memSpec);
|
||||
from_dump(ui->simConfigTextEdit->toPlainText().toStdString(), simConfig);
|
||||
nlohmann::json::parse(ui->addressMappingTextEdit->toPlainText().toStdString()).get_to(addressMapping);
|
||||
nlohmann::json::parse(ui->mcConfigTextEdit->toPlainText().toStdString()).get_to(mcConfig);
|
||||
nlohmann::json::parse(ui->memSpecTextEdit->toPlainText().toStdString()).get_to(memSpec);
|
||||
nlohmann::json::parse(ui->simConfigTextEdit->toPlainText().toStdString()).get_to(simConfig);
|
||||
|
||||
if (!ui->traceSetupTextEdit->toPlainText().toStdString().empty())
|
||||
from_dump(ui->traceSetupTextEdit->toPlainText().toStdString(), traceSetup);
|
||||
nlohmann::json::parse(ui->traceSetupTextEdit->toPlainText().toStdString()).get_to(traceSetup);
|
||||
}
|
||||
catch (const std::exception &e)
|
||||
{
|
||||
@@ -300,9 +300,9 @@ void SimulationDialog::loadConfiguration()
|
||||
{
|
||||
ui->simulationIdLabel->setEnabled(true);
|
||||
ui->simulationId->setEnabled(true);
|
||||
ui->simulationId->setText(configuration.simulationId.c_str());
|
||||
ui->simulationId->setText(configuration.simulationid.c_str());
|
||||
|
||||
ui->simulationIdLineEdit->setText(configuration.simulationId.c_str());
|
||||
ui->simulationIdLineEdit->setText(configuration.simulationid.c_str());
|
||||
|
||||
loadSimConfig();
|
||||
loadMcConfig();
|
||||
@@ -316,7 +316,7 @@ void SimulationDialog::loadSimConfig()
|
||||
{
|
||||
ui->simConfigTextEdit->clear();
|
||||
|
||||
std::string dump = DRAMSys::Config::dump(configuration.simConfig, 4);
|
||||
std::string dump = nlohmann::json(configuration.simconfig).dump(4);
|
||||
ui->simConfigTextEdit->setText(dump.c_str());
|
||||
}
|
||||
|
||||
@@ -324,7 +324,7 @@ void SimulationDialog::loadMcConfig()
|
||||
{
|
||||
ui->mcConfigTextEdit->clear();
|
||||
|
||||
std::string dump = DRAMSys::Config::dump(configuration.mcConfig, 4);
|
||||
std::string dump = nlohmann::json(configuration.mcconfig).dump(4);
|
||||
ui->mcConfigTextEdit->setText(dump.c_str());
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ void SimulationDialog::loadMemSpec()
|
||||
{
|
||||
ui->memSpecTextEdit->clear();
|
||||
|
||||
std::string dump = DRAMSys::Config::dump(configuration.memSpec, 4);
|
||||
std::string dump = nlohmann::json(configuration.memspec).dump(4);
|
||||
ui->memSpecTextEdit->setText(dump.c_str());
|
||||
}
|
||||
|
||||
@@ -340,7 +340,7 @@ void SimulationDialog::loadAddressMapping()
|
||||
{
|
||||
ui->addressMappingTextEdit->clear();
|
||||
|
||||
std::string dump = DRAMSys::Config::dump(configuration.addressMapping, 4);
|
||||
std::string dump = nlohmann::json(configuration.addressmapping).dump(4);
|
||||
ui->addressMappingTextEdit->setText(dump.c_str());
|
||||
}
|
||||
|
||||
@@ -348,9 +348,9 @@ void SimulationDialog::loadTraceSetup()
|
||||
{
|
||||
ui->traceSetupTextEdit->clear();
|
||||
|
||||
if (const auto &traceSetup = configuration.traceSetup)
|
||||
if (const auto &traceSetup = configuration.tracesetup)
|
||||
{
|
||||
std::string dump = DRAMSys::Config::dump(*traceSetup, 4);
|
||||
std::string dump = nlohmann::json(*traceSetup).dump(4);
|
||||
ui->traceSetupTextEdit->setText(dump.c_str());
|
||||
}
|
||||
}
|
||||
@@ -359,7 +359,7 @@ void SimulationDialog::loadPreview()
|
||||
{
|
||||
ui->previewTextEdit->clear();
|
||||
|
||||
std::string dump = DRAMSys::Config::dump(configuration, 4);
|
||||
std::string dump = nlohmann::json(configuration).dump(4);
|
||||
ui->previewTextEdit->setText(dump.c_str());
|
||||
}
|
||||
|
||||
@@ -372,7 +372,7 @@ QFileInfoList SimulationDialog::getSimulationResults()
|
||||
|
||||
for (const auto &fileInfo : baseDir.entryInfoList())
|
||||
{
|
||||
if (fileInfo.baseName().startsWith(configuration.simulationId.c_str()))
|
||||
if (fileInfo.baseName().startsWith(configuration.simulationid.c_str()))
|
||||
{
|
||||
// Dont open tracefiles that are older than a few seconds
|
||||
if (fileInfo.metadataChangeTime().secsTo(QDateTime::currentDateTime()) > 30)
|
||||
|
||||
Reference in New Issue
Block a user