22 #include <plugin/protocol_dictionary/dictionary.h>
23 #include <drizzled/plugin/listen.h>
25 using namespace drizzled;
27 ProtocolTool::ProtocolTool() :
28 plugin::TableFunction(
"DATA_DICTIONARY",
"PROTOCOL_COUNTERS")
30 add_field(
"PROTOCOL");
32 add_field(
"VALUE", plugin::TableFunction::NUMBER, 0,
false);
35 ProtocolTool::Generator::Generator(
Field **arg) :
36 plugin::TableFunction::Generator(arg)
38 protocol_it= plugin::Listen::getListenProtocols().begin();
39 protocol= *protocol_it;
40 counter_it= protocol->getListenCounters().begin();
43 bool ProtocolTool::Generator::populate()
45 if (protocol_it == plugin::Listen::getListenProtocols().end())
48 protocol= *protocol_it;
50 while (counter_it == protocol->getListenCounters().end())
53 if (protocol_it == plugin::Listen::getListenProtocols().end())
55 protocol= *protocol_it;
56 counter_it= protocol->getListenCounters().begin();
64 void ProtocolTool::Generator::fill()
66 protocol= *protocol_it;
69 push(protocol->getName());
70 push(*counter->first);
71 push((uint64_t) *counter->second);
79 context.add(protocols);
83 DRIZZLE_DECLARE_PLUGIN
86 "protocol_dictionary",
89 N_(
"Dictionary of protocol counters"),
95 DRIZZLE_DECLARE_PLUGIN_END;