michael@0: /* michael@0: ******************************************************************************* michael@0: * michael@0: * Copyright (C) 2000-2010, International Business Machines michael@0: * Corporation and others. All Rights Reserved. michael@0: * michael@0: ******************************************************************************* michael@0: * file name: makeconv.h michael@0: * encoding: US-ASCII michael@0: * tab size: 8 (not used) michael@0: * indentation:4 michael@0: * michael@0: * created on: 2000nov01 michael@0: * created by: Markus W. Scherer michael@0: */ michael@0: michael@0: #ifndef __MAKECONV_H__ michael@0: #define __MAKECONV_H__ michael@0: michael@0: #include "unicode/utypes.h" michael@0: #include "ucnv_bld.h" michael@0: #include "unewdata.h" michael@0: #include "ucm.h" michael@0: michael@0: /* exports from makeconv.c */ michael@0: U_CFUNC UBool VERBOSE; michael@0: U_CFUNC UBool SMALL; michael@0: U_CFUNC UBool IGNORE_SISO_CHECK; michael@0: michael@0: /* converter table type for writing */ michael@0: enum { michael@0: TABLE_NONE, michael@0: TABLE_BASE, michael@0: TABLE_EXT, michael@0: TABLE_BASE_AND_EXT michael@0: }; michael@0: michael@0: /* abstract converter generator struct, C++ - style */ michael@0: struct NewConverter; michael@0: typedef struct NewConverter NewConverter; michael@0: michael@0: struct NewConverter { michael@0: void michael@0: (*close)(NewConverter *cnvData); michael@0: michael@0: /** is this byte sequence valid? */ michael@0: UBool michael@0: (*isValid)(NewConverter *cnvData, michael@0: const uint8_t *bytes, int32_t length); michael@0: michael@0: UBool michael@0: (*addTable)(NewConverter *cnvData, UCMTable *table, UConverterStaticData *staticData); michael@0: michael@0: uint32_t michael@0: (*write)(NewConverter *cnvData, const UConverterStaticData *staticData, michael@0: UNewDataMemory *pData, int32_t tableType); michael@0: }; michael@0: michael@0: #endif /* __MAKECONV_H__ */