]> git.saurik.com Git - apple/icu.git/blob - icuSources/tools/makeconv/makeconv.h
ICU-66108.tar.gz
[apple/icu.git] / icuSources / tools / makeconv / makeconv.h
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 *
6 * Copyright (C) 2000-2010, International Business Machines
7 * Corporation and others. All Rights Reserved.
8 *
9 *******************************************************************************
10 * file name: makeconv.h
11 * encoding: UTF-8
12 * tab size: 8 (not used)
13 * indentation:4
14 *
15 * created on: 2000nov01
16 * created by: Markus W. Scherer
17 */
18
19 #ifndef __MAKECONV_H__
20 #define __MAKECONV_H__
21
22 #include "unicode/utypes.h"
23 #include "ucnv_bld.h"
24 #include "unewdata.h"
25 #include "ucm.h"
26
27 /* exports from makeconv.c */
28 U_CFUNC UBool VERBOSE;
29 U_CFUNC UBool SMALL;
30 U_CFUNC UBool IGNORE_SISO_CHECK;
31
32 /* converter table type for writing */
33 enum {
34 TABLE_NONE,
35 TABLE_BASE,
36 TABLE_EXT,
37 TABLE_BASE_AND_EXT
38 };
39
40 /* abstract converter generator struct, C++ - style */
41 struct NewConverter;
42 typedef struct NewConverter NewConverter;
43
44 U_CDECL_BEGIN
45 struct NewConverter {
46 void
47 (* U_CALLCONV_FPTR close)(NewConverter *cnvData);
48
49 /** is this byte sequence valid? */
50 UBool
51 (*U_CALLCONV_FPTR isValid)(NewConverter *cnvData,
52 const uint8_t *bytes, int32_t length);
53
54 UBool
55 (*U_CALLCONV_FPTR addTable)(NewConverter *cnvData, UCMTable *table, UConverterStaticData *staticData);
56
57 uint32_t
58 (*U_CALLCONV_FPTR write)(NewConverter *cnvData, const UConverterStaticData *staticData,
59 UNewDataMemory *pData, int32_t tableType);
60 };
61 U_CDECL_END
62 #endif /* __MAKECONV_H__ */