~ubuntu-branches/ubuntu/wily/dovecot/wily

« back to all changes in this revision

Viewing changes to src/lib-fts/fts-tokenizer-private.h

  • Committer: Package Import Robot
  • Author(s): Jelmer Vernooij
  • Date: 2015-05-24 15:01:19 UTC
  • mto: (4.1.53 sid)
  • mto: This revision was merged to the branch mainline in revision 102.
  • Revision ID: package-import@ubuntu.com-20150524150119-hsh6cbr1fqseapga
Tags: upstream-2.2.18
ImportĀ upstreamĀ versionĀ 2.2.18

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef FTS_TOKENIZER_PRIVATE_H
 
2
#define FTS_TOKENIZER_PRIVATE_H
 
3
 
 
4
#include "fts-tokenizer.h"
 
5
 
 
6
#define FTS_TOKENIZER_CLASSES_NR 2
 
7
 
 
8
struct fts_tokenizer_vfuncs {
 
9
        int (*create)(const char *const *settings,
 
10
                      struct fts_tokenizer **tokenizer_r, const char **error_r);
 
11
        void (*destroy)(struct fts_tokenizer *tok);
 
12
 
 
13
        void (*reset)(struct fts_tokenizer *tok);
 
14
        int (*next)(struct fts_tokenizer *tok, const unsigned char *data,
 
15
                    size_t size, size_t *skip_r, const char **token_r,
 
16
                    const char **error_r);
 
17
};
 
18
 
 
19
enum fts_tokenizer_parent_state {
 
20
        FTS_TOKENIZER_PARENT_STATE_ADD_DATA = 0,
 
21
        FTS_TOKENIZER_PARENT_STATE_NEXT_OUTPUT,
 
22
        FTS_TOKENIZER_PARENT_STATE_FINALIZE
 
23
};
 
24
 
 
25
struct fts_tokenizer {
 
26
        const char *name;
 
27
        const struct fts_tokenizer_vfuncs *v;
 
28
        int refcount;
 
29
 
 
30
        struct fts_tokenizer *parent;
 
31
        buffer_t *parent_input;
 
32
        enum fts_tokenizer_parent_state parent_state;
 
33
 
 
34
        const unsigned char *prev_data;
 
35
        size_t prev_size;
 
36
        size_t prev_skip;
 
37
        bool prev_reply_finished;
 
38
        bool skip_parents; /* Return token as is, do not hand to parents. */
 
39
};
 
40
 
 
41
void fts_tokenizer_register(const struct fts_tokenizer *tok_class);
 
42
void fts_tokenizer_unregister(const struct fts_tokenizer *tok_class);
 
43
 
 
44
#endif