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 */ 26U_CFUNC UBool VERBOSE; 27U_CFUNC UBool SMALL; 28U_CFUNC UBool IGNORE_SISO_CHECK; 29 30/* converter table type for writing */ 31enum { 32 TABLE_NONE, 33 TABLE_BASE, 34 TABLE_EXT, 35 TABLE_BASE_AND_EXT 36}; 37 38/* abstract converter generator struct, C++ - style */ 39struct NewConverter; 40typedef struct NewConverter NewConverter; 41 42struct 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