Files
2017-04-11 15:49:21 +02:00

45 lines
797 B
C++
Executable File

#pragma once
#include <string>
#include <map>
#include <functional>
namespace wfr {
namespace scheduling {
class AbstractScheduler;
class SchedulerManager {
private:
static SchedulerManager* singleton;
private:
typedef std::map<std::string, std::function<AbstractScheduler*()>> factoryMap_t;
std::string defaultScheduler;
factoryMap_t schedulerFactories;
private:
SchedulerManager(std::string defaultScheduler);
public:
static void init(int argc, char** argv);
static void finish();
static SchedulerManager& getInstance();
public:
~SchedulerManager() {}
AbstractScheduler* getDefaultScheduler();
AbstractScheduler* getSchedulerByName(std::string& name);
void markSchedulerForDeletion(AbstractScheduler* scheduler);
};
} /* namespace scheduling */
} /* namespace wfr */