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