X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/b75a7d8f3b4adbae880cab104ce2c6a50eee4db2..b25be06635768807f8f693286fa73bb2297bb06c:/icuSources/common/ucln.h diff --git a/icuSources/common/ucln.h b/icuSources/common/ucln.h index cb3150dc..3f9847f4 100644 --- a/icuSources/common/ucln.h +++ b/icuSources/common/ucln.h @@ -1,7 +1,7 @@ /* ****************************************************************************** * * -* Copyright (C) 2001-2003, International Business Machines * +* Copyright (C) 2001-2010, International Business Machines * * Corporation and others. All Rights Reserved. * * * ****************************************************************************** @@ -47,19 +47,43 @@ * Please see common/ucln_cmn.{h,c} and i18n/ucln_in.{h,c} for examples. */ +/** + * Data Type for cleanup function selector. These roughly correspond to libraries. + */ typedef enum ECleanupLibraryType { UCLN_START = -1, + UCLN_UPLUG, /* ICU plugins */ UCLN_CUSTOM, /* Custom is for anyone else. */ - UCLN_LAYOUT, + UCLN_CTESTFW, + UCLN_TOOLUTIL, UCLN_LAYOUTEX, - UCLN_USTDIO, + UCLN_LAYOUT, + UCLN_IO, UCLN_I18N, UCLN_COMMON /* This must be the last one to cleanup. */ } ECleanupLibraryType; -typedef UBool cleanupFunc(void); +/** + * Data type for cleanup function pointer + */ +U_CDECL_BEGIN +typedef UBool U_CALLCONV cleanupFunc(void); +U_CDECL_END +/** + * Register a cleanup function + * @param type which library to register for. + * @param func the function pointer + */ U_CAPI void U_EXPORT2 ucln_registerCleanup(ECleanupLibraryType type, cleanupFunc *func); +/** + * Request cleanup for one specific library. + * Not thread safe. + * Calling this with UCLN_COMMON just calls u_cleanup(); + * @param type which library to cleanup + */ +U_CAPI void U_EXPORT2 ucln_cleanupOne(ECleanupLibraryType type); + #endif