]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/rbt_data.h
ICU-64260.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / rbt_data.h
index 9ceaf812ba85f4b9a40d62d7138ada488b697a4f..52a961dde010d3798ce7d182a7191cdbf2b1c369 100644 (file)
@@ -1,5 +1,9 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
-* Copyright (C) {1999}, International Business Machines Corporation and others. All Rights Reserved.
+**********************************************************************
+* Copyright (C) 1999-2007, International Business Machines Corporation
+* and others. All Rights Reserved.
 **********************************************************************
 *   Date        Name        Description
 *   11/17/99    aliu        Creation.
 #define RBT_DATA_H
 
 #include "unicode/utypes.h"
+#include "unicode/uclean.h"
 
 #if !UCONFIG_NO_TRANSLITERATION
 
 #include "unicode/uobject.h"
 #include "rbt_set.h"
+#include "hash.h"
 
 U_NAMESPACE_BEGIN
 
 class UnicodeFunctor;
-class UnicodeString;
 class UnicodeMatcher;
 class UnicodeReplacer;
-class Hashtable;
 
 /**
  * The rule data for a RuleBasedTransliterators.  RBT objects hold
@@ -40,7 +44,7 @@ class Hashtable;
  * data structure handles this.  See the parsing code for more
  * details.
  */
-class U_I18N_API TransliterationRuleData : public UMemory {
+class TransliterationRuleData : public UMemory {
 
 public:
 
@@ -60,7 +64,7 @@ public:
      * data.variables.  The stand-in also represents the UnicodeMatcher in
      * the stored rules.
      */
-    Hashtable* variableNames;
+    Hashtable variableNames;
 
     /**
      * Map category variable (UChar) to set (UnicodeFunctor).
@@ -73,6 +77,15 @@ public:
      */
     UnicodeFunctor** variables;
 
+    /**
+     * Flag that indicates whether the variables are owned (if a single
+     * call to Transliterator::createFromRules() produces a CompoundTransliterator
+     * with more than one RuleBasedTransliterator as children, they all share
+     * the same variables list, so only the first one is considered to own
+     * the variables)
+     */
+    UBool variablesAreOwned;
+
     /**
      * The character that represents variables[0].  Characters
      * variablesBase through variablesBase +
@@ -129,6 +142,7 @@ public:
      */
     UnicodeReplacer* lookupReplacer(UChar32 standIn) const;
 
+
 private:
     TransliterationRuleData &operator=(const TransliterationRuleData &other); // forbid copying of this class
 };