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