00001 /* 00002 * Copyright © {1999}, International Business Machines Corporation and others. All Rights Reserved. 00003 ********************************************************************** 00004 * Date Name Description 00005 * 11/17/99 aliu Creation. 00006 ********************************************************************** 00007 */ 00008 #ifndef RBT_DATA_H 00009 #define RBT_DATA_H 00010 00011 #include "rbt_set.h" 00012 00013 class UnicodeString; 00014 class UnicodeSet; 00015 class Hashtable; 00016 00034 class TransliterationRuleData { 00035 00036 public: 00037 00038 // PUBLIC DATA MEMBERS 00039 00043 TransliterationRuleSet ruleSet; 00044 00054 Hashtable* variableNames; 00055 00065 UnicodeSet** setVariables; 00066 00072 UChar setVariablesBase; 00073 00077 int32_t setVariablesLength; 00078 00083 UChar segmentBase; 00084 00085 public: 00086 00087 TransliterationRuleData(UErrorCode& status); 00088 00089 TransliterationRuleData(const TransliterationRuleData&); 00090 00091 ~TransliterationRuleData(); 00092 00093 const UnicodeSet* lookupSet(UChar standIn) const; 00094 00100 int32_t lookupSegmentReference(UChar c) const; 00101 00106 UChar getSegmentStandin(int32_t ref) const { 00107 return (UChar)(segmentBase + ref - 1); 00108 } 00109 }; 00110 00111 #endif