home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Programming / ICU / src / icu / source / common / ucnv_imp.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-10-22  |  2.4 KB  |  74 lines

  1. /*
  2. *******************************************************************************
  3. *                                                                             *
  4. * COPYRIGHT:                                                                  *
  5. *   (C) Copyright International Business Machines Corporation, 1998           *
  6. *   Licensed Material - Program-Property of IBM - All Rights Reserved.        *
  7. *   US Government Users Restricted Rights - Use, duplication, or disclosure   *
  8. *   restricted by GSA ADP Schedule Contract with IBM Corp.                    *
  9. *                                                                             *
  10. *******************************************************************************
  11. *
  12. *
  13. *
  14. *  ucnv_imp.h:
  15. *  Contains all internal and external data structure definitions
  16. * Created & Maitained by Bertrand A. Damiba
  17. *
  18. *
  19. *
  20. * ATTENTION:
  21. * ---------
  22. * Although the data structures in this file are open and stack allocatable
  23. * we reserve the right to hide them in further releases.
  24. */
  25.  
  26. #ifndef UCNV_IMP_H
  27. #define UCNV_IMP_H
  28.  
  29. #include "utypes.h"
  30.  
  31. #ifndef UHASH_H
  32. typedef struct _UHashtable UHashtable;
  33. #endif
  34.  
  35. /*Hashtable used to store UConverterSharedData objects supporting
  36.  *the Caching mechanism
  37.  */
  38. extern UHashtable *SHARED_DATA_HASHTABLE;
  39.  
  40. /*Hashtable generated (lazy eval) by algorithmicConverterNames for fast lookup
  41.  *Behaviour is completely different for the Algorithmic conversions.
  42.  *we use this table to as a litmus test.
  43.  */
  44. extern UHashtable *ALGORITHMIC_CONVERTERS_HASHTABLE;
  45.  
  46.  
  47. /* figures out if we need to go to file to read in the data tables.
  48.  */
  49. UConverter *createConverter (const char *converterName, UErrorCode * err);
  50.  
  51. /* Stores the shared data in the SHARED_DATA_HASHTABLE
  52.  */
  53. void shareConverterData (UConverterSharedData * data);
  54.  
  55. /* gets the shared data from the SHARED_DATA_HASHTABLE (might return NULL if it isn't there)
  56.  */
  57. UConverterSharedData *getSharedConverterData (const char *name);
  58.  
  59. /* Deletes (frees) the Shared data it's passed. first it checks the referenceCounter to
  60.  * see if anyone is using it, if not it frees all the memory stemming from sharedConverterData and
  61.  * returns TRUE,
  62.  * otherwise returns FALSE
  63.  */
  64. bool_t deleteSharedConverterData (UConverterSharedData * sharedConverterData);
  65.  
  66. /* returns true if "name" is in algorithmicConverterNames
  67.  */
  68. bool_t isDataBasedConverter (const char *name);
  69.  
  70. void copyPlatformString (char *platformString, UConverterPlatform pltfrm);
  71.  
  72.  
  73. #endif /* _UCNV_IMP */
  74.