aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstat/backends/backends.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstat/backends/backends.h')
-rw-r--r--src/libstat/backends/backends.h136
1 files changed, 80 insertions, 56 deletions
diff --git a/src/libstat/backends/backends.h b/src/libstat/backends/backends.h
index 025e9bf34..fa3785540 100644
--- a/src/libstat/backends/backends.h
+++ b/src/libstat/backends/backends.h
@@ -21,6 +21,10 @@
#define RSPAMD_DEFAULT_BACKEND "mmap"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* Forwarded declarations */
struct rspamd_classifier_config;
struct rspamd_statfile_config;
@@ -32,73 +36,93 @@ struct rspamd_task;
struct rspamd_stat_backend {
const char *name;
- gpointer (*init)(struct rspamd_stat_ctx *ctx, struct rspamd_config *cfg,
- struct rspamd_statfile *st);
- gpointer (*runtime)(struct rspamd_task *task,
- struct rspamd_statfile_config *stcf, gboolean learn, gpointer ctx);
- gboolean (*process_tokens)(struct rspamd_task *task, GPtrArray *tokens,
- gint id,
- gpointer ctx);
- gboolean (*finalize_process)(struct rspamd_task *task,
- gpointer runtime, gpointer ctx);
- gboolean (*learn_tokens)(struct rspamd_task *task, GPtrArray *tokens,
- gint id,
- gpointer ctx);
- gulong (*total_learns)(struct rspamd_task *task,
- gpointer runtime, gpointer ctx);
- gboolean (*finalize_learn)(struct rspamd_task *task,
- gpointer runtime, gpointer ctx, GError **err);
- gulong (*inc_learns)(struct rspamd_task *task,
- gpointer runtime, gpointer ctx);
- gulong (*dec_learns)(struct rspamd_task *task,
- gpointer runtime, gpointer ctx);
- ucl_object_t* (*get_stat)(gpointer runtime, gpointer ctx);
- void (*close)(gpointer ctx);
-
- gpointer (*load_tokenizer_config)(gpointer runtime, gsize *sz);
+
+ gpointer (*init) (struct rspamd_stat_ctx *ctx, struct rspamd_config *cfg,
+ struct rspamd_statfile *st);
+
+ gpointer (*runtime) (struct rspamd_task *task,
+ struct rspamd_statfile_config *stcf, gboolean learn, gpointer ctx);
+
+ gboolean (*process_tokens) (struct rspamd_task *task, GPtrArray *tokens,
+ gint id,
+ gpointer ctx);
+
+ gboolean (*finalize_process) (struct rspamd_task *task,
+ gpointer runtime, gpointer ctx);
+
+ gboolean (*learn_tokens) (struct rspamd_task *task, GPtrArray *tokens,
+ gint id,
+ gpointer ctx);
+
+ gulong (*total_learns) (struct rspamd_task *task,
+ gpointer runtime, gpointer ctx);
+
+ gboolean (*finalize_learn) (struct rspamd_task *task,
+ gpointer runtime, gpointer ctx, GError **err);
+
+ gulong (*inc_learns) (struct rspamd_task *task,
+ gpointer runtime, gpointer ctx);
+
+ gulong (*dec_learns) (struct rspamd_task *task,
+ gpointer runtime, gpointer ctx);
+
+ ucl_object_t *(*get_stat) (gpointer runtime, gpointer ctx);
+
+ void (*close) (gpointer ctx);
+
+ gpointer (*load_tokenizer_config) (gpointer runtime, gsize *sz);
+
gpointer ctx;
};
#define RSPAMD_STAT_BACKEND_DEF(name) \
- gpointer rspamd_##name##_init (struct rspamd_stat_ctx *ctx, \
- struct rspamd_config *cfg, struct rspamd_statfile *st); \
- gpointer rspamd_##name##_runtime (struct rspamd_task *task, \
- struct rspamd_statfile_config *stcf, \
- gboolean learn, gpointer ctx); \
- gboolean rspamd_##name##_process_tokens (struct rspamd_task *task, \
+ gpointer rspamd_##name##_init (struct rspamd_stat_ctx *ctx, \
+ struct rspamd_config *cfg, struct rspamd_statfile *st); \
+ gpointer rspamd_##name##_runtime (struct rspamd_task *task, \
+ struct rspamd_statfile_config *stcf, \
+ gboolean learn, gpointer ctx); \
+ gboolean rspamd_##name##_process_tokens (struct rspamd_task *task, \
GPtrArray *tokens, gint id, \
- gpointer ctx); \
- gboolean rspamd_##name##_finalize_process (struct rspamd_task *task, \
- gpointer runtime, \
- gpointer ctx); \
- gboolean rspamd_##name##_learn_tokens (struct rspamd_task *task, \
+ gpointer ctx); \
+ gboolean rspamd_##name##_finalize_process (struct rspamd_task *task, \
+ gpointer runtime, \
+ gpointer ctx); \
+ gboolean rspamd_##name##_learn_tokens (struct rspamd_task *task, \
GPtrArray *tokens, gint id, \
- gpointer ctx); \
- gboolean rspamd_##name##_finalize_learn (struct rspamd_task *task, \
- gpointer runtime, \
- gpointer ctx, GError **err); \
- gulong rspamd_##name##_total_learns (struct rspamd_task *task, \
- gpointer runtime, \
- gpointer ctx); \
- gulong rspamd_##name##_inc_learns (struct rspamd_task *task, \
- gpointer runtime, \
- gpointer ctx); \
- gulong rspamd_##name##_dec_learns (struct rspamd_task *task, \
- gpointer runtime, \
- gpointer ctx); \
- gulong rspamd_##name##_learns (struct rspamd_task *task, \
- gpointer runtime, \
- gpointer ctx); \
- ucl_object_t * rspamd_##name##_get_stat (gpointer runtime, \
- gpointer ctx); \
- gpointer rspamd_##name##_load_tokenizer_config (gpointer runtime, \
- gsize *len); \
- void rspamd_##name##_close (gpointer ctx)
+ gpointer ctx); \
+ gboolean rspamd_##name##_finalize_learn (struct rspamd_task *task, \
+ gpointer runtime, \
+ gpointer ctx, GError **err); \
+ gulong rspamd_##name##_total_learns (struct rspamd_task *task, \
+ gpointer runtime, \
+ gpointer ctx); \
+ gulong rspamd_##name##_inc_learns (struct rspamd_task *task, \
+ gpointer runtime, \
+ gpointer ctx); \
+ gulong rspamd_##name##_dec_learns (struct rspamd_task *task, \
+ gpointer runtime, \
+ gpointer ctx); \
+ gulong rspamd_##name##_learns (struct rspamd_task *task, \
+ gpointer runtime, \
+ gpointer ctx); \
+ ucl_object_t * rspamd_##name##_get_stat (gpointer runtime, \
+ gpointer ctx); \
+ gpointer rspamd_##name##_load_tokenizer_config (gpointer runtime, \
+ gsize *len); \
+ void rspamd_##name##_close (gpointer ctx)
RSPAMD_STAT_BACKEND_DEF(mmaped_file);
+
RSPAMD_STAT_BACKEND_DEF(sqlite3);
+
#ifdef WITH_HIREDIS
+
RSPAMD_STAT_BACKEND_DEF(redis);
+
+#endif
+
+#ifdef __cplusplus
+}
#endif
#endif /* BACKENDS_H_ */