00001 /* 00002 * Copyright (C) {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 HEXTOUNI_H 00009 #define HEXTOUNI_H 00010 00011 #include "unicode/translit.h" 00012 00013 U_NAMESPACE_BEGIN 00014 00030 class U_I18N_API HexToUnicodeTransliterator : public Transliterator { 00031 00035 static const char _ID[]; 00036 00040 static const UChar DEFAULT_PATTERN[]; 00041 00042 // Character constants defined here to avoid ASCII dependency 00043 enum { 00044 SEMICOLON = 0x003B, // ';' 00045 ZERO = 0x0030, // '0' 00046 POUND = 0x0023, // '#' 00047 BACKSLASH = 0x005C // '\\' 00048 }; 00049 00053 UnicodeString pattern; 00054 00059 UnicodeString affixes; 00060 00064 int32_t affixCount; 00065 00066 public: 00067 00074 HexToUnicodeTransliterator(UnicodeFilter* adoptedFilter = 0); 00075 00081 HexToUnicodeTransliterator(const UnicodeString& pattern, 00082 UErrorCode& status); 00083 00090 HexToUnicodeTransliterator(const UnicodeString& pattern, 00091 UnicodeFilter* adoptedFilter, 00092 UErrorCode& status); 00093 00098 virtual ~HexToUnicodeTransliterator(); 00099 00104 HexToUnicodeTransliterator(const HexToUnicodeTransliterator&); 00105 00110 HexToUnicodeTransliterator& operator=(const HexToUnicodeTransliterator&); 00111 00116 Transliterator* clone(void) const; 00117 00145 void applyPattern(const UnicodeString& thePattern, UErrorCode& status); 00146 00151 const UnicodeString& toPattern(void) const; 00152 00157 virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, 00158 UBool isIncremental) const; 00159 }; 00160 00161 inline HexToUnicodeTransliterator::~HexToUnicodeTransliterator() {} 00162 00163 U_NAMESPACE_END 00164 00165 #endif