00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 class StateTool : public drizzled::plugin::TableFunction
00024 {
00025 drizzled::sql_var_t option_type;
00026
00027 public:
00028
00029 StateTool(const char *arg, bool global);
00030
00031 virtual drizzled::drizzle_show_var *getVariables()= 0;
00032
00033 class Generator : public drizzled::plugin::TableFunction::Generator
00034 {
00035 drizzled::sql_var_t option_type;
00036 drizzled::drizzle_show_var *variables;
00037
00038 void fill(const std::string &name, char *value, drizzled::SHOW_TYPE show_type);
00039
00040 public:
00041 Generator(drizzled::Field **arg, drizzled::sql_var_t option_arg,
00042 drizzled::drizzle_show_var *show_arg);
00043 ~Generator();
00044
00045 bool populate();
00046
00047 };
00048
00049 Generator *generator(drizzled::Field **arg)
00050 {
00051 return new Generator(arg, option_type, getVariables());
00052 }
00053 };
00054