Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

unitohex.h

Go to the documentation of this file.
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 
00089     static const char fgClassID;
00090 
00091 public:
00092 
00105     UnicodeToHexTransliterator(const UnicodeString& pattern,
00106                                UBool isUppercase,
00107                                UnicodeFilter* adoptedFilter,
00108                                UErrorCode& status);
00109 
00118     UnicodeToHexTransliterator(const UnicodeString& pattern,
00119                                UErrorCode& status);
00120 
00126     UnicodeToHexTransliterator(UnicodeFilter* adoptedFilter = 0);
00127 
00132     virtual ~UnicodeToHexTransliterator();
00133 
00138     UnicodeToHexTransliterator(const UnicodeToHexTransliterator&);
00139 
00144     UnicodeToHexTransliterator& operator=(const UnicodeToHexTransliterator&);
00145 
00150     virtual Transliterator* clone(void) const;
00151 
00179     void applyPattern(const UnicodeString& thePattern, UErrorCode& status);
00180 
00185     const UnicodeString& toPattern(void) const;
00186 
00191     virtual UBool isUppercase(void) const;
00192 
00197     virtual void setUppercase(UBool outputUppercase);
00198 
00203     virtual void handleTransliterate(Replaceable& text, UTransPosition& offsets,
00204                                      UBool isIncremental) const;
00205 
00211     virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
00212 
00218     static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00219 };
00220 
00221 inline UnicodeToHexTransliterator::~UnicodeToHexTransliterator() {}
00222 
00223 U_NAMESPACE_END
00224 
00225 #endif

Generated on Thu Aug 15 14:13:33 2002 for ICU 2.2 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001