Main Page | Class Hierarchy | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

unitohex.h

00001 /*
00002 **********************************************************************
00003 * Copyright (C) 1999, International Business Machines Corporation and others. All Rights Reserved.
00004 **********************************************************************
00005 *   Date        Name        Description
00006 *   11/17/99    aliu        Creation.
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     // Character constants defined here to avoid ASCII dependency
00045     enum {
00046         ZERO      = 0x0030, // '0'
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

Generated on Sun May 22 23:05:50 2005 for ICU 2.1 by  doxygen 1.4.2