/* ********************************************************************** * 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: static const char* _ID; static const char* DEFAULT_PREFIX; UnicodeString prefix; bool_t uppercase; public: UnicodeToHexTransliterator(const UnicodeString& hexPrefix, bool_t isUppercase, UnicodeFilter* adoptedFilter = 0); UnicodeToHexTransliterator(UnicodeFilter* adoptedFilter = 0); virtual ~UnicodeToHexTransliterator(); UnicodeToHexTransliterator(const UnicodeToHexTransliterator&); UnicodeToHexTransliterator& operator=(const UnicodeToHexTransliterator&); virtual Transliterator* clone(void) const; virtual const UnicodeString& getPrefix(void) const; virtual void setPrefix(const UnicodeString& prefix); virtual bool_t isUppercase(void) const; virtual void setUppercase(bool_t outputUppercase); virtual void handleTransliterate(Replaceable& text, Position& offsets, bool_t isIncremental) const; private: static UChar HEX_DIGITS[32]; UChar itoh(int32_t i) const; UnicodeString& toHex(UnicodeString& result, UChar c) const; }; inline UnicodeToHexTransliterator::~UnicodeToHexTransliterator() {} #endif