// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ********************************************************************** * Copyright (C) 1999-2016, International Business Machines * Corporation and others. All Rights Reserved. ********************************************************************** * Date Name Description * 11/17/99 aliu Creation. ********************************************************************** */ #include "utypeinfo.h" // for 'typeid' to work #include "unicode/utypes.h" #if !UCONFIG_NO_TRANSLITERATION #include "unicode/putil.h" #include "unicode/translit.h" #include "unicode/locid.h" #include "unicode/msgfmt.h" #include "unicode/rep.h" #include "unicode/resbund.h" #include "unicode/unifilt.h" #include "unicode/uniset.h" #include "unicode/uscript.h" #include "unicode/strenum.h" #include "unicode/utf16.h" #include "cpdtrans.h" #include "nultrans.h" #include "rbt_data.h" #include "rbt_pars.h" #include "rbt.h" #include "transreg.h" #include "name2uni.h" #include "nortrans.h" #include "remtrans.h" #include "titletrn.h" #include "tolowtrn.h" #include "toupptrn.h" #include "uni2name.h" #include "brktrans.h" #include "esctrn.h" #include "unesctrn.h" #include "tridpars.h" #include "anytrans.h" #include "util.h" #include "hash.h" #include "mutex.h" #include "ucln_in.h" #include "uassert.h" #include "cmemory.h" #include "cstring.h" #include "uinvchar.h" static const char16_t TARGET_SEP = …; /*-*/ static const char16_t ID_DELIM = …; /*;*/ static const char16_t VARIANT_SEP = …; // '/' /** * Prefix for resource bundle key for the display name for a * transliterator. The ID is appended to this to form the key. * The resource bundle value should be a String. */ static const char RB_DISPLAY_NAME_PREFIX[] = …; /** * Prefix for resource bundle key for the display name for a * transliterator SCRIPT. The ID is appended to this to form the key. * The resource bundle value should be a String. */ static const char RB_SCRIPT_DISPLAY_NAME_PREFIX[] = …; /** * Resource bundle key for display name pattern. * The resource bundle value should be a String forming a * MessageFormat pattern, e.g.: * "{0,choice,0#|1#{1} Transliterator|2#{1} to {2} Transliterator}". */ static const char RB_DISPLAY_NAME_PATTERN[] = …; /** * Resource bundle key for the list of RuleBasedTransliterator IDs. * The resource bundle value should be a String[] with each element * being a valid ID. The ID will be appended to RB_RULE_BASED_PREFIX * to obtain the class name in which the RB_RULE key will be sought. */ static const char RB_RULE_BASED_IDS[] = …; /** * The mutex controlling access to registry object. */ static icu::UMutex registryMutex; /** * System transliterator registry; non-null when initialized. */ static icu::TransliteratorRegistry* registry = …; // Macro to check/initialize the registry. ONLY USE WITHIN // MUTEX. Avoids function call when registry is initialized. #define HAVE_REGISTRY(status) … U_NAMESPACE_BEGIN // Defined in transreg.h: /** * Release all static memory held by transliterator. This will * necessarily invalidate any rule-based transliterators held by the * user, because RBTs hold pointers to common data objects. */ U_CFUNC UBool utrans_transliterator_cleanup() { … } #endif /* #if !UCONFIG_NO_TRANSLITERATION */ //eof