33 #include <drizzled/function/str/strfunc.h>
34 #include <drizzled/plugin/function.h>
36 #include "memcached_functions.h"
37 #include "memc_servers_set.h"
38 #include "memc_behavior_set.h"
40 #include "memc_stats.h"
42 #include "memc_get_by_key.h"
44 #include "memc_set_by_key.h"
47 #include "memc_replace.h"
48 #include "memc_replace_by_key.h"
49 #include "memc_delete.h"
50 #include "memc_delete_by_key.h"
53 #include "memc_prepend.h"
54 #include "memc_prepend_by_key.h"
56 #include "memc_cas_by_key.h"
57 #include "memc_increment.h"
58 #include "memc_decrement.h"
59 #include "memc_misc.h"
61 #include <libmemcached/memcached.h>
66 using namespace drizzled;
72 memcached_st *memc= NULL;
77 plugin::Create_function<MemcachedServersSet> *memc_servers_set= NULL;
78 plugin::Create_function<MemcachedBehaviorSet> *memc_behavior_set= NULL;
79 plugin::Create_function<MemcachedBehaviorGet> *memc_behavior_get= NULL;
80 plugin::Create_function<MemcachedStats> *memc_stats= NULL;
81 plugin::Create_function<MemcachedGet> *memc_get= NULL;
82 plugin::Create_function<MemcachedGetByKey> *memc_get_by_key= NULL;
83 plugin::Create_function<MemcachedSet> *memc_set= NULL;
84 plugin::Create_function<MemcachedSetByKey> *memc_set_by_key= NULL;
85 plugin::Create_function<MemcachedAdd> *memc_add= NULL;
86 plugin::Create_function<MemcachedAddByKey> *memc_add_by_key= NULL;
87 plugin::Create_function<MemcachedReplace> *memc_replace= NULL;
88 plugin::Create_function<MemcachedReplaceByKey> *memc_replace_by_key= NULL;
89 plugin::Create_function<MemcachedIncrement> *memc_increment= NULL;
90 plugin::Create_function<MemcachedDecrement> *memc_decrement= NULL;
91 plugin::Create_function<MemcachedDelete> *memc_delete= NULL;
92 plugin::Create_function<MemcachedDeleteByKey> *memc_delete_by_key= NULL;
93 plugin::Create_function<MemcachedAppend> *memc_append= NULL;
94 plugin::Create_function<MemcachedAppendByKey> *memc_append_by_key= NULL;
95 plugin::Create_function<MemcachedPrepend> *memc_prepend= NULL;
96 plugin::Create_function<MemcachedPrependByKey> *memc_prepend_by_key= NULL;
97 plugin::Create_function<MemcachedCas> *memc_cas= NULL;
98 plugin::Create_function<MemcachedCasByKey> *memc_cas_by_key= NULL;
99 plugin::Create_function<MemcachedServerCount> *memc_serv_count= NULL;
100 plugin::Create_function<MemcachedVersion> *memc_version= NULL;
104 memc_servers_set=
new plugin::Create_function<MemcachedServersSet>(
"memc_servers_set");
105 if (memc_servers_set == NULL)
110 memc_behavior_set=
new plugin::Create_function<MemcachedBehaviorSet>(
"memc_behavior_set");
111 if (memc_behavior_set == NULL)
116 memc_behavior_get=
new plugin::Create_function<MemcachedBehaviorGet>(
"memc_behavior_get");
117 if (memc_behavior_get == NULL)
122 memc_stats=
new plugin::Create_function<MemcachedStats>(
"memc_stats");
123 if (memc_stats == NULL)
128 memc_get=
new plugin::Create_function<MemcachedGet>(
"memc_get");
129 if (memc_get == NULL)
134 memc_get_by_key=
new plugin::Create_function<MemcachedGetByKey>(
"memc_get_by_key");
135 if (memc_get_by_key == NULL)
140 memc_set=
new plugin::Create_function<MemcachedSet>(
"memc_set");
141 if (memc_set == NULL)
145 memc_set_by_key=
new plugin::Create_function<MemcachedSetByKey>(
"memc_set_by_key");
146 if (memc_set_by_key == NULL)
151 memc_add=
new plugin::Create_function<MemcachedAdd>(
"memc_add");
157 memc_add_by_key=
new plugin::Create_function<MemcachedAddByKey>(
"memc_add_by_key");
158 if (memc_add_by_key == NULL)
163 memc_replace=
new plugin::Create_function<MemcachedReplace>(
"memc_replace");
164 if (memc_replace== NULL)
169 memc_replace_by_key=
new plugin::Create_function<MemcachedReplaceByKey>(
"memc_replace_by_key");
170 if (memc_replace_by_key == NULL)
175 memc_delete=
new plugin::Create_function<MemcachedDelete>(
"memc_delete");
176 if (memc_delete == NULL)
181 memc_delete_by_key=
new plugin::Create_function<MemcachedDeleteByKey>(
"memc_delete_by_key");
182 if (memc_delete_by_key == NULL)
187 memc_append=
new plugin::Create_function<MemcachedAppend>(
"memc_append");
188 if (memc_append == NULL)
193 memc_append_by_key=
new plugin::Create_function<MemcachedAppendByKey>(
"memc_append_by_key");
194 if (memc_append_by_key == NULL)
199 memc_prepend=
new plugin::Create_function<MemcachedPrepend>(
"memc_prepend");
200 if (memc_prepend == NULL)
205 memc_prepend_by_key=
new plugin::Create_function<MemcachedPrependByKey>(
"memc_prepend_by_key");
206 if (memc_prepend_by_key == NULL)
211 memc_cas=
new plugin::Create_function<MemcachedCas>(
"memc_cas");
212 if (memc_cas == NULL)
217 memc_cas_by_key=
new plugin::Create_function<MemcachedCasByKey>(
"memc_cas_by_key");
218 if (memc_cas_by_key == NULL)
223 memc_serv_count=
new plugin::Create_function<MemcachedServerCount>(
"memc_server_count");
224 if (memc_serv_count == NULL)
229 memc_version=
new plugin::Create_function<MemcachedVersion>(
"memc_libmemcached_version");
230 if (memc_version == NULL)
235 memc_increment=
new plugin::Create_function<MemcachedIncrement>(
"memc_increment");
236 if (memc_increment == NULL)
241 memc_decrement=
new plugin::Create_function<MemcachedDecrement>(
"memc_decrement");
242 if (memc_decrement == NULL)
250 void cleanupMemcUDF()
252 delete memc_servers_set;
253 delete memc_behavior_set;
254 delete memc_behavior_get;
257 delete memc_get_by_key;
259 delete memc_set_by_key;
261 delete memc_add_by_key;
263 delete memc_replace_by_key;
265 delete memc_delete_by_key;
267 delete memc_append_by_key;
269 delete memc_prepend_by_key;
271 delete memc_cas_by_key;
272 delete memc_serv_count;
274 delete memc_increment;
275 delete memc_decrement;
285 memc= memcached_create(NULL);
287 context.add(memc_servers_set);
288 context.add(memc_behavior_set);
289 context.add(memc_behavior_get);
290 context.add(memc_stats);
291 context.add(memc_get);
292 context.add(memc_get_by_key);
293 context.add(memc_set);
294 context.add(memc_set_by_key);
295 context.add(memc_add);
296 context.add(memc_add_by_key);
297 context.add(memc_replace);
298 context.add(memc_replace_by_key);
299 context.add(memc_delete);
300 context.add(memc_delete_by_key);
301 context.add(memc_append);
302 context.add(memc_append_by_key);
303 context.add(memc_prepend);
304 context.add(memc_prepend_by_key);
305 context.add(memc_cas);
306 context.add(memc_cas_by_key);
307 context.add(memc_serv_count);
308 context.add(memc_version);
309 context.add(memc_increment);
310 context.add(memc_decrement);
318 memcached_free(memc);
320 context.remove(memc_servers_set);
321 context.remove(memc_behavior_set);
322 context.remove(memc_behavior_get);
323 context.remove(memc_stats);
324 context.remove(memc_get);
325 context.remove(memc_get_by_key);
326 context.remove(memc_set);
327 context.remove(memc_set_by_key);
328 context.remove(memc_add);
329 context.remove(memc_add_by_key);
330 context.remove(memc_replace);
331 context.remove(memc_replace_by_key);
332 context.remove(memc_delete);
333 context.remove(memc_delete_by_key);
334 context.remove(memc_append);
335 context.remove(memc_append_by_key);
336 context.remove(memc_prepend);
337 context.remove(memc_prepend_by_key);
338 context.remove(memc_cas);
339 context.remove(memc_cas_by_key);
340 context.remove(memc_serv_count);
341 context.remove(memc_version);
342 context.remove(memc_increment);
343 context.remove(memc_decrement);
350 DRIZZLE_DECLARE_PLUGIN
353 "memcached_functions",
355 "Patrick Galbraith, Ronald Bradford, Padraig O'Sullivan",
356 N_(
"Memcached functions"),
363 DRIZZLE_DECLARE_PLUGIN_END;