| 1 | // © 2016 and later: Unicode, Inc. and others. | 
|---|
| 2 | // License & terms of use: http://www.unicode.org/copyright.html | 
|---|
| 3 | /* | 
|---|
| 4 | ****************************************************************************** | 
|---|
| 5 | * Copyright (C) 2001-2016, International Business Machines | 
|---|
| 6 | *                Corporation and others. All Rights Reserved. | 
|---|
| 7 | ****************************************************************************** | 
|---|
| 8 | *   file name:  ucln_cmn.h | 
|---|
| 9 | *   encoding:   UTF-8 | 
|---|
| 10 | *   tab size:   8 (not used) | 
|---|
| 11 | *   indentation:4 | 
|---|
| 12 | * | 
|---|
| 13 | *   created on: 2001July05 | 
|---|
| 14 | *   created by: George Rhoten | 
|---|
| 15 | */ | 
|---|
| 16 |  | 
|---|
| 17 | #ifndef __UCLN_CMN_H__ | 
|---|
| 18 | #define __UCLN_CMN_H__ | 
|---|
| 19 |  | 
|---|
| 20 | #include "unicode/utypes.h" | 
|---|
| 21 | #include "ucln.h" | 
|---|
| 22 |  | 
|---|
| 23 | /* These are the cleanup functions for various APIs. */ | 
|---|
| 24 | /* @return true if cleanup complete successfully.*/ | 
|---|
| 25 | U_CFUNC UBool utrace_cleanup(void); | 
|---|
| 26 |  | 
|---|
| 27 | U_CFUNC UBool ucln_lib_cleanup(void); | 
|---|
| 28 |  | 
|---|
| 29 | /* | 
|---|
| 30 | Please keep the order of enums declared in same order | 
|---|
| 31 | as the cleanup functions are suppose to be called. */ | 
|---|
| 32 | typedef enum ECleanupCommonType { | 
|---|
| 33 | UCLN_COMMON_START = -1, | 
|---|
| 34 | UCLN_COMMON_NUMPARSE_UNISETS, | 
|---|
| 35 | UCLN_COMMON_USPREP, | 
|---|
| 36 | UCLN_COMMON_BREAKITERATOR, | 
|---|
| 37 | UCLN_COMMON_RBBI, | 
|---|
| 38 | UCLN_COMMON_SERVICE, | 
|---|
| 39 | UCLN_COMMON_LOCALE_KEY_TYPE, | 
|---|
| 40 | UCLN_COMMON_LOCALE, | 
|---|
| 41 | UCLN_COMMON_LOCALE_ALIAS, | 
|---|
| 42 | UCLN_COMMON_LOCALE_KNOWN_CANONICALIZED, | 
|---|
| 43 | UCLN_COMMON_LOCALE_AVAILABLE, | 
|---|
| 44 | UCLN_COMMON_LIKELY_SUBTAGS, | 
|---|
| 45 | UCLN_COMMON_LOCALE_DISTANCE, | 
|---|
| 46 | UCLN_COMMON_ULOC, | 
|---|
| 47 | UCLN_COMMON_CURRENCY, | 
|---|
| 48 | UCLN_COMMON_LOADED_NORMALIZER2, | 
|---|
| 49 | UCLN_COMMON_NORMALIZER2, | 
|---|
| 50 | UCLN_COMMON_CHARACTERPROPERTIES, | 
|---|
| 51 | UCLN_COMMON_USET, | 
|---|
| 52 | UCLN_COMMON_UNAMES, | 
|---|
| 53 | UCLN_COMMON_UPROPS, | 
|---|
| 54 | UCLN_COMMON_EMOJIPROPS, | 
|---|
| 55 | UCLN_COMMON_UCNV, | 
|---|
| 56 | UCLN_COMMON_UCNV_IO, | 
|---|
| 57 | UCLN_COMMON_UDATA, | 
|---|
| 58 | UCLN_COMMON_PUTIL, | 
|---|
| 59 | UCLN_COMMON_UINIT, | 
|---|
| 60 |  | 
|---|
| 61 | /* | 
|---|
| 62 | Unified caches caches collation stuff. Collation data structures | 
|---|
| 63 | contain resource bundles which means that unified cache cleanup | 
|---|
| 64 | must happen before resource bundle clean up. | 
|---|
| 65 | */ | 
|---|
| 66 | UCLN_COMMON_UNIFIED_CACHE, | 
|---|
| 67 | UCLN_COMMON_URES, | 
|---|
| 68 | UCLN_COMMON_MUTEX,    // Mutexes should be the last to be cleaned up. | 
|---|
| 69 | UCLN_COMMON_COUNT /* This must be last */ | 
|---|
| 70 | } ECleanupCommonType; | 
|---|
| 71 |  | 
|---|
| 72 | /* Main library cleanup registration function. */ | 
|---|
| 73 | /* See common/ucln.h for details on adding a cleanup function. */ | 
|---|
| 74 | /* Note: the global mutex must not be held when calling this function. */ | 
|---|
| 75 | U_CFUNC void U_EXPORT2 ucln_common_registerCleanup(ECleanupCommonType type, | 
|---|
| 76 | cleanupFunc *func); | 
|---|
| 77 |  | 
|---|
| 78 | #endif | 
|---|
| 79 |  | 
|---|