MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
extension.h
1 /* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 #ifndef MEMCACHED_EXTENSION_H
3 #define MEMCACHED_EXTENSION_H
4 
5 #include <memcached/types.h>
6 #include <memcached/server_api.h>
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
23  typedef enum {
32 
33  typedef enum {
48 
53  typedef struct extension_daemon_descriptor {
58  const char* (*get_name)(void);
59 
69 
70  typedef enum {
71  EXTENSION_LOG_DETAIL,
72  EXTENSION_LOG_DEBUG,
73  EXTENSION_LOG_INFO,
74  EXTENSION_LOG_WARNING
75  } EXTENSION_LOG_LEVEL;
76 
88  typedef struct {
93  const char* (*get_name)(void);
94 
102  void (*log)(EXTENSION_LOG_LEVEL severity,
103  const void* client_cookie,
104  const char *fmt, ...);
106 
107  typedef struct {
108  EXTENSION_LOGGER_DESCRIPTOR* (*get_logger)(void);
109  EXTENSION_LOG_LEVEL (*get_level)(void);
110  void (*set_level)(EXTENSION_LOG_LEVEL severity);
111  } SERVER_LOG_API;
112 
113  typedef struct {
114  char *value;
115  size_t length;
116  } token_t;
117 
133  const char* (*get_name)(const void *cmd_cookie);
134 
157  bool (*accept)(const void *cmd_cookie,
158  void *cookie,
159  int argc,
160  token_t *argv,
161  size_t *ndata,
162  char **ptr);
163 
174  ENGINE_ERROR_CODE (*execute)(const void *cmd_cookie,
175  const void *cookie,
176  int argc, token_t *argv,
177  ENGINE_ERROR_CODE (*response_handler)(const void *cookie,
178  int nbytes,
179  const char *dta));
180 
187  void (*abort)(const void *cmd_cookie, const void *cookie);
188 
194  const void *cookie;
195 
205 
216  typedef EXTENSION_ERROR_CODE (*MEMCACHED_EXTENSIONS_INITIALIZE)(const char *config, GET_SERVER_API get_server_api);
217 
218 
223  typedef struct {
231  bool (*register_extension)(extension_type_t type, void *extension);
232 
239  void (*unregister_extension)(extension_type_t type, void *extension);
240 
252  void *(*get_extension)(extension_type_t type);
254 
259 #ifdef __cplusplus
260 }
261 #endif
262 
263 #endif