Home | History | Annotate | Download | only in makeconv
      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