00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <config.h>
00022
00023 #include <plugin/registry_dictionary/dictionary.h>
00024
00025 using namespace drizzled;
00026
00027 PluginsTool::PluginsTool() :
00028 plugin::TableFunction("DATA_DICTIONARY", "PLUGINS")
00029 {
00030 add_field("PLUGIN_NAME");
00031 add_field("PLUGIN_TYPE");
00032 add_field("IS_ACTIVE", plugin::TableFunction::BOOLEAN, 0, false);
00033 add_field("MODULE_NAME");
00034 }
00035
00036 PluginsTool::Generator::Generator(Field **arg) :
00037 plugin::TableFunction::Generator(arg)
00038 {
00039 module::Registry ®istry= module::Registry::singleton();
00040 const plugin::Plugin::map &plugin_map=
00041 registry.getPluginsMap();
00042
00043 it= plugin_map.begin();
00044 end= plugin_map.end();
00045 }
00046
00047 bool PluginsTool::Generator::populate()
00048 {
00049 if (it == end)
00050 return false;
00051
00052 const plugin::Plugin *plugin= (*it).second;
00053
00054
00055 push(plugin->getName());
00056
00057
00058 push(plugin->getTypeName());
00059
00060
00061 push(plugin->isActive());
00062
00063
00064 push(plugin->getModuleName());
00065
00066 it++;
00067
00068 return true;
00069 }