From 35613f0860a2d8cb643ca8de006de08503e48e53 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 18 Oct 2008 17:58:45 +0000 Subject: example module --- src/core/module.cc | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'src/core/module.cc') diff --git a/src/core/module.cc b/src/core/module.cc index 319d651..eec250e 100644 --- a/src/core/module.cc +++ b/src/core/module.cc @@ -14,6 +14,8 @@ namespace core /*-- static functions ----------------------------------------------*/ Module *Module::module_preload = 0; +Module *Module::module_active = 0; + Module::Registry Module::module_registry; Module *Module::find(const std::string &label) @@ -60,7 +62,7 @@ Module *Module::load(const char *label) return 0; } - con_print << " module" << module->label() << " " << module->name() << std::endl; + con_print << " module " << module->label() << " " << module->name() << std::endl; module_preload = module; return module; } @@ -88,11 +90,11 @@ void Module::list() /*-- instance functions --------------------------------------------*/ -Module::Module(const char *label, const char *name) : +Module::Module(const char *label, const char *name, bool interactive) : module_label(label), module_name(name) { module_running = false; - module_interactive = true; + module_interactive = interactive; } Module::~Module() @@ -101,9 +103,25 @@ Module::~Module() module_name.clear(); } +void Module::run() +{ + module_active = this; + module_running = true; + + init(); +} + +void Module::terminate() +{ + shutdown(); + module_running = false; + module_active = 0; +} + void Module::abort() { module_running = false; + module_active = 0; } } -- cgit v1.2.3