Program Listing for File tempDB.cpp
↰ Return to documentation for file (include/MainObjects/tempDBObject/tempDB.cpp
)
#include "tempDB.hpp"
#include "PDJE_LOG_SETTER.hpp"
bool
tempDB::Open(const fs::path &projectRoot)
{
if (tempROOT.has_value())
tempROOT.reset();
tempROOT.emplace();
bool openRes = tempROOT->openDB((projectRoot / fs::path("LOCALDB")));
if (!openRes) {
critlog("failed to open local database. from tempDB Open. path: ");
fs::path logPath = (projectRoot / fs::path("LOCALDB"));
critlog(logPath.generic_string());
}
return openRes;
}
bool
tempDB::BuildProject(trackdata &td, std::vector<musdata> &mds)
{
auto dbposition = tempROOT->getRoot();
tempROOT.reset();
try {
if (!fs::remove_all(dbposition)) {
critlog("failed to remove local database. from tempDB "
"BuildProject. path: ");
critlog(dbposition.generic_string());
return false;
}
} catch (std::exception &e) {
critlog("failed to remove local database. from tempDB BuildProject. "
"ErrException: ");
critlog(e.what());
return false;
}
tempROOT.emplace();
if (!tempROOT->openDB(dbposition)) {
critlog(
"failed to open local database. from tempDB BuildProject. path: ");
critlog(dbposition.generic_string());
return false;
}
if (!(tempROOT.value() <= td)) {
critlog("failed to push trackdata to local database. from tempDB "
"BuildProject. trackTitle: ");
critlog(td.trackTitle);
return false;
}
for (auto &i : mds) {
if (!(tempROOT.value() <= i)) {
critlog("failed to push musicdata to local database. from tempDB "
"BuildProject. musicTitle: ");
critlog(i.title);
return false;
}
}
return true;
}