vcard_parser.h
1.87 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#ifndef VCARD_PARSER_H
#define VCARD_PARSER_H
#ifdef __VCARD_SUPPORT__
#include "kal_general_types.h"
#include "fs_type.h"
#include "vcard_lib.h"
#include "vcard_utility.h"
typedef struct
{
FS_HANDLE source;
vcard_property_enum property;
vcard_charset_enum default_charset;
vcard_parse_mode_enum mode;
kal_int32 error_code;
kal_uint16 percentage;
kal_int32 file_size;
kal_int32 process_char;
kal_int32 sequence;
kal_bool cancel;
kal_int32 app_buffer_size;
kal_int32 *app_buffer;
kal_int32 object_count;
vcard_object_struct *object;
vcard_parser_callback_type vp_callback;
vcard_parser_callback_ex_type vp_callback_ex;
void *user_data;
vcard_version_enum version;
kal_int32 grouping;
kal_int32 indent;
FS_HANDLE photo;
kal_int32 adr_count;
kal_int32 tel_count;
kal_int32 email_count;
kal_int32 url_count;
vcard_state_enum state;
vcard_tag_enum tag;
vcard_encoding_enum encoding;
vcard_charset_enum charset;
kal_char read_buffer[VCARD_MAX_READ_LENGTH];
kal_int32 read_offset;
kal_int32 read_length;
kal_bool line_begin;
kal_bool line_folding;
kal_char *line_buffer;
kal_int32 line_length;
kal_int32 name_offset;
kal_int32 param_offset;
kal_int32 data_offset;
kal_bool field_escape;
kal_int32 field_offset[VCARD_MAX_FIELD_COUNT];
kal_int32 field_length[VCARD_MAX_FIELD_COUNT];
kal_int32 field_count;
kal_uint8 decode_buffer[4];
kal_int32 decode_length;
} vcard_parser_struct;
vcard_parser_struct *vcard_malloc_parser(FS_HANDLE source, vcard_property_enum property);
kal_int32 vcard_parse_object(vcard_parser_struct *parser, kal_int32 object_offset);
kal_int32 vcard_parse_next_object(vcard_parser_struct *parser);
void vcard_free_parser(vcard_parser_struct *parser);
#endif /* __VCARD_SUPPORT__ */
#endif /* VCARD_PARSER_H */