]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/uspoof_impl.h
ICU-64260.0.1.tar.gz
[apple/icu.git] / icuSources / i18n / uspoof_impl.h
index a6b1e73e22d796a40583bf90f27756ab2bd1a5bd..b111d4b16a937669b96d996ccd1e0d8d21a3c23b 100644 (file)
 #include "unicode/uspoof.h"
 #include "unicode/uscript.h"
 #include "unicode/udata.h"
-
+#include "udataswp.h"
 #include "utrie2.h"
 
 #if !UCONFIG_NO_NORMALIZATION
 
 #ifdef __cplusplus
 
+#include "capi_helper.h"
+
 U_NAMESPACE_BEGIN
 
 // The maximium length (in UTF-16 UChars) of the skeleton replacement string resulting from
@@ -52,7 +54,8 @@ class ConfusableDataUtils;
   *  Class SpoofImpl corresponds directly to the plain C API opaque type
   *  USpoofChecker.  One can be cast to the other.
   */
-class SpoofImpl : public UObject  {
+class SpoofImpl : public UObject,
+        public IcuCApiHelper<USpoofChecker, SpoofImpl, USPOOF_MAGIC> {
 public:
     SpoofImpl(SpoofData *data, UErrorCode& status);
     SpoofImpl(UErrorCode& status);
@@ -83,6 +86,9 @@ public:
     void getNumerics(const UnicodeString& input, UnicodeSet& result, UErrorCode& status) const;
     URestrictionLevel getRestrictionLevel(const UnicodeString& input, UErrorCode& status) const;
 
+    int32_t findHiddenOverlay(const UnicodeString& input, UErrorCode& status) const;
+    bool isIllegalCombiningDotLeadCharacter(UChar32 cp) const;
+
     /** parse a hex number.  Untility used by the builders.   */
     static UChar32 ScanHex(const UChar *s, int32_t start, int32_t limit, UErrorCode &status);
 
@@ -93,7 +99,6 @@ public:
     // Data Members
     //
 
-    int32_t           fMagic;             // Internal sanity check.
     int32_t           fChecks;            // Bit vector of checks to perform.
 
     SpoofData        *fSpoofData;
@@ -109,7 +114,8 @@ public:
  *  Class CheckResult corresponds directly to the plain C API opaque type
  *  USpoofCheckResult.  One can be cast to the other.
  */
-class CheckResult : public UObject {
+class CheckResult : public UObject,
+        public IcuCApiHelper<USpoofCheckResult, CheckResult, USPOOF_CHECK_MAGIC> {
 public:
     CheckResult();
     virtual ~CheckResult();
@@ -124,7 +130,6 @@ public:
     int32_t toCombinedBitmask(int32_t expectedChecks);
 
     // Data Members
-    int32_t fMagic;                        // Internal sanity check.
     int32_t fChecks;                       // Bit vector of checks that were failed.
     UnicodeSet fNumerics;                  // Set of numerics found in the string.
     URestrictionLevel fRestrictionLevel;   // The restriction level of the string.