~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/module/context.h

Merge in Joe's transaction id code.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
18
 */
19
19
 
20
 
#ifndef DRIZZLED_PLUGIN_CONTEXT_H
21
 
#define DRIZZLED_PLUGIN_CONTEXT_H
 
20
#ifndef DRIZZLED_MODULE_CONTEXT_H
 
21
#define DRIZZLED_MODULE_CONTEXT_H
22
22
 
23
23
/**
24
24
 * @file Defines a Plugin Context
25
25
 *
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
28
28
 * actions.
29
29
 *
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.
36
36
 */
37
37
 
38
 
#include "drizzled/plugin/registry.h"
 
38
#include "drizzled/module/registry.h"
39
39
 
40
40
namespace drizzled
41
41
{
42
42
 
43
43
class sys_var;
44
44
 
45
 
namespace plugin
 
45
namespace module
46
46
{
 
47
 
47
48
class Module;
 
49
class option_map;
48
50
 
49
51
class Context
50
52
{
51
53
private:
52
 
  Registry &registry;
53
 
  Module *module;
 
54
  module::Registry &registry;
 
55
  module::Module *module;
54
56
 
55
57
  Context(const Context&);
56
58
  Context& operator=(const Context&);
57
59
public:
58
60
 
59
 
  Context(Registry &registry_arg,
60
 
          Module *module_arg) :
 
61
  Context(module::Registry &registry_arg,
 
62
          module::Module *module_arg) :
61
63
     registry(registry_arg),
62
64
     module(module_arg)
63
65
  { }
76
78
  }
77
79
 
78
80
  void registerVariable(sys_var *var);
 
81
 
 
82
  option_map getOptions();
 
83
 
 
84
  static std::string prepend_name(std::string module_name,
 
85
                                  const std::string &var_name);
79
86
};
80
87
 
81
 
inline void Context::registerVariable(sys_var *)
82
 
{
83
 
/* In here, you can do:
84
 
  sys_var->append_name_prefix(module->getName());
85
 
  register_variable_whatever();
86
 
*/
87
 
}
88
 
 
89
 
} /* end namespace plugin */
90
 
} /* end namespace drizzled */
91
 
 
92
 
#endif /* DRIZZLED_PLUGIN_CONTEXT_H */
 
88
 
 
89
} /* namespace module */
 
90
} /* namespace drizzled */
 
91
 
 
92
#endif /* DRIZZLED_MODULE_CONTEXT_H */