Files
fail/src/core/cpn/CampaignManager.cc
Horst Schirmeier f2e8c508de DatabaseCampaign: fix progress bar for >1 variant
Change-Id: I21843249830c67699214b6bed71f452b6ca03cb2
2020-12-16 15:39:39 +01:00

62 lines
1.3 KiB
C++

#include <cstdlib>
#include "CampaignManager.hpp"
#include "util/Logger.hpp"
#include "JobServer.hpp"
namespace fail {
static Logger log_send("CampaignManager");
CampaignManager campaignmanager;
CampaignManager::~CampaignManager() { delete m_jobserver; }
bool CampaignManager::runCampaign(Campaign *c) {
fail::CommandLine &cmd = fail::CommandLine::Inst();
if (!cmd.parse()) {
log_send << "Error parsing arguments." << std::endl;
exit(-1);
}
if (!m_jobserver) {
m_jobserver = (cmd[port].count() > 0)
? new JobServer(std::atoi(cmd[port].first()->arg))
: new JobServer;
}
m_currentCampaign = c;
bool ret = c->run();
m_jobserver->done();
return ret;
}
void CampaignManager::addParam(ExperimentData *exp)
{
m_jobserver->addParam(exp);
}
ExperimentData *CampaignManager::getDone() { return m_jobserver->getDone(); }
void CampaignManager::noMoreParameters()
{
m_jobserver->setNoMoreExperiments();
}
void CampaignManager::setTotalCount(uint64_t count)
{
m_jobserver->setTotalCount(count);
}
void CampaignManager::increaseTotalCount(uint64_t count)
{
m_jobserver->increaseTotalCount(count);
}
void CampaignManager::skipJobs(uint64_t count)
{
m_jobserver->skipJobs(count);
}
void CampaignManager::done() { m_jobserver->done(); }
} // end-of-namespace: fail