22 #include <boost/program_options.hpp>
23 #include <boost/filesystem.hpp>
25 #include <drizzled/module/manifest.h>
26 #include <drizzled/module/module.h>
27 #include <drizzled/plugin/version.h>
28 #include <drizzled/module/context.h>
31 #include <drizzled/lex_string.h>
32 #include <drizzled/sys_var.h>
42 extern boost::filesystem::path plugin_dir;
51 #define PANDORA_CPP_NAME(x) _drizzled_ ## x ## _plugin_
52 #define PANDORA_PLUGIN_NAME(x) PANDORA_CPP_NAME(x)
53 #define DRIZZLE_DECLARE_PLUGIN \
54 DRIZZLED_API ::drizzled::module::Manifest PANDORA_PLUGIN_NAME(PANDORA_MODULE_NAME)=
57 #define DRIZZLE_DECLARE_PLUGIN_END
58 #define DRIZZLE_PLUGIN(init,system,options) \
59 DRIZZLE_DECLARE_PLUGIN \
62 STRINGIFY_ARG(PANDORA_MODULE_NAME), \
63 STRINGIFY_ARG(PANDORA_MODULE_VERSION), \
64 STRINGIFY_ARG(PANDORA_MODULE_AUTHOR), \
65 STRINGIFY_ARG(PANDORA_MODULE_TITLE), \
66 PANDORA_MODULE_LICENSE, \
68 STRINGIFY_ARG(PANDORA_MODULE_DEPENDENCIES), \
78 #define PLUGIN_VAR_READONLY 0x0200
79 #define PLUGIN_VAR_OPCMDARG 0x2000
80 #define PLUGIN_VAR_MEMALLOC 0x8000
82 struct drizzle_sys_var;
104 typedef int (*var_check_func)(Session*, drizzle_sys_var*,
void* save, drizzle_value*);
120 typedef void (*var_update_func)(Session*, drizzle_sys_var*,
void*,
const void* save);
127 struct drizzle_sys_var
131 void plugin_opt_set_limits(
option *options,
const drizzle_sys_var *opt);
136 const char *(*val_str)(
drizzle_value *,
char *buffer,
int *length);
137 int (*val_real)(drizzle_value *,
double *realbuf);
138 int (*val_int)(drizzle_value *, int64_t *intbuf);
146 extern bool plugin_init(
module::Registry&, boost::program_options::options_description &long_options);
150 extern void plugin_sessionvar_init(Session*);
151 extern void plugin_sessionvar_cleanup(Session*);
153 DRIZZLED_API int64_t session_test_options(
const Session*, int64_t test_options);
154 void compose_plugin_add(
const std::vector<std::string>& options);
155 void compose_plugin_remove(
const std::vector<std::string>& options);
156 void notify_plugin_load(
const std::string& in_plugin_load);
TODO: Rename this file - func.h is stupid.
Visibility Control Macros.
DRIZZLED_API int tmpfile(const char *prefix)
void my_print_help_inc_plugins(option *main_options)