00001 /* 00002 ********************************************************************** 00003 * Copyright (C) 1999, International Business Machines 00004 * Corporation and others. All Rights Reserved. 00005 ********************************************************************** 00006 * 00007 * 00008 * ucnv_imp.h: 00009 * Contains all internal and external data structure definitions 00010 * Created & Maitained by Bertrand A. Damiba 00011 * 00012 * 00013 * 00014 * ATTENTION: 00015 * --------- 00016 * Although the data structures in this file are open and stack allocatable 00017 * we reserve the right to hide them in further releases. 00018 */ 00019 00020 #ifndef UCNV_IMP_H 00021 #define UCNV_IMP_H 00022 00023 #include "unicode/utypes.h" 00024 #include "ucnv_bld.h" 00025 00026 #ifndef UHASH_H 00027 typedef struct _UHashtable UHashtable; 00028 #endif 00029 00030 /*Hashtable used to store UConverterSharedData objects supporting 00031 *the Caching mechanism 00032 */ 00033 extern UHashtable *SHARED_DATA_HASHTABLE; 00034 00035 00036 /* figures out if we need to go to file to read in the data tables. 00037 */ 00038 UConverter *createConverter (const char *converterName, UErrorCode * err); 00039 00040 /* Stores the shared data in the SHARED_DATA_HASHTABLE 00041 */ 00042 void shareConverterData (UConverterSharedData * data); 00043 00044 /* gets the shared data from the SHARED_DATA_HASHTABLE (might return NULL if it isn't there) 00045 */ 00046 UConverterSharedData *getSharedConverterData (const char *name); 00047 00048 /* Deletes (frees) the Shared data it's passed. first it checks the referenceCounter to 00049 * see if anyone is using it, if not it frees all the memory stemming from sharedConverterData and 00050 * returns TRUE, 00051 * otherwise returns FALSE 00052 */ 00053 UBool deleteSharedConverterData (UConverterSharedData * sharedConverterData); 00054 00055 /* returns true if "name" is in algorithmicConverterNames 00056 */ 00057 UBool isDataBasedConverter (const char *name); 00058 00059 void copyPlatformString (char *platformString, UConverterPlatform pltfrm); 00060 00061 00062 #endif /* _UCNV_IMP */