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/utypes.h"
00013 
00014 #if !UCONFIG_NO_TRANSLITERATION
00015 
00016 #include "unicode/translit.h"
00017 
00018 #ifdef ICU_UNICODETOHEXTRANSLITERATOR_USE_DEPRECATES
00019 #include "unicode/unistr.h"
00020 
00021 U_NAMESPACE_BEGIN
00022 
00023 class UnicodeFilter;
00024 
00046 class U_I18N_API UnicodeToHexTransliterator : public Transliterator {
00047 
00048 private:
00049 
00050     // Character constants defined here to avoid ASCII dependency
00051     enum {
00052         ZERO      = 0x0030, // '0'
00053         POUND     = 0x0023, // '#'
00054         BACKSLASH = 0x005C  // '\\'
00055     };
00056 
00057     static const UChar HEX_DIGITS[32];
00058 
00062     static const char _ID[];
00063 
00067     UnicodeString pattern;
00068 
00072     UnicodeString prefix;
00073 
00077     UnicodeString suffix;
00078 
00083     int8_t minDigits;
00084 
00089     UBool uppercase;
00090 
00095     static const char fgClassID;
00096 
00097 public:
00098 
00111     UnicodeToHexTransliterator(const UnicodeString& pattern,
00112                                UBool isUppercase,
00113                                UnicodeFilter* adoptedFilter,
00114                                UErrorCode& status);
00115 
00124     UnicodeToHexTransliterator(const UnicodeString& pattern,
00125                                UErrorCode& status);
00126 
00132     UnicodeToHexTransliterator(UnicodeFilter* adoptedFilter = 0);
00133 
00138     virtual ~UnicodeToHexTransliterator();
00139 
00144     UnicodeToHexTransliterator(const UnicodeToHexTransliterator&);
00145 
00150     UnicodeToHexTransliterator& operator=(const UnicodeToHexTransliterator&);
00151 
00156     virtual Transliterator* clone(void) const;
00157 
00185     void applyPattern(const UnicodeString& thePattern, UErrorCode& status);
00186 
00191     const UnicodeString& toPattern(void) const;
00192 
00197     virtual UBool isUppercase(void) const;
00198 
00203     virtual void setUppercase(UBool outputUppercase);
00204 
00209     virtual void handleTransliterate(Replaceable& text, UTransPosition& offsets,
00210                                      UBool isIncremental) const;
00211 
00217     virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
00218 
00224     static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00225 };
00226 
00227 inline UnicodeToHexTransliterator::~UnicodeToHexTransliterator() {}
00228 
00229 U_NAMESPACE_END
00230 #endif /* ICU_COMPOUNDTRANSLITERATOR_USE_DEPRECATES */
00231 
00232 #endif /* #if !UCONFIG_NO_TRANSLITERATION */
00233 
00234 #endif

Generated on Wed Dec 18 16:50:02 2002 for ICU 2.4 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001