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

unifunct.h

00001 /*
00002 **********************************************************************
00003 *   Copyright (c) 2002-2003, 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 #include "unicode/uobject.h"
00015 
00016 U_NAMESPACE_BEGIN
00017 
00018 class UnicodeMatcher;
00019 class UnicodeReplacer;
00020 class TransliterationRuleData;
00021 
00028 class U_COMMON_API UnicodeFunctor : public UObject {
00029 
00030  public:
00031 
00036     virtual ~UnicodeFunctor();
00037 
00044     virtual UnicodeFunctor* clone() const = 0;
00045 
00056     virtual UnicodeMatcher* toMatcher() const;
00057 
00068     virtual UnicodeReplacer* toReplacer() const;
00069 
00081     static UClassID getStaticClassID(void) { return (UClassID)&fgClassID; }
00082 
00106     virtual UClassID getDynamicClassID(void) const = 0;
00107 
00116     virtual void setData(const TransliterationRuleData*) = 0;
00117 
00118  protected:
00119 
00123     UnicodeFunctor();
00124 
00125  private:
00126 
00131     static const char fgClassID;
00132 };
00133 
00134 inline UnicodeFunctor::UnicodeFunctor() {}
00135 inline UnicodeFunctor::~UnicodeFunctor() {}
00136 
00137 U_NAMESPACE_END
00138 
00139 #endif

Generated on Wed Sep 3 17:47:10 2003 for ICU 2.6 by doxygen 1.3.2