diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-01-23 13:50:17 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-01-23 13:50:17 +0000 |
commit | 8a05515078bc8fd3d642778fcae0d005a38ec7b0 (patch) | |
tree | 239d86bbbb5ba6bafdfa6aeaa41e848dcdc46079 /src/libstat/stat_internal.h | |
parent | 8f5509c65dc6907a7581518246a200236088423c (diff) | |
download | rspamd-8a05515078bc8fd3d642778fcae0d005a38ec7b0.tar.gz rspamd-8a05515078bc8fd3d642778fcae0d005a38ec7b0.zip |
Reorganize libstat API.
Diffstat (limited to 'src/libstat/stat_internal.h')
-rw-r--r-- | src/libstat/stat_internal.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/libstat/stat_internal.h b/src/libstat/stat_internal.h new file mode 100644 index 000000000..4aa625b27 --- /dev/null +++ b/src/libstat/stat_internal.h @@ -0,0 +1,70 @@ +/* Copyright (c) 2015, Vsevolod Stakhov + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL AUTHOR BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#ifndef STAT_INTERNAL_H_ +#define STAT_INTERNAL_H_ + +#include "config.h" +#include "task.h" +#include "classifiers/classifiers.h" +#include "tokenizers/tokenizers.h" +#include "backends/backends.h" + +struct rspamd_statfile_runtime { + struct rspamd_statfile_config *st; + guint64 hits; + guint64 total_hits; +}; + +struct rspamd_classifier_runtime { + double ham_prob; + double spam_prob; + guint64 total_spam; + guint64 total_ham; + guint64 processed_tokens; + gsize max_tokens; +}; + +struct rspamd_token_result { + double value; + struct rspamd_statfile_runtime *st_runtime; + + struct rspamd_classifier_runtime *cl_runtime; +}; + +#define RSPAMD_MAX_TOKEN_LEN 64 +typedef struct token_node_s { + guchar data[RSPAMD_MAX_TOKEN_LEN]; + guint datalen; + GArray *results; +} rspamd_token_t; + +struct rspamd_stat_ctx { + struct classifier *classifiers; + guint classifiers_count; + struct tokenizer *tokenizers; + guint tokenizers_count; + struct rspamd_stat_backend *backends; + guint backends_count; +}; + +#endif /* STAT_INTERNAL_H_ */ |