]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/ucln_in.h
ICU-62107.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / ucln_in.h
index 8aa38dc8dbd42978ba05dc93b9bd9f5e3b7f443e..318eafc143c9686a1c06c3bbcb6cdc9b4a1edb45 100644 (file)
@@ -1,12 +1,12 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 ******************************************************************************
-*                                                                            *
-* Copyright (C) 2001-2003, International Business Machines                   *
-*                Corporation and others. All Rights Reserved.                *
-*                                                                            *
+* Copyright (C) 2001-2016, International Business Machines
+*                Corporation and others. All Rights Reserved.
 ******************************************************************************
-*   file name:  ucln_cmn.h
-*   encoding:   US-ASCII
+*   file name:  ucln_in.h
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:4
 *
 *   created by: George Rhoten
 */
 
-#ifndef __UCLN_CMN_H__
-#define __UCLN_CMN_H__
+#ifndef __UCLN_IN_H__
+#define __UCLN_IN_H__
 
 #include "unicode/utypes.h"
+#include "ucln.h"
 
-/* Main library cleanup function. */
-U_CFUNC void ucln_i18n_registerCleanup(void);
+/*
+Please keep the order of enums declared in same order
+as the functions are suppose to be called.
+It's usually best to have child dependencies called first. */
+typedef enum ECleanupI18NType {
+    UCLN_I18N_START = -1,
+    UCLN_I18N_NUMBER_SKELETONS,
+    UCLN_I18N_CURRENCY_SPACING,
+    UCLN_I18N_SPOOF,
+    UCLN_I18N_SPOOFDATA,
+    UCLN_I18N_TRANSLITERATOR,
+    UCLN_I18N_REGEX,
+    UCLN_I18N_ISLAMIC_CALENDAR,
+    UCLN_I18N_CHINESE_CALENDAR,
+    UCLN_I18N_HEBREW_CALENDAR,
+    UCLN_I18N_ASTRO_CALENDAR,
+    UCLN_I18N_DANGI_CALENDAR,
+    UCLN_I18N_CALENDAR,
+    UCLN_I18N_TIMEZONEFORMAT,
+    UCLN_I18N_TZDBTIMEZONENAMES,
+    UCLN_I18N_TIMEZONEGENERICNAMES,
+    UCLN_I18N_TIMEZONENAMES,
+    UCLN_I18N_ZONEMETA,
+    UCLN_I18N_TIMEZONE,
+    UCLN_I18N_DIGITLIST,
+    UCLN_I18N_DECFMT,
+    UCLN_I18N_NUMFMT,
+    UCLN_I18N_ALLOWED_HOUR_FORMATS,
+    UCLN_I18N_DAYPERIODRULES,
+    UCLN_I18N_SMPDTFMT,
+    UCLN_I18N_USEARCH,
+    UCLN_I18N_COLLATOR,
+    UCLN_I18N_UCOL_RES,
+    UCLN_I18N_CSDET,
+    UCLN_I18N_COLLATION_ROOT,
+    UCLN_I18N_GENDERINFO,
+    UCLN_I18N_CDFINFO,
+    UCLN_I18N_REGION,
+    UCLN_I18N_COUNT /* This must be last */
+} ECleanupI18NType;
 
+/* Main library cleanup registration function. */
 /* See common/ucln.h for details on adding a cleanup function. */
-
-U_CFUNC UBool transliterator_cleanup(void);
-
-U_CFUNC UBool timeZone_cleanup(void);
-
-U_CFUNC UBool numfmt_cleanup(void);
-
-U_CFUNC UBool calendar_cleanup(void);
-
-U_CFUNC UBool currency_cleanup(void);
-
-U_CFUNC UBool collator_cleanup(void);
-
-U_CFUNC UBool ucol_cleanup(void);
-
-U_CFUNC UBool ucol_bld_cleanup(void);
-
-U_CFUNC UBool regex_cleanup(void);
+/* Note: the global mutex must not be held when calling this function. */
+U_CFUNC void U_EXPORT2 ucln_i18n_registerCleanup(ECleanupI18NType type,
+                                                 cleanupFunc *func);
 
 #endif