23#ifndef VOTCA_XTP_PROGRESSOBSERVER_H
24#define VOTCA_XTP_PROGRESSOBSERVER_H
30#include <boost/interprocess/sync/file_lock.hpp>
31#include <boost/program_options.hpp>
42template <
typename JobContainer>
45 using Job =
typename JobContainer::value_type;
49 void InitCmdLineOpts(
const boost::program_options::variables_map &optsMap);
70 using iterator =
typename JobContainer::iterator;
75 std::unique_ptr<boost::interprocess::file_lock>
flock_;
void LockProgFile(QMThread &thread)
typename JobContainer::value_type Job
std::vector< Job * > jobsToProc_
typename JobContainer::iterator iterator
void InitFromProgFile(std::string progFile, QMThread &thread)
void ReportJobDone(Job &job, Result &res, QMThread &thread)
ProgObserver::Job * RequestNextJob(QMThread &thread)
typename std::vector< Job * >::iterator iterator_vec
std::string GenerateTime()
typename Job::JobResult Result
std::map< std::string, bool > restart_stats_
std::map< std::string, bool > restart_hosts_
std::string GenerateHost()
void ReleaseProgFile(QMThread &thread)
void SyncWithProgFile(QMThread &thread)
void InitCmdLineOpts(const boost::program_options::variables_map &optsMap)
std::unique_ptr< boost::interprocess::file_lock > flock_
std::vector< Job * > jobsToSync_
base class for all analysis tools