/* ******************************************************************************* * * Copyright (C) 2000, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * file name: makeconv.h * encoding: US-ASCII * tab size: 8 (not used) * indentation:4 * * created on: 2000nov01 * created by: Markus W. Scherer */ #ifndef __MAKECONV_H__ #define __MAKECONV_H__ #include "unicode/utypes.h" #include "ucnv_bld.h" #include "unewdata.h" /* exports from makeconv.c */ U_CFUNC UBool VERBOSE; /* abstract converter generator struct, C++ - style */ struct NewConverter; typedef struct NewConverter NewConverter; struct NewConverter { void (*close)(NewConverter *cnvData); UBool (*startMappings)(NewConverter *cnvData); /** is this byte sequence valid? */ UBool (*isValid)(NewConverter *cnvData, const uint8_t *bytes, int32_t length, uint32_t b); UBool (*addToUnicode)(NewConverter *cnvData, const uint8_t *bytes, int32_t length, UChar32 c, uint32_t b, int8_t isFallback); UBool (*addFromUnicode)(NewConverter *cnvData, const uint8_t *bytes, int32_t length, UChar32 c, uint32_t b, int8_t isFallback); void (*finishMappings)(NewConverter *cnvData, const UConverterStaticData *staticData); uint32_t (*write)(NewConverter *cnvData, const UConverterStaticData *staticData, UNewDataMemory *pData); }; #endif