| 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_AVAILABLE, |
| 42 | UCLN_COMMON_LIKELY_SUBTAGS, |
| 43 | UCLN_COMMON_LOCALE_DISTANCE, |
| 44 | UCLN_COMMON_ULOC, |
| 45 | UCLN_COMMON_CURRENCY, |
| 46 | UCLN_COMMON_LOADED_NORMALIZER2, |
| 47 | UCLN_COMMON_NORMALIZER2, |
| 48 | UCLN_COMMON_CHARACTERPROPERTIES, |
| 49 | UCLN_COMMON_USET, |
| 50 | UCLN_COMMON_UNAMES, |
| 51 | UCLN_COMMON_UPROPS, |
| 52 | UCLN_COMMON_UCNV, |
| 53 | UCLN_COMMON_UCNV_IO, |
| 54 | UCLN_COMMON_UDATA, |
| 55 | UCLN_COMMON_PUTIL, |
| 56 | UCLN_COMMON_UINIT, |
| 57 | |
| 58 | /* |
| 59 | Unified caches caches collation stuff. Collation data structures |
| 60 | contain resource bundles which means that unified cache cleanup |
| 61 | must happen before resource bundle clean up. |
| 62 | */ |
| 63 | UCLN_COMMON_UNIFIED_CACHE, |
| 64 | UCLN_COMMON_URES, |
| 65 | UCLN_COMMON_MUTEX, // Mutexes should be the last to be cleaned up. |
| 66 | UCLN_COMMON_COUNT /* This must be last */ |
| 67 | } ECleanupCommonType; |
| 68 | |
| 69 | /* Main library cleanup registration function. */ |
| 70 | /* See common/ucln.h for details on adding a cleanup function. */ |
| 71 | /* Note: the global mutex must not be held when calling this function. */ |
| 72 | U_CFUNC void U_EXPORT2 ucln_common_registerCleanup(ECleanupCommonType type, |
| 73 | cleanupFunc *func); |
| 74 | |
| 75 | #endif |
| 76 | |