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__ */ 60