diff options
Diffstat (limited to 'src/libstat/backends/backends.h')
-rw-r--r-- | src/libstat/backends/backends.h | 136 |
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_ */ |