]> git.saurik.com Git - apple/icu.git/blob - icuSources/tools/makeconv/makeconv.h
ICU-531.48.tar.gz
[apple/icu.git] / icuSources / tools / makeconv / makeconv.h
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__ */