22
22
#include <drizzled/gettext.h>
23
23
#include <drizzled/connect.h>
24
24
#include "drizzled/plugin_registry.h"
25
#include "drizzled/registry.h"
27
29
SchedulerFactory *scheduler_factory= NULL;
29
static bool scheduler_inited= false; /* We must insist that only one of these plugins get loaded at a time */
32
extern char *opt_scheduler;
30
drizzled::Registry<SchedulerFactory *> all_schedulers;
34
32
bool add_scheduler_factory(SchedulerFactory *factory)
36
if (factory->getName() != opt_scheduler)
41
fprintf(stderr, "You cannot load more then one scheduler plugin\n");
34
if (all_schedulers.count(factory->getName()) != 0)
36
errmsg_printf(ERRMSG_LVL_ERROR,
37
_("Attempted to register a scheduler %s, but a scheduler "
38
"has already been registered with that name.\n"),
39
factory->getName().c_str());
42
all_schedulers.add(factory);
47
bool remove_scheduler_factory(SchedulerFactory *factory)
49
scheduler_factory= NULL;
50
all_schedulers.remove(factory);
55
bool set_scheduler_factory(const string& name)
58
SchedulerFactory *factory= all_schedulers.find(name);
61
errmsg_printf(ERRMSG_LVL_WARN,
62
_("Attempted to configure %s as the scheduler, which did "
63
"not exist.\n"), name.c_str());
44
66
scheduler_factory= factory;
46
scheduler_inited= true;
50
bool remove_scheduler_factory(SchedulerFactory *)
52
scheduler_factory= NULL;
53
scheduler_inited= false;