21 #include <drizzled/plugin/scheduler.h>
22 #include <drizzled/errmsg_print.h>
23 #include <drizzled/gettext.h>
27 typedef std::vector<plugin::Scheduler*> schedulers_t;
29 static schedulers_t g_schedulers;
30 static plugin::Scheduler* g_scheduler= NULL;
32 bool plugin::Scheduler::addPlugin(plugin::Scheduler *sched)
34 BOOST_FOREACH(schedulers_t::reference it, g_schedulers)
36 if (it->getName() != sched->getName())
38 errmsg_printf(error::ERROR, _(
"Attempted to register a scheduler %s, but a scheduler has already been registered with that name.\n"), sched->getName().c_str());
42 g_schedulers.push_back(sched);
46 void plugin::Scheduler::removePlugin(plugin::Scheduler *sched)
48 g_schedulers.erase(std::find(g_schedulers.begin(), g_schedulers.end(), sched));
51 bool plugin::Scheduler::setPlugin(
const std::string& name)
53 BOOST_FOREACH(schedulers_t::reference it, g_schedulers)
55 if (it->getName() != name)
58 g_scheduler->deactivate();
60 g_scheduler->activate();
63 errmsg_printf(error::WARN, _(
"Attempted to configure %s as the scheduler, which did not exist.\n"), name.c_str());
67 plugin::Scheduler *plugin::Scheduler::getScheduler()