| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- // © 2016 and later: Unicode, Inc. and others.
 
- // License & terms of use: http://www.unicode.org/copyright.html
 
- /*
 
- **********************************************************************
 
- *   Copyright (C) 2013, International Business Machines
 
- *   Corporation and others.  All Rights Reserved.
 
- **********************************************************************
 
- *
 
- * scriptset.h
 
- *
 
- * created on: 2013 Jan 7
 
- * created by: Andy Heninger
 
- */
 
- #ifndef __SCRIPTSET_H__
 
- #define __SCRIPTSET_H__
 
- #include "unicode/utypes.h"
 
- #include "unicode/uobject.h"
 
- #include "unicode/uscript.h"
 
- #include "uelement.h"
 
- U_NAMESPACE_BEGIN
 
- //-------------------------------------------------------------------------------
 
- //
 
- //  ScriptSet - A bit set representing a set of scripts.
 
- //
 
- //              This class was originally used exclusively with script sets appearing
 
- //              as part of the spoof check whole script confusable binary data. Its
 
- //              use has since become more general, but the continued use to wrap
 
- //              prebuilt binary data does constrain the design.
 
- //
 
- //-------------------------------------------------------------------------------
 
- class U_I18N_API ScriptSet: public UMemory {
 
-   public:
 
-     static constexpr int32_t SCRIPT_LIMIT = 224;  // multiple of 32!
 
-     ScriptSet();
 
-     ScriptSet(const ScriptSet &other);
 
-     ~ScriptSet();
 
-     UBool operator == (const ScriptSet &other) const;
 
-     UBool operator != (const ScriptSet &other) const {return !(*this == other);}
 
-     ScriptSet & operator = (const ScriptSet &other);
 
-     UBool      test(UScriptCode script, UErrorCode &status) const;
 
-     ScriptSet &Union(const ScriptSet &other);
 
-     ScriptSet &set(UScriptCode script, UErrorCode &status);
 
-     ScriptSet &reset(UScriptCode script, UErrorCode &status);
 
-     ScriptSet &intersect(const ScriptSet &other);
 
-     ScriptSet &intersect(UScriptCode script, UErrorCode &status);
 
-     UBool      intersects(const ScriptSet &other) const;  // Sets contain at least one script in commmon.
 
-     UBool      contains(const ScriptSet &other) const;    // All set bits in other are also set in this.
 
-     ScriptSet &setAll();
 
-     ScriptSet &resetAll();
 
-     int32_t countMembers() const;
 
-     int32_t hashCode() const;
 
-     int32_t nextSetBit(int32_t script) const;
 
-     UBool isEmpty() const;
 
-     UnicodeString &displayScripts(UnicodeString &dest) const; // append script names to dest string.
 
-     ScriptSet & parseScripts(const UnicodeString &scriptsString, UErrorCode &status);  // Replaces ScriptSet contents.
 
-     // Wraps around UScript::getScriptExtensions() and adds the corresponding scripts to this instance.
 
-     void setScriptExtensions(UChar32 codePoint, UErrorCode& status);
 
-   private:
 
-     uint32_t  bits[SCRIPT_LIMIT / 32];
 
- };
 
- U_NAMESPACE_END
 
- U_CAPI UBool U_EXPORT2
 
- uhash_compareScriptSet(const UElement key1, const UElement key2);
 
- U_CAPI int32_t U_EXPORT2
 
- uhash_hashScriptSet(const UElement key);
 
- U_CAPI void U_EXPORT2
 
- uhash_deleteScriptSet(void *obj);
 
- #endif // __SCRIPTSET_H__
 
 
  |