00001 // © 2016 and later: Unicode, Inc. and others. 00002 // License & terms of use: http://www.unicode.org/copyright.html 00003 /* 00004 ********************************************************************** 00005 * Copyright (C) 1999-2010, International Business Machines Corporation and others. 00006 * All Rights Reserved. 00007 ********************************************************************** 00008 * Date Name Description 00009 * 11/17/99 aliu Creation. 00010 ********************************************************************** 00011 */ 00012 #ifndef UNIFILT_H 00013 #define UNIFILT_H 00014 00015 #include "unicode/unifunct.h" 00016 #include "unicode/unimatch.h" 00017 00023 U_NAMESPACE_BEGIN 00024 00033 #define U_ETHER ((char16_t)0xFFFF) 00034 00061 class U_COMMON_API UnicodeFilter : public UnicodeFunctor, public UnicodeMatcher { 00062 00063 public: 00068 virtual ~UnicodeFilter(); 00069 00077 virtual UBool contains(UChar32 c) const = 0; 00078 00084 virtual UnicodeMatcher* toMatcher() const; 00085 00090 virtual UMatchDegree matches(const Replaceable& text, 00091 int32_t& offset, 00092 int32_t limit, 00093 UBool incremental); 00094 00099 virtual void setData(const TransliterationRuleData*); 00100 00106 static UClassID U_EXPORT2 getStaticClassID(); 00107 00108 protected: 00109 00110 /* 00111 * Since this class has pure virtual functions, 00112 * a constructor can't be used. 00113 * @stable ICU 2.0 00114 */ 00115 /* UnicodeFilter();*/ 00116 }; 00117 00118 /*inline UnicodeFilter::UnicodeFilter() {}*/ 00119 00120 U_NAMESPACE_END 00121 00122 #endif
1.6.1