diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-01-05 15:20:28 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-01-05 15:20:28 +0000 |
commit | 603f3664584a2942b718a16a2c303212fdc4871a (patch) | |
tree | 4989a602effc84988e1bd378918e615aa02a1108 /src/libstat/classifiers | |
parent | 57a464ab523700fc7f2ab3f116724cd198799da8 (diff) | |
download | rspamd-603f3664584a2942b718a16a2c303212fdc4871a.tar.gz rspamd-603f3664584a2942b718a16a2c303212fdc4871a.zip |
Start rework
Diffstat (limited to 'src/libstat/classifiers')
-rw-r--r-- | src/libstat/classifiers/bayes.c | 16 | ||||
-rw-r--r-- | src/libstat/classifiers/classifiers.h | 25 |
2 files changed, 13 insertions, 28 deletions
diff --git a/src/libstat/classifiers/bayes.c b/src/libstat/classifiers/bayes.c index 180aa4658..a271a424a 100644 --- a/src/libstat/classifiers/bayes.c +++ b/src/libstat/classifiers/bayes.c @@ -191,21 +191,13 @@ bayes_normalize_prob (gdouble x) return a*x4 + b*x3 + c*x2 + d*xx; } -struct classifier_ctx * -bayes_init (rspamd_mempool_t *pool, struct rspamd_classifier_config *cfg) +void +bayes_init (rspamd_mempool_t *pool, struct rspamd_classifier *cl) { - struct classifier_ctx *ctx = - rspamd_mempool_alloc (pool, sizeof (struct classifier_ctx)); - - ctx->pool = pool; - ctx->cfg = cfg; - ctx->debug = FALSE; - - return ctx; } gboolean -bayes_classify (struct classifier_ctx * ctx, +bayes_classify (struct rspamd_classifier * ctx, GTree *input, struct rspamd_classifier_runtime *rt, struct rspamd_task *task) @@ -357,7 +349,7 @@ bayes_learn_ham_callback (gpointer key, gpointer value, gpointer data) } gboolean -bayes_learn_spam (struct classifier_ctx * ctx, +bayes_learn_spam (struct rspamd_classifier * ctx, GTree *input, struct rspamd_classifier_runtime *rt, struct rspamd_task *task, diff --git a/src/libstat/classifiers/classifiers.h b/src/libstat/classifiers/classifiers.h index 9a30039df..62abb0052 100644 --- a/src/libstat/classifiers/classifiers.h +++ b/src/libstat/classifiers/classifiers.h @@ -9,39 +9,32 @@ struct rspamd_classifier_config; struct rspamd_task; - -/* Common classifier structure */ -struct classifier_ctx { - rspamd_mempool_t *pool; - GHashTable *results; - gboolean debug; - struct rspamd_classifier_config *cfg; -}; +struct rspamd_classifier; struct token_node_s; struct rspamd_classifier_runtime; struct rspamd_stat_classifier { char *name; - struct classifier_ctx * (*init_func)(rspamd_mempool_t *pool, - struct rspamd_classifier_config *cf); - gboolean (*classify_func)(struct classifier_ctx * ctx, + void (*init_func)(rspamd_mempool_t *pool, + struct rspamd_classifier *cl); + gboolean (*classify_func)(struct rspamd_classifier * ctx, GTree *input, struct rspamd_classifier_runtime *rt, struct rspamd_task *task); - gboolean (*learn_spam_func)(struct classifier_ctx * ctx, + gboolean (*learn_spam_func)(struct rspamd_classifier * ctx, GTree *input, struct rspamd_classifier_runtime *rt, struct rspamd_task *task, gboolean is_spam, GError **err); }; /* Bayes algorithm */ -struct classifier_ctx * bayes_init (rspamd_mempool_t *pool, - struct rspamd_classifier_config *cf); -gboolean bayes_classify (struct classifier_ctx * ctx, +void bayes_init (rspamd_mempool_t *pool, + struct rspamd_classifier *); +gboolean bayes_classify (struct rspamd_classifier * ctx, GTree *input, struct rspamd_classifier_runtime *rt, struct rspamd_task *task); -gboolean bayes_learn_spam (struct classifier_ctx * ctx, +gboolean bayes_learn_spam (struct rspamd_classifier * ctx, GTree *input, struct rspamd_classifier_runtime *rt, struct rspamd_task *task, |