17
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
#ifndef DRIZZLED_PLUGIN_CONTEXT_H
21
#define DRIZZLED_PLUGIN_CONTEXT_H
20
#ifndef DRIZZLED_MODULE_CONTEXT_H
21
#define DRIZZLED_MODULE_CONTEXT_H
24
24
* @file Defines a Plugin Context
26
* A plugin::Context object is a proxy object containing state information
26
* A module::Context object is a proxy object containing state information
27
27
* about the plugin being registered that knows how to perform registration
30
* The plugin registration system creates a new plugin::Context for each
31
* plugin::Module during the initializtion phase and passes a reference to
32
* the plugin::Context to the module's init method. This allows the plugin
33
* to call registration methods without having access to larger plugin::Registry
30
* The plugin registration system creates a new module::Context for each
31
* module::Module during the initializtion phase and passes a reference to
32
* the module::Context to the module's init method. This allows the plugin
33
* to call registration methods without having access to larger module::Registry
34
34
* calls. It also provides a filter layer through which calls are made in order
35
35
* to force things like proper name prefixing and the like.
38
#include "drizzled/plugin/registry.h"
38
#include "drizzled/module/registry.h"
54
module::Registry ®istry;
55
module::Module *module;
55
57
Context(const Context&);
56
58
Context& operator=(const Context&);
59
Context(Registry ®istry_arg,
61
Context(module::Registry ®istry_arg,
62
module::Module *module_arg) :
61
63
registry(registry_arg),
78
80
void registerVariable(sys_var *var);
82
option_map getOptions();
84
static std::string prepend_name(std::string module_name,
85
const std::string &var_name);
81
inline void Context::registerVariable(sys_var *)
83
/* In here, you can do:
84
sys_var->append_name_prefix(module->getName());
85
register_variable_whatever();
89
} /* end namespace plugin */
90
} /* end namespace drizzled */
92
#endif /* DRIZZLED_PLUGIN_CONTEXT_H */
89
} /* namespace module */
90
} /* namespace drizzled */
92
#endif /* DRIZZLED_MODULE_CONTEXT_H */