|
1 /* |
|
2 ******************************************************************************* |
|
3 * |
|
4 * Copyright (C) 2000-2010, International Business Machines |
|
5 * Corporation and others. All Rights Reserved. |
|
6 * |
|
7 ******************************************************************************* |
|
8 * file name: makeconv.h |
|
9 * encoding: US-ASCII |
|
10 * tab size: 8 (not used) |
|
11 * indentation:4 |
|
12 * |
|
13 * created on: 2000nov01 |
|
14 * created by: Markus W. Scherer |
|
15 */ |
|
16 |
|
17 #ifndef __MAKECONV_H__ |
|
18 #define __MAKECONV_H__ |
|
19 |
|
20 #include "unicode/utypes.h" |
|
21 #include "ucnv_bld.h" |
|
22 #include "unewdata.h" |
|
23 #include "ucm.h" |
|
24 |
|
25 /* exports from makeconv.c */ |
|
26 U_CFUNC UBool VERBOSE; |
|
27 U_CFUNC UBool SMALL; |
|
28 U_CFUNC UBool IGNORE_SISO_CHECK; |
|
29 |
|
30 /* converter table type for writing */ |
|
31 enum { |
|
32 TABLE_NONE, |
|
33 TABLE_BASE, |
|
34 TABLE_EXT, |
|
35 TABLE_BASE_AND_EXT |
|
36 }; |
|
37 |
|
38 /* abstract converter generator struct, C++ - style */ |
|
39 struct NewConverter; |
|
40 typedef struct NewConverter NewConverter; |
|
41 |
|
42 struct NewConverter { |
|
43 void |
|
44 (*close)(NewConverter *cnvData); |
|
45 |
|
46 /** is this byte sequence valid? */ |
|
47 UBool |
|
48 (*isValid)(NewConverter *cnvData, |
|
49 const uint8_t *bytes, int32_t length); |
|
50 |
|
51 UBool |
|
52 (*addTable)(NewConverter *cnvData, UCMTable *table, UConverterStaticData *staticData); |
|
53 |
|
54 uint32_t |
|
55 (*write)(NewConverter *cnvData, const UConverterStaticData *staticData, |
|
56 UNewDataMemory *pData, int32_t tableType); |
|
57 }; |
|
58 |
|
59 #endif /* __MAKECONV_H__ */ |