43
43
using namespace drizzled;
46
* Vectors of columns for I_S tables.
48
static vector<const plugin::ColumnInfo *> memcached_stats_columns;
49
static vector<const plugin::ColumnInfo *> memcached_analysis_columns;
52
* Methods for I_S tables.
54
static plugin::InfoSchemaMethods *memcached_stats_methods= NULL;
55
static plugin::InfoSchemaMethods *memcached_analysis_methods= NULL;
60
static plugin::InfoSchemaTable *memcached_stats_table= NULL;
61
static plugin::InfoSchemaTable *memcached_analysis_table= NULL;
46
* DATA_DICTIONARY tables.
48
static AnalysisTableTool *analysis_table_tool;
50
static StatsTableTool *stats_table_tool;
64
53
* System variable related variables.
66
55
static char *sysvar_memcached_servers= NULL;
69
* Populate the vectors of columns for each I_S table.
71
* @return false on success; true on failure.
73
static bool initColumns()
75
if (createMemcachedStatsColumns(memcached_stats_columns))
80
if (createMemcachedAnalysisColumns(memcached_analysis_columns))
89
* Clear the vectors of columns for each I_S table.
91
static void cleanupColumns()
93
clearMemcachedColumns(memcached_stats_columns);
94
clearMemcachedColumns(memcached_analysis_columns);
98
* Initialize the methods for each I_S table.
100
* @return false on success; true on failure
102
static bool initMethods()
104
memcached_stats_methods= new(std::nothrow)
105
MemcachedStatsISMethods();
106
if (! memcached_stats_methods)
111
memcached_analysis_methods= new(std::nothrow)
112
MemcachedAnalysisISMethods();
113
if (! memcached_analysis_methods)
122
* Delete memory allocated for the I_S table methods.
124
static void cleanupMethods()
126
delete memcached_stats_methods;
127
delete memcached_analysis_methods;
131
* Initialize the I_S tables related to memcached.
133
* @return false on success; true on failure
135
static bool initMemcachedTables()
137
memcached_stats_table= new(std::nothrow) plugin::InfoSchemaTable("MEMCACHED_STATS",
138
memcached_stats_columns,
139
-1, -1, false, false, 0,
140
memcached_stats_methods,
142
if (! memcached_stats_table)
147
memcached_analysis_table=
148
new(std::nothrow) plugin::InfoSchemaTable("MEMCACHED_ANALYSIS",
149
memcached_analysis_columns,
150
-1, -1, false, false, 0,
151
memcached_analysis_methods,
153
if (! memcached_analysis_table)
162
* Delete memory allocated for the I_S tables.
164
static void cleanupMemcachedTables()
166
delete memcached_stats_table;
167
delete memcached_analysis_table;
171
58
* Initialize the memcached stats plugin.
173
60
* @param[in] registry the drizzled::plugin::Registry singleton
176
63
static int init(plugin::Registry ®istry)
188
if (initMemcachedTables())
193
66
SysvarHolder &sysvar_holder= SysvarHolder::singleton();
194
67
sysvar_holder.setServersString(sysvar_memcached_servers);
196
69
/* we are good to go */
197
registry.add(memcached_stats_table);
198
registry.add(memcached_analysis_table);
70
stats_table_tool= new(std::nothrow)StatsTableTool;
71
registry.add(stats_table_tool);
73
analysis_table_tool= new(std::nothrow)AnalysisTableTool;
74
registry.add(analysis_table_tool);
209
85
static int deinit(plugin::Registry ®istry)
211
registry.remove(memcached_stats_table);
212
registry.remove(memcached_analysis_table);
216
cleanupMemcachedTables();
87
registry.remove(stats_table_tool);
88
delete stats_table_tool;
89
registry.remove(analysis_table_tool);
90
delete analysis_table_tool;