X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/b75a7d8f3b4adbae880cab104ce2c6a50eee4db2..b801cf366c7671a99bdcef84d1e9c0ec64b36723:/icuSources/common/unicode/unifunct.h
diff --git a/icuSources/common/unicode/unifunct.h b/icuSources/common/unicode/unifunct.h
index abedddb6..3aa7b035 100644
--- a/icuSources/common/unicode/unifunct.h
+++ b/icuSources/common/unicode/unifunct.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2003, International Business Machines Corporation
+* Copyright (c) 2002-2005, International Business Machines Corporation
* and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -13,6 +13,11 @@
#include "unicode/utypes.h"
#include "unicode/uobject.h"
+/**
+ * \file
+ * \brief C++ API: Unicode Functor
+ */
+
U_NAMESPACE_BEGIN
class UnicodeMatcher;
@@ -23,15 +28,15 @@ class TransliterationRuleData;
* UnicodeFunctor
is an abstract base class for objects
* that perform match and/or replace operations on Unicode strings.
* @author Alan Liu
- * @draft ICU 2.4
+ * @stable ICU 2.4
*/
class U_COMMON_API UnicodeFunctor : public UObject {
- public:
+public:
/**
* Destructor
- * @draft ICU 2.4
+ * @stable ICU 2.4
*/
virtual ~UnicodeFunctor();
@@ -39,7 +44,7 @@ class U_COMMON_API UnicodeFunctor : public UObject {
* Return a copy of this object. All UnicodeFunctor objects
* have to support cloning in order to allow classes using
* UnicodeFunctor to implement cloning.
- * @draft ICU 2.4
+ * @stable ICU 2.4
*/
virtual UnicodeFunctor* clone() const = 0;
@@ -51,7 +56,7 @@ class U_COMMON_API UnicodeFunctor : public UObject {
* cannot be cast to a pointer to a UnicodeMatcher, since
* UnicodeMatcher is a mixin that does not derive from
* UnicodeFunctor.
- * @draft ICU 2.4
+ * @stable ICU 2.4
*/
virtual UnicodeMatcher* toMatcher() const;
@@ -63,45 +68,32 @@ class U_COMMON_API UnicodeFunctor : public UObject {
* cannot be cast to a pointer to a UnicodeReplacer, since
* UnicodeReplacer is a mixin that does not derive from
* UnicodeFunctor.
- * @draft ICU 2.4
+ * @stable ICU 2.4
*/
virtual UnicodeReplacer* toReplacer() const;
/**
* Return the class ID for this class. This is useful only for
- * comparing to a return value from getDynamicClassID(). For example:
- *
- * . Base* polymorphic_pointer = createPolymorphicObject(); - * . if (polymorphic_pointer->getDynamicClassID() == - * . Derived::getStaticClassID()) ... - *+ * comparing to a return value from getDynamicClassID(). * @return The class ID for all objects of this class. * @stable ICU 2.0 */ - static UClassID getStaticClassID(void) { return (UClassID)&fgClassID; } + static UClassID U_EXPORT2 getStaticClassID(void); /** * Returns a unique class ID polymorphically. This method * is to implement a simple version of RTTI, since not all C++ * compilers support genuine RTTI. Polymorphic operator==() and * clone() methods call this method. - * - *
Concrete subclasses of UnicodeFunctor that wish clients to - * be able to identify them should implement getDynamicClassID() - * and also a static method and data member: - * - *
- * static UClassID getStaticClassID() { return (UClassID)&fgClassID; } - * static char fgClassID; - ** - * Subclasses that do not implement this method will have a - * dynamic class ID of UnicodeFunctor::getStatisClassID(). + *
Concrete subclasses of UnicodeFunctor should use the macro + * UOBJECT_DEFINE_RTTI_IMPLEMENTATION from uobject.h to + * provide definitios getStaticClassID and getDynamicClassID. * * @return The class ID for this object. All objects of a given * class have the same class ID. Objects of other classes have * different class IDs. - * @draft ICU 2.4 + * @stable ICU 2.4 */ virtual UClassID getDynamicClassID(void) const = 0; @@ -115,24 +107,18 @@ class U_COMMON_API UnicodeFunctor : public UObject { */ virtual void setData(const TransliterationRuleData*) = 0; - protected: +protected: /** + * Since this class has pure virtual functions, + * a constructor can't be used. * @stable ICU 2.0 */ - UnicodeFunctor(); - - private: + /*UnicodeFunctor();*/ - /** - * Class identifier for subclasses of UnicodeFunctor that do not - * define their class (anonymous subclasses). - */ - static const char fgClassID; }; -inline UnicodeFunctor::UnicodeFunctor() {} -inline UnicodeFunctor::~UnicodeFunctor() {} +/*inline UnicodeFunctor::UnicodeFunctor() {}*/ U_NAMESPACE_END