16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org********************************************************************** 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Copyright (C) 1999-2011, International Business Machines 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Corporation and others. All Rights Reserved. 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org********************************************************************** 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* Date Name Description 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org* 11/17/99 aliu Creation. 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org********************************************************************** 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/ 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef CPDTRANS_H 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define CPDTRANS_H 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h" 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_TRANSLITERATION 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/translit.h" 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_BEGIN 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass U_COMMON_API UVector; 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass TransliteratorRegistry; 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/** 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * A transliterator that is composed of two or more other 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * transliterator objects linked together. For example, if one 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * transliterator transliterates from script A to script B, and 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * another transliterates from script B to script C, the two may be 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * combined to form a new transliterator from A to C. 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <p>Composed transliterators may not behave as expected. For 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * example, inverses may not combine to form the identity 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * transliterator. See the class documentation for {@link 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Transliterator} for details. 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @author Alan Liu 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass U_I18N_API CompoundTransliterator : public Transliterator { 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Transliterator** trans; 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t count; 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t numAnonymousRBTs; 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constructs a new compound transliterator given an array of 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * transliterators. The array of transliterators may be of any 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * length, including zero or one, however, useful compound 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * transliterators have at least two components. 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param transliterators array of <code>Transliterator</code> 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * objects 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param transliteratorCount The number of 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <code>Transliterator</code> objects in transliterators. 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param adoptedFilter the filter. Any character for which 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tt>filter.contains()</tt> returns <tt>false</tt> will not be 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * altered by this transliterator. If <tt>filter</tt> is 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * <tt>null</tt> then no filtering is applied. 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator(Transliterator* const transliterators[], 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t transliteratorCount, 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeFilter* adoptedFilter = 0); 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constructs a new compound transliterator. 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param id compound ID 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param dir either UTRANS_FORWARD or UTRANS_REVERSE 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param adoptedFilter a global filter for this compound transliterator 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * or NULL 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator(const UnicodeString& id, 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UTransDirection dir, 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeFilter* adoptedFilter, 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UParseError& parseError, 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Constructs a new compound transliterator in the FORWARD 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * direction with a NULL filter. 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator(const UnicodeString& id, 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UParseError& parseError, 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Destructor. 886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual ~CompoundTransliterator(); 906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copy constructor. 936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator(const CompoundTransliterator&); 956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Transliterator API. 986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual Transliterator* clone(void) const; 1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the number of transliterators in this chain. 1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return number of transliterators in this chain. 1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual int32_t getCount(void) const; 1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Returns the transliterator at the given index in this chain. 1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param idx index into chain, from 0 to <code>getCount() - 1</code> 1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @return transliterator at the given index 1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual const Transliterator& getTransliterator(int32_t idx) const; 1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Sets the transliterators. 1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void setTransliterators(Transliterator* const transliterators[], 1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t count); 1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Adopts the transliterators. 1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void adoptTransliterators(Transliterator* adoptedTransliterators[], 1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t count); 1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Override Transliterator: 1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Create a rule string that can be passed to createFromRules() 1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * to recreate this transliterator. 1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param result the string to receive the rules. Previous 1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * contents will be deleted. 1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * @param escapeUnprintable if TRUE then convert unprintable 1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * character to their hex escape representations, \uxxxx or 1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * \Uxxxxxxxx. Unprintable characters are those other than 1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * U+000A, U+0020..U+007E. 1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UnicodeString& toRules(UnicodeString& result, 1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool escapeUnprintable) const; 1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org protected: 1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Implement Transliterator framework 1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void handleGetSourceSet(UnicodeSet& result) const; 1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org public: 1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Override Transliterator framework 1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UnicodeSet& getTargetSet(UnicodeSet& result) const; 1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprotected: 1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Implements {@link Transliterator#handleTransliterate}. 1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual void handleTransliterate(Replaceable& text, UTransPosition& idx, 1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool incremental) const; 1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgpublic: 1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU "poor man's RTTI", returns a UClassID for the actual class. 1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org virtual UClassID getDynamicClassID() const; 1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * ICU "poor man's RTTI", returns a UClassID for this class. 1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static UClassID U_EXPORT2 getStaticClassID(); 1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /* @internal */ 1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org static const UChar PASS_STRING[]; 1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate: 1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org friend class Transliterator; 1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org friend class TransliteratorAlias; // to access private ct 1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Assignment operator. 1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator& operator=(const CompoundTransliterator&); 1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Private constructor for Transliterator. 1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator(const UnicodeString& ID, 1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UVector& list, 1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeFilter* adoptedFilter, 1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t numAnonymousRBTs, 1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UParseError& parseError, 1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator(UVector& list, 1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UParseError& parseError, 1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org CompoundTransliterator(UVector& list, 1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t anonymousRBTs, 2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UParseError& parseError, 2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void init(const UnicodeString& id, 2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UTransDirection direction, 2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool fixReverseID, 2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void init(UVector& list, 2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UTransDirection direction, 2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UBool fixReverseID, 2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode& status); 2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org /** 2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Return the IDs of the given list of transliterators, concatenated 2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * with ';' delimiting them. Equivalent to the perlish expression 2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * join(';', map($_.getID(), transliterators). 2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org */ 2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString joinIDs(Transliterator* const transliterators[], 2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org int32_t transCount); 2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void freeTransliterators(void); 2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org void computeMaximumContextLength(void); 2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}; 2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_END 2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_TRANSLITERATION */ 2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif 231