~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/plugin/context.h

  • Committer: Monty Taylor
  • Date: 2010-05-12 05:00:55 UTC
  • mto: (1527.1.5 staging)
  • mto: This revision was merged to the branch mainline in revision 1529.
  • Revision ID: mordred@inaugust.com-20100512050055-i0kvg8xpr9dupz54
Wrap the libraries in if BUILD_*_PLUGIN so that they don't build when we're
disabling.

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_MODULE_CONTEXT_H
21
 
#define DRIZZLED_MODULE_CONTEXT_H
 
20
#ifndef DRIZZLED_PLUGIN_CONTEXT_H
 
21
#define DRIZZLED_PLUGIN_CONTEXT_H
22
22
 
23
23
/**
24
24
 * @file Defines a Plugin Context
25
25
 *
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
28
28
 * actions.
29
29
 *
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.
36
36
 */
37
37
 
38
 
#include <drizzled/module/registry.h>
39
 
 
40
 
#include <drizzled/visibility.h>
 
38
#include "drizzled/plugin/registry.h"
41
39
 
42
40
namespace drizzled
43
41
{
44
42
 
45
43
class sys_var;
46
44
 
47
 
namespace module
 
45
namespace plugin
48
46
{
49
 
 
50
47
class Module;
51
 
class option_map;
52
48
 
53
 
class DRIZZLED_API Context
 
49
class Context
54
50
{
55
51
private:
56
 
  module::Registry &registry;
57
 
  module::Module *module;
 
52
  Registry &registry;
 
53
  Module *module;
58
54
 
59
55
  Context(const Context&);
60
56
  Context& operator=(const Context&);
61
57
public:
62
58
 
63
 
  Context(module::Registry &registry_arg,
64
 
          module::Module *module_arg) :
 
59
  Context(Registry &registry_arg,
 
60
          Module *module_arg) :
65
61
     registry(registry_arg),
66
62
     module(module_arg)
67
63
  { }
80
76
  }
81
77
 
82
78
  void registerVariable(sys_var *var);
83
 
 
84
 
  option_map getOptions();
85
 
 
86
 
  static std::string prepend_name(std::string module_name,
87
 
                                  const std::string &var_name);
88
79
};
89
80
 
90
 
 
91
 
} /* namespace module */
92
 
} /* namespace drizzled */
93
 
 
94
 
#endif /* DRIZZLED_MODULE_CONTEXT_H */
 
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 */