00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef UNITOHEX_H
00010 #define UNITOHEX_H
00011
00012 #include "unicode/translit.h"
00013 #include "unicode/unistr.h"
00014
00015 U_NAMESPACE_BEGIN
00016
00017 class UnicodeFilter;
00018
00040 class U_I18N_API UnicodeToHexTransliterator : public Transliterator {
00041
00042 private:
00043
00044
00045 enum {
00046 ZERO = 0x0030,
00047 POUND = 0x0023,
00048 BACKSLASH = 0x005C
00049 };
00050
00051 static const UChar HEX_DIGITS[32];
00052
00056 static const char _ID[];
00057
00061 UnicodeString pattern;
00062
00066 UnicodeString prefix;
00067
00071 UnicodeString suffix;
00072
00077 int8_t minDigits;
00078
00083 UBool uppercase;
00084
00085 public:
00086
00099 UnicodeToHexTransliterator(const UnicodeString& pattern,
00100 UBool isUppercase,
00101 UnicodeFilter* adoptedFilter,
00102 UErrorCode& status);
00103
00112 UnicodeToHexTransliterator(const UnicodeString& pattern,
00113 UErrorCode& status);
00114
00120 UnicodeToHexTransliterator(UnicodeFilter* adoptedFilter = 0);
00121
00126 virtual ~UnicodeToHexTransliterator();
00127
00132 UnicodeToHexTransliterator(const UnicodeToHexTransliterator&);
00133
00138 UnicodeToHexTransliterator& operator=(const UnicodeToHexTransliterator&);
00139
00144 virtual Transliterator* clone(void) const;
00145
00173 void applyPattern(const UnicodeString& thePattern, UErrorCode& status);
00174
00179 const UnicodeString& toPattern(void) const;
00180
00185 virtual UBool isUppercase(void) const;
00186
00191 virtual void setUppercase(UBool outputUppercase);
00192
00197 virtual void handleTransliterate(Replaceable& text, UTransPosition& offsets,
00198 UBool isIncremental) const;
00199 };
00200
00201 inline UnicodeToHexTransliterator::~UnicodeToHexTransliterator() {}
00202
00203 U_NAMESPACE_END
00204
00205 #endif