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

unifunct.h

00001 /*
00002 **********************************************************************
00003 *   Copyright (c) 2002, International Business Machines Corporation
00004 *   and others.  All Rights Reserved.
00005 **********************************************************************
00006 *   Date        Name        Description
00007 *   01/14/2002  aliu        Creation.
00008 **********************************************************************
00009 */
00010 #ifndef UNIFUNCT_H
00011 #define UNIFUNCT_H
00012 
00013 #include "unicode/utypes.h"
00014 
00015 U_NAMESPACE_BEGIN
00016 
00017 class UnicodeMatcher;
00018 class UnicodeReplacer;
00019 class TransliterationRuleData;
00020 
00026 class U_I18N_API UnicodeFunctor {
00027 
00028  public:
00029 
00033     virtual ~UnicodeFunctor();
00034 
00040     virtual UnicodeFunctor* clone() const = 0;
00041 
00051     virtual UnicodeMatcher* toMatcher() const;
00052 
00062     virtual UnicodeReplacer* toReplacer() const;
00063 
00075     static UClassID getStaticClassID(void) { return (UClassID)&fgClassID; }
00076 
00099     virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); };
00100 
00109     virtual void setData(const TransliterationRuleData*) = 0;
00110 
00111  protected:
00112 
00113     UnicodeFunctor();
00114 
00115  private:
00116 
00121     static const char fgClassID;
00122 };
00123 
00124 inline UnicodeFunctor::UnicodeFunctor() {}
00125 inline UnicodeFunctor::~UnicodeFunctor() {}
00126 
00127 U_NAMESPACE_END
00128 
00129 #endif

Generated on Sun May 22 18:49:52 2005 for ICU 2.1 by  doxygen 1.4.2