00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HEXTOUNI_H
00011 #define HEXTOUNI_H
00012
00013 #include "unicode/translit.h"
00014
00015 U_NAMESPACE_BEGIN
00016
00031 class U_I18N_API HexToUnicodeTransliterator : public Transliterator {
00032
00036 static const char _ID[];
00037
00041 static const UChar DEFAULT_PATTERN[];
00042
00043
00044 enum {
00045 SEMICOLON = 0x003B,
00046 ZERO = 0x0030,
00047 POUND = 0x0023,
00048 BACKSLASH = 0x005C
00049 };
00050
00054 UnicodeString pattern;
00055
00060 UnicodeString affixes;
00061
00065 int32_t affixCount;
00066
00067 public:
00068
00075 HexToUnicodeTransliterator(UnicodeFilter* adoptedFilter = 0);
00076
00082 HexToUnicodeTransliterator(const UnicodeString& pattern,
00083 UErrorCode& status);
00084
00091 HexToUnicodeTransliterator(const UnicodeString& pattern,
00092 UnicodeFilter* adoptedFilter,
00093 UErrorCode& status);
00094
00099 virtual ~HexToUnicodeTransliterator();
00100
00105 HexToUnicodeTransliterator(const HexToUnicodeTransliterator&);
00106
00111 HexToUnicodeTransliterator& operator=(const HexToUnicodeTransliterator&);
00112
00117 Transliterator* clone(void) const;
00118
00146 void applyPattern(const UnicodeString& thePattern, UErrorCode& status);
00147
00152 const UnicodeString& toPattern(void) const;
00153
00158 virtual void handleTransliterate(Replaceable& text, UTransPosition& offset,
00159 UBool isIncremental) const;
00160 };
00161
00162 inline HexToUnicodeTransliterator::~HexToUnicodeTransliterator() {}
00163
00164 U_NAMESPACE_END
00165
00166 #endif