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

unifilt.h

00001 /*
00002 * Copyright (C) 1999, International Business Machines Corporation and others. All Rights Reserved.
00003 **********************************************************************
00004 *   Date        Name        Description
00005 *   11/17/99    aliu        Creation.
00006 **********************************************************************
00007 */
00008 #ifndef UNIFILT_H
00009 #define UNIFILT_H
00010 
00011 #include "unicode/unifunct.h"
00012 #include "unicode/unimatch.h"
00013 
00014 U_NAMESPACE_BEGIN
00015 
00023 #define U_ETHER ((UChar)0xFFFF)
00024 
00050 class U_COMMON_API UnicodeFilter : public UnicodeFunctor, public UnicodeMatcher {
00051 
00052 public:
00057     virtual ~UnicodeFilter();
00058 
00066     virtual UBool contains(UChar32 c) const = 0;
00067 
00073     virtual UnicodeMatcher* toMatcher() const;
00074 
00079     virtual UMatchDegree matches(const Replaceable& text,
00080                                  int32_t& offset,
00081                                  int32_t limit,
00082                                  UBool incremental);
00083 
00088     virtual void setData(const TransliterationRuleData*) {}
00089 
00095     virtual inline UClassID getDynamicClassID() const = 0;
00096 
00102     static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
00103 
00104 protected:
00105 
00109     UnicodeFilter();
00110 
00111 private:
00112 
00117     static const char fgClassID;
00118 };
00119 
00120 inline UnicodeFilter::UnicodeFilter() {}
00121 inline UnicodeFilter::~UnicodeFilter() {}
00122 
00123 U_NAMESPACE_END
00124 
00125 #endif

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