17
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
#ifndef DRIZZLED_MODULE_CONTEXT_H
21
#define DRIZZLED_MODULE_CONTEXT_H
20
#ifndef DRIZZLED_PLUGIN_CONTEXT_H
21
#define DRIZZLED_PLUGIN_CONTEXT_H
24
24
* @file Defines a Plugin Context
26
* A module::Context object is a proxy object containing state information
26
* A plugin::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 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
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
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/module/registry.h>
40
#include <drizzled/visibility.h>
38
#include "drizzled/plugin/registry.h"
53
class DRIZZLED_API Context
56
module::Registry ®istry;
57
module::Module *module;
59
55
Context(const Context&);
60
56
Context& operator=(const Context&);
63
Context(module::Registry ®istry_arg,
64
module::Module *module_arg) :
59
Context(Registry ®istry_arg,
65
61
registry(registry_arg),
82
78
void registerVariable(sys_var *var);
84
option_map getOptions();
86
static std::string prepend_name(std::string module_name,
87
const std::string &var_name);
91
} /* namespace module */
92
} /* namespace drizzled */
94
#endif /* DRIZZLED_MODULE_CONTEXT_H */
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 */