/* ********************************************************************** * Copyright © {1999}, International Business Machines Corporation and others. All Rights Reserved. ********************************************************************** * Date Name Description * 11/17/99 aliu Creation. ********************************************************************** */ #ifndef UNITOHEX_H #define UNITOHEX_H #include "unicode/translit.h" #include "unicode/unistr.h" class UnicodeFilter; class U_I18N_API UnicodeToHexTransliterator : public Transliterator { private: // Character constants defined here to avoid ASCII dependency enum { ZERO = 0x0030, // '0' POUND = 0x0023, // '#' BACKSLASH = 0x005C // '\\' }; static const UChar HEX_DIGITS[32]; static const char* _ID; UnicodeString pattern; UnicodeString prefix; UnicodeString suffix; int8_t minDigits; UBool uppercase; public: UnicodeToHexTransliterator(const UnicodeString& pattern, UBool isUppercase, UnicodeFilter* adoptedFilter, UErrorCode& status); UnicodeToHexTransliterator(const UnicodeString& pattern, UErrorCode& status); UnicodeToHexTransliterator(UnicodeFilter* adoptedFilter = 0); virtual ~UnicodeToHexTransliterator(); UnicodeToHexTransliterator(const UnicodeToHexTransliterator&); UnicodeToHexTransliterator& operator=(const UnicodeToHexTransliterator&); virtual Transliterator* clone(void) const; void applyPattern(const UnicodeString& thePattern, UErrorCode& status); const UnicodeString& toPattern(void) const; virtual UBool isUppercase(void) const; virtual void setUppercase(UBool outputUppercase); virtual void handleTransliterate(Replaceable& text, Position& offsets, UBool isIncremental) const; }; inline UnicodeToHexTransliterator::~UnicodeToHexTransliterator() {} #endif