1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 #ifndef MBFL_IDENT_H
32 #define MBFL_IDENT_H
33
34 #include "mbfl_defs.h"
35 #include "mbfl_encoding.h"
36
37
38
39
40 typedef struct _mbfl_identify_filter mbfl_identify_filter;
41
42 struct _mbfl_identify_filter {
43 void (*filter_ctor)(mbfl_identify_filter *filter);
44 void (*filter_dtor)(mbfl_identify_filter *filter);
45 int (*filter_function)(int c, mbfl_identify_filter *filter);
46 int status;
47 int flag;
48 int score;
49 const mbfl_encoding *encoding;
50 };
51
52 struct mbfl_identify_vtbl {
53 enum mbfl_no_encoding encoding;
54 void (*filter_ctor)(mbfl_identify_filter *filter);
55 void (*filter_dtor)(mbfl_identify_filter *filter);
56 int (*filter_function)(int c, mbfl_identify_filter *filter);
57 };
58
59 MBFLAPI extern const struct mbfl_identify_vtbl * mbfl_identify_filter_get_vtbl(enum mbfl_no_encoding encoding);
60 MBFLAPI extern mbfl_identify_filter * mbfl_identify_filter_new(enum mbfl_no_encoding encoding);
61 MBFLAPI extern mbfl_identify_filter * mbfl_identify_filter_new2(const mbfl_encoding *encoding);
62 MBFLAPI extern void mbfl_identify_filter_delete(mbfl_identify_filter *filter);
63 MBFLAPI extern int mbfl_identify_filter_init(mbfl_identify_filter *filter, enum mbfl_no_encoding encoding);
64 MBFLAPI extern int mbfl_identify_filter_init2(mbfl_identify_filter *filter, const mbfl_encoding *encoding);
65 MBFLAPI void mbfl_identify_filter_cleanup(mbfl_identify_filter *filter);
66
67 MBFLAPI extern void mbfl_filt_ident_common_ctor(mbfl_identify_filter *filter);
68 MBFLAPI extern void mbfl_filt_ident_common_dtor(mbfl_identify_filter *filter);
69 MBFLAPI extern void mbfl_filt_ident_false_ctor(mbfl_identify_filter *filter);
70
71 MBFLAPI extern int mbfl_filt_ident_false(int c, mbfl_identify_filter *filter);
72 MBFLAPI extern int mbfl_filt_ident_true(int c, mbfl_identify_filter *filter);
73
74 #endif