17 #if !defined(ON_STRING_INC_) 18 #define ON_STRING_INC_ 47 ON::sort_algorithm method,
51 size_t sizeof_element,
52 int (*compare)(
const void*,
const void*)
57 ON::sort_algorithm method,
61 size_t sizeof_element,
62 int(*compare)(
const void*,
const void*)
97 ON::sort_algorithm method,
101 size_t sizeof_element,
102 int (*compare)(
const void*,
const void*,
void*),
108 ON::sort_algorithm method,
112 size_t sizeof_element,
113 int(*compare)(
const void*,
const void*,
void*),
152 size_t sizeof_element,
153 int (*compare)(
const void*,
const void*)
160 size_t sizeof_element,
161 int (*compare)(
const void*,
const void*)
168 size_t sizeof_element,
169 int (*compare)(
void*,
const void*,
const void*),
177 size_t sizeof_element,
178 int (*compare)(
void*,
const void*,
const void*),
198 void ON_SortDoubleArray(
199 ON::sort_algorithm sort_algorithm,
216 void ON_SortDoubleArrayIncreasing(
232 void ON_SortDoubleArrayDecreasing(
252 void ON_SortIntArray(
253 ON::sort_algorithm sort_algorithm,
273 void ON_SortUnsignedIntArray(
274 ON::sort_algorithm sort_algorithm,
294 void ON_SortUINT64Array(
295 ON::sort_algorithm sort_algorithm,
317 void ON_SortStringArray(
318 ON::sort_algorithm sort_algorithm,
324 const int* ON_BinarySearchIntArray(
331 const unsigned int* ON_BinarySearchUnsignedIntArray(
333 const unsigned int* base,
338 const void* ON_BinarySearchArrayForUnsingedInt(
342 size_t sizeof_element,
347 const double* ON_BinarySearchDoubleArray(
389 bool SetBufferCheckSum(
403 bool SetFileCheckSum(
415 bool SetFileCheckSum(
416 const wchar_t* filename
445 bool bSkipTimeCheck =
false 459 const wchar_t* filename,
460 bool bSkipTimeCheck =
false 486 int ON_StringLengthUTF8(
501 int ON_StringLengthUTF16(
502 const ON__UINT16*
string 516 int ON_StringLengthUTF32(
517 const ON__UINT32*
string 531 int ON_StringLengthWideChar(
532 const wchar_t*
string 549 int ON_StringLengthUTF8(
551 size_t string_capacity
568 int ON_StringLengthUTF16(
569 const ON__UINT16*
string,
570 size_t string_capacity
587 int ON_StringLengthUTF32(
588 const ON__UINT32*
string,
589 size_t string_capacity
606 int ON_StringLengthWideChar(
607 const wchar_t*
string,
608 size_t string_capacity
642 int ON_StringCompareOrdinalUTF8(
647 bool bOrdinalIgnoreCase
681 int ON_StringCompareOrdinalUTF16(
682 const ON__UINT16* string1,
684 const ON__UINT16* string2,
686 bool bOrdinalIgnoreCase
719 int ON_StringCompareOrdinalUTF32(
720 const ON__UINT32* string1,
722 const ON__UINT32* string2,
724 bool bOrdinalIgnoreCase
760 int ON_StringCompareOrdinalWideChar(
761 const wchar_t* string1,
763 const wchar_t* string2,
765 bool bOrdinalIgnoreCase
782 size_t stack_buffer_capacity
788 size_t buffer_capacity
792 size_t m_buffer_capacity;
798 size_t m_heap_buffer_capacity;
807 wchar_t* stack_buffer,
808 size_t stack_buffer_capacity
814 size_t buffer_capacity
818 size_t m_buffer_capacity;
823 wchar_t* m_heap_buffer;
824 size_t m_heap_buffer_capacity;
828 ON__UINT32 ON_UnicodeMapCodePointOrdinal(
829 ON_StringMapOrdinalType map_type,
830 ON__UINT32 unicode_code_point
834 ON__UINT32 ON_UnicodeMapCodePoint(
836 ON_StringMapType map_type,
837 ON__UINT32 unicode_code_point
856 ON_StringMapOrdinalType mapping
873 const wchar_t* sWideString,
875 ON_StringMapOrdinalType mapping
888 static const ON_String EmptyString;
890 static const
char Backspace;
891 static const
char Tab;
892 static const
char LineFeed;
893 static const
char VerticalTab;
894 static const
char FormFeed;
895 static const
char CarriageReturn;
896 static const
char Escape;
897 static const
char Space;
898 static const
char Slash;
899 static const
char Backslash;
900 static const
char Pipe;
905 explicit operator
bool()
const {
return IsNotEmpty(); }
908 #if defined(ON_HAS_RVALUEREF) 926 ON_String(
const wchar_t* src,
int length );
929 #if defined(ON_RUNTIME_WIN) 931 bool LoadResourceString( HINSTANCE, UINT);
937 void EmergencyDestroy();
950 void EnableReferenceCounting(
bool bEnable );
956 bool IsReferenceCounted()
const;
971 unsigned int UnsignedLength()
const;
987 static unsigned int UnsignedLength(
991 bool IsEmpty()
const;
992 bool IsNotEmpty()
const;
995 char& operator[](
int);
996 char operator[](
int)
const;
997 char GetAt(
int)
const;
998 void SetAt(
int,
char);
999 void SetAt(
int,
unsigned char);
1001 operator const char*()
const;
1008 ON_String& operator=(
const unsigned char*);
1009 ON_String& operator=(
const wchar_t* src);
1015 ON_String operator+(
unsigned char)
const;
1017 ON_String operator+(
const unsigned char*)
const;
1020 void Append(
const char*,
int );
1021 void Append(
const unsigned char*,
int );
1024 const ON_String& operator+=(
unsigned char);
1025 const ON_String& operator+=(
const char*);
1026 const ON_String& operator+=(
const unsigned char*);
1028 ON_DEPRECATED_MSG(
"Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1029 int Compare( const
char* ) const;
1031 ON_DEPRECATED_MSG("Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1032 int Compare( const
unsigned char* ) const;
1034 ON_DEPRECATED_MSG("Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1035 int CompareNoCase( const
char* ) const;
1037 ON_DEPRECATED_MSG("Use CompareOrdinal(), ComparePath(), CompareAttributeName(), or a test that is linguistically apprropriate")
1038 int CompareNoCase( const
unsigned char* ) const;
1047 const
char* other_string,
1053 const
char* string1,
1054 const
char* string2,
1060 const
char* string1,
1062 const
char* string2,
1065 bool bOrdinalIgnoreCase
1086 const
char* other_string,
1103 const
char* string1,
1104 const
char* string2,
1130 const
char* string1,
1132 const
char* string2,
1140 bool bOrdinalIgnoreCase
1144 const
char* other_string,
1145 bool bOrdinalIgnoreCase
1148 static
bool EqualOrdinal(
1149 const
char* string1,
1150 const
char* string2,
1151 bool bOrdinalIgnoreCase
1154 static
bool EqualOrdinal(
1155 const
char* string1,
1157 const
char* string2,
1159 bool bOrdinalIgnoreCase
1185 const
char* other_string,
1207 static
int CompareOrdinal(
1208 const
char* string1,
1209 const
char* string2,
1240 static
int CompareOrdinal(
1241 const
char* string1,
1243 const
char* string2,
1245 bool bOrdinalIgnoreCase
1263 const
char* other_path
1267 const
char* other_path
1287 static
int ComparePath(
1292 static
bool EqualPath(
1314 static
int ComparePath(
1321 static
bool EqualPath(
1337 int CompareAttributeName(
1338 const
char* other_name
1340 bool EqualAttributeName(
1341 const
char* other_name
1355 static
int CompareAttributeName(
1359 static
bool EqualAttributeName(
1374 bool WildCardMatch( const
char* ) const;
1375 bool WildCardMatch( const
unsigned char* ) const;
1387 bool WildCardMatchNoCase( const
char* ) const;
1388 bool WildCardMatchNoCase( const
unsigned char* ) const;
1399 int Replace( const
char* token1, const
char* token2 );
1400 int Replace( const
unsigned char* token1, const
unsigned char* token2 );
1401 int Replace(
char utf8_single_byte_c1,
char utf8_single_byte_c2);
1402 int Replace(
unsigned char utf8_single_byte_c1,
unsigned char utf8_single_byte_c2);
1431 static
char MapCharacterOrdinal(
1432 ON_StringMapOrdinalType map_type,
1437 ON_StringMapOrdinalType map_type
1464 static
int MapStringOrdinal(
1465 ON_StringMapOrdinalType map_type,
1468 char* mapped_string,
1469 int mapped_string_capacity
1474 ON_StringMapType map_type
1479 ON_StringMapType map_type,
1526 static
int MapString(
1528 ON_StringMapType map_type,
1531 char* mapped_string,
1532 int mapped_string_capacity
1538 void MakeUpperOrdinal();
1539 void MakeLowerOrdinal();
1542 ON_StringMapOrdinalType mapping
1547 static
char* Reverse(
1554 void TrimLeft(const
char* =
nullptr);
1555 void TrimRight(const
char* =
nullptr);
1556 void TrimLeftAndRight(const
char* =
nullptr);
1559 int Remove(const
char utf8_single_byte_c);
1564 char utf8_single_byte_c
1567 unsigned char utf8_single_byte_c
1570 char utf8_single_byte_c
1573 unsigned char utf8_single_byte_c
1581 const
unsigned char*
1588 const
unsigned char*,
1595 const
unsigned char*
1630 static const
ON_String ApproximateFromNumber(
1633 static const
ON_String PreciseFromNumber(
1657 static const
ON_String HexadecimalFromBytes(
1658 const ON__UINT8* bytes,
1660 bool bCapitalDigits,
1701 bool ON_VARGS_FUNC_CDECL Format(
1706 bool ON_VARGS_FUNC_CDECL Format(
1707 const
unsigned char* format,
1711 static const
ON_wString ON_VARGS_FUNC_CDECL FormatToString(
1722 const
unsigned char* format,
1766 static
int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
1768 size_t buffer_capacity,
1773 static
int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
1779 static
int FormatVargsIntoBuffer(
1781 size_t buffer_capacity,
1786 static
int FormatVargsIntoBuffer(
1799 static
int FormatVargsOutputCount(
1814 int ON_VARGS_FUNC_CDECL Scan(
1819 int ON_VARGS_FUNC_CDECL Scan(
1820 const
unsigned char* format,
1824 static
int ON_VARGS_FUNC_CDECL ScanBuffer(
1830 static
int ON_VARGS_FUNC_CDECL ScanBuffer(
1831 const
unsigned char* buffer,
1832 const
unsigned char* format,
1836 static
int ScanBufferVargs(
1842 static
int ScanBufferVargs(
1843 const
unsigned char* buffer,
1844 const
unsigned char* format,
1859 static const
char* ToNumber(
1861 char value_on_failure,
1864 static const
char* ToNumber(
1866 unsigned char value_on_failure,
1867 unsigned char* value
1869 static const
char* ToNumber(
1871 short value_on_failure,
1874 static const
char* ToNumber(
1876 unsigned short value_on_failure,
1877 unsigned short* value
1879 static const
char* ToNumber(
1881 int value_on_failure,
1884 static const
char* ToNumber(
1886 unsigned int value_on_failure,
1889 static const
char* ToNumber(
1891 ON__INT64 value_on_failure,
1894 static const
char* ToNumber(
1896 ON__UINT64 value_on_failure,
1899 static const
char* ToNumber(
1901 double value_on_failure,
1907 char* ReserveArray(
size_t);
1910 char* SetLength(
size_t);
1912 const
char* Array() const;
1919 unsigned int SizeOf() const;
1921 ON__UINT32 DataCRC(ON__UINT32 current_remainder) const;
1926 static
void SplitPath(
1943 struct ON_aStringHeader* Header() const;
1944 char* CreateArray(
int);
1946 void CopyToArray( const ON_String& );
1947 void CopyToArray(
int, const
char* );
1948 void CopyToArray(
int, const
unsigned char* );
1949 void CopyToArray(
int, const
wchar_t* );
1950 void AppendToArray( const ON_String& );
1951 void AppendToArray(
int, const
char* );
1952 void AppendToArray(
int, const
unsigned char* );
1960 bool operator==( const ON_String& lhs, const ON_String& rhs );
1967 bool operator!=(const ON_String& lhs, const ON_String& rhs);
1974 bool operator<(const ON_String& lhs, const ON_String& rhs);
1981 bool operator>(const ON_String& lhs, const ON_String& rhs);
1988 bool operator<=(const ON_String& lhs, const ON_String& rhs);
1995 bool operator>=(const ON_String& lhs, const ON_String& rhs);
2002 bool operator==( const ON_String& lhs, const
char* rhs );
2009 bool operator!=(const ON_String& lhs, const
char* rhs);
2016 bool operator<(const ON_String& lhs, const
char* rhs);
2023 bool operator>(const ON_String& lhs, const
char* rhs);
2030 bool operator<=(const ON_String& lhs, const
char* rhs);
2037 bool operator>=(const ON_String& lhs, const
char* rhs);
2044 bool operator==( const
char* lhs, const ON_String& rhs );
2051 bool operator!=(const
char* lhs, const ON_String& rhs);
2058 bool operator<(const
char* lhs, const ON_String& rhs);
2065 bool operator>(const
char* lhs, const ON_String& rhs);
2072 bool operator<=(const
char* lhs, const ON_String& rhs);
2079 bool operator>=(const
char* lhs, const ON_String& rhs);
2095 static const ON_wString EmptyString;
2097 static const wchar_t Backspace;
2098 static const wchar_t Tab;
2099 static const wchar_t LineFeed;
2100 static const wchar_t VerticalTab;
2101 static const wchar_t FormFeed;
2102 static const wchar_t CarriageReturn;
2103 static const wchar_t Escape;
2104 static const wchar_t Space;
2105 static const wchar_t Slash;
2106 static const wchar_t Backslash;
2107 static const wchar_t Pipe;
2109 #if defined(ON_SIZEOF_WCHAR_T) && ON_SIZEOF_WCHAR_T >= 2 2113 static const wchar_t RadiusSymbol;
2114 static const wchar_t DegreeSymbol;
2115 static const wchar_t PlusMinusSymbol;
2116 static const wchar_t DiameterSymbol;
2117 static const wchar_t RecyclingSymbol;
2118 static const wchar_t ReplacementCharacter;
2119 static const wchar_t NextLine;
2120 static const wchar_t LineSeparator;
2121 static const wchar_t ParagraphSeparator;
2122 static const wchar_t NoBreakSpace;
2123 static const wchar_t NarrowNoBreakSpace;
2124 static const wchar_t ZeroWidthSpace;
2130 explicit operator bool()
const {
return IsNotEmpty(); }
2134 ON_wString() ON_NOEXCEPT;
2135 ON_wString(
const ON_wString& );
2137 #if defined(ON_HAS_RVALUEREF) 2139 ON_wString( ON_wString&& ) ON_NOEXCEPT;
2142 ON_wString& operator=( ON_wString&& ) ON_NOEXCEPT;
2145 ON_wString(
const ON_String& src );
2147 ON_wString(
const char* src );
2148 ON_wString(
const char* src,
int );
2149 ON_wString(
char,
int = 1 );
2151 ON_wString(
const unsigned char* src);
2152 ON_wString(
const unsigned char*src,
int );
2153 ON_wString(
unsigned char,
int = 1 );
2155 ON_wString(
const wchar_t* );
2156 ON_wString(
const wchar_t*,
int );
2157 ON_wString(
wchar_t,
int = 1 );
2159 #if defined(ON_RUNTIME_WIN) 2161 bool LoadResourceString(HINSTANCE, UINT);
2167 void EmergencyDestroy();
2180 void EnableReferenceCounting(
bool bEnable );
2186 bool IsReferenceCounted()
const;
2200 unsigned int UnsignedLength()
const;
2208 const wchar_t*
string 2216 static unsigned int UnsignedLength(
2217 const wchar_t*
string 2220 bool IsEmpty()
const;
2221 bool IsNotEmpty()
const;
2224 wchar_t& operator[](
int);
2225 wchar_t operator[](
int)
const;
2226 wchar_t GetAt(
int)
const;
2227 void SetAt(
int,
char);
2228 void SetAt(
int,
unsigned char);
2229 void SetAt(
int,
wchar_t);
2231 operator const wchar_t*()
const;
2234 const ON_wString& operator=(
const ON_wString&);
2235 const ON_wString& operator=(
const ON_String& src);
2236 const ON_wString& operator=(
char);
2237 const ON_wString& operator=(
const char* src);
2238 const ON_wString& operator=(
unsigned char);
2239 const ON_wString& operator=(
const unsigned char* src);
2240 const ON_wString& operator=(
wchar_t);
2241 const ON_wString& operator=(
const wchar_t*);
2244 void Append(
const char* sUTF8,
int );
2245 void Append(
const unsigned char* sUTF8,
int );
2246 void Append(
const wchar_t*,
int );
2247 const ON_wString& operator+=(
const ON_wString&);
2248 const ON_wString& operator+=(
const ON_String& sUTF8);
2249 const ON_wString& operator+=(
char);
2250 const ON_wString& operator+=(
unsigned char);
2251 const ON_wString& operator+=(
wchar_t);
2252 const ON_wString& operator+=(
const char* sUTF8);
2253 const ON_wString& operator+=(
const unsigned char* sUTF8);
2254 const ON_wString& operator+=(
const wchar_t*);
2257 ON_wString operator+(
const ON_wString&)
const;
2258 ON_wString operator+(
const ON_String& sUTF8)
const;
2259 ON_wString operator+(
char)
const;
2260 ON_wString operator+(
unsigned char)
const;
2261 ON_wString operator+(
wchar_t)
const;
2262 ON_wString operator+(
const char* sUTF8)
const;
2263 ON_wString operator+(
const unsigned char* sUTF8)
const;
2264 ON_wString operator+(
const wchar_t*)
const;
2268 int Compare(
const wchar_t* )
const;
2272 int CompareNoCase(
const wchar_t* )
const;
2275 const ON_wString& other_string,
2281 const wchar_t* other_string,
2287 const wchar_t* string1,
2288 const wchar_t* string2,
2314 const wchar_t* string1,
2316 const wchar_t* string2,
2334 const ON_wString& other_string,
2340 const wchar_t* other_string,
2357 const wchar_t* string1,
2358 const wchar_t* string2,
2384 const wchar_t* string1,
2386 const wchar_t* string2,
2393 const ON_wString& other_string,
2394 bool bOrdinalIgnoreCase
2398 const wchar_t* other_string,
2399 bool bOrdinalIgnoreCase
2402 static bool EqualOrdinal(
2403 const wchar_t* string1,
2404 const wchar_t* string2,
2405 bool bOrdinalIgnoreCase
2408 static bool EqualOrdinal(
2409 const wchar_t* string1,
2411 const wchar_t* string2,
2413 bool bOrdinalIgnoreCase
2435 const ON_wString& other_string,
2436 bool bOrdinalIgnoreCase
2440 const wchar_t* other_string,
2441 bool bOrdinalIgnoreCase
2463 static int CompareOrdinal(
2464 const wchar_t* string1,
2465 const wchar_t* string2,
2466 bool bOrdinalIgnoreCase
2492 static int CompareOrdinal(
2493 const wchar_t* string1,
2495 const wchar_t* string2,
2497 bool bOrdinalIgnoreCase
2516 const wchar_t* other_path
2519 const wchar_t* other_path
2539 static int ComparePath(
2540 const wchar_t* path1,
2541 const wchar_t* path2
2543 static bool EqualPath(
2544 const wchar_t* path1,
2545 const wchar_t* path2
2565 static int ComparePath(
2566 const wchar_t* path1,
2568 const wchar_t* path2,
2571 static bool EqualPath(
2572 const wchar_t* path1,
2574 const wchar_t* path2,
2587 int CompareAttributeName(
2588 const wchar_t* other_name
2590 bool EqualAttributeName(
2591 const wchar_t* other_name
2605 static int CompareAttributeName(
2606 const wchar_t* name1,
2607 const wchar_t* name2
2609 static bool EqualAttributeName(
2610 const wchar_t* name1,
2611 const wchar_t* name2
2625 bool WildCardMatch(
const wchar_t* )
const;
2637 bool WildCardMatchNoCase(
const wchar_t* )
const;
2648 int Replace(
const wchar_t* token1,
const wchar_t* token2 );
2649 int Replace(
wchar_t token1,
wchar_t token2 );
2682 int ReplaceWhiteSpace(
wchar_t token,
const wchar_t* whitespace = 0 );
2696 int RemoveWhiteSpace(
const wchar_t* whitespace = 0 );
2709 const ON_wString RemovePrefix(
2710 const wchar_t* prefix,
2726 const ON_wString RemoveSuffix(
2727 const wchar_t* suffix,
2746 const ON_wString SubString(
2749 const ON_wString SubString(
2768 static wchar_t MapCharacterOrdinal(
2769 ON_StringMapOrdinalType map_type,
2773 ON_wString MapStringOrdinal(
2774 ON_StringMapOrdinalType map_type
2798 static int MapStringOrdinal(
2799 ON_StringMapOrdinalType map_type,
2800 const wchar_t*
string,
2802 wchar_t* mapped_string,
2803 int mapped_string_capacity
2806 ON_wString MapString(
2808 ON_StringMapType map_type
2811 static ON_wString MapString(
2813 ON_StringMapType map_type,
2814 const wchar_t*
string,
2859 static int MapString(
2861 ON_StringMapType map_type,
2862 const wchar_t*
string,
2864 wchar_t* mapped_string,
2865 int mapped_string_capacity
2873 ON_StringMapOrdinalType mapping
2881 ON_wString Reverse()
const;
2883 static wchar_t* Reverse(
2888 void MakeUpperOrdinal();
2889 void MakeLowerOrdinal();
2900 void TrimLeft(
const wchar_t* s =
nullptr);
2910 void TrimRight(
const wchar_t* s =
nullptr);
2912 void TrimLeftAndRight(
const wchar_t* s =
nullptr);
2928 char utf8_single_byte_c
2931 unsigned char utf8_single_byte_c
2959 char utf8_single_byte_c
2962 unsigned char utf8_single_byte_c
2971 const unsigned char* sUTF8
2974 const wchar_t* wcharString
2977 char utf8_single_byte_c,
2981 unsigned char utf8_single_byte_c,
2997 const unsigned char* sUTF8,
3001 const wchar_t* wcharString,
3005 const wchar_t* wcharString,
3009 const wchar_t* character_set
3031 char utf8_single_byte_c
3034 unsigned char utf8_single_byte_c
3044 const wchar_t* wideString
3053 static const ON_wString FromNumber(
3056 static const ON_wString FromNumber(
3059 static const ON_wString FromNumber(
3062 static const ON_wString FromNumber(
3065 static const ON_wString FromNumber(
3068 static const ON_wString FromNumber(
3071 static const ON_wString FromNumber(
3074 static const ON_wString FromNumber(
3077 static const ON_wString FromNumber(
3080 static const ON_wString ApproximateFromNumber(
3083 static const ON_wString PreciseFromNumber(
3108 static const ON_wString FromUnicodeCodePoints(
3109 const ON__UINT32* code_points,
3110 int code_point_count,
3111 ON__UINT32 error_code_point
3133 static const ON_wString HexadecimalFromBytes(
3134 const ON__UINT8* bytes,
3136 bool bCapitalDigits,
3178 bool ON_VARGS_FUNC_CDECL Format(
3179 const wchar_t* format,
3183 static const ON_wString ON_VARGS_FUNC_CDECL FormatToString(
3184 const wchar_t* format,
3189 const wchar_t* format,
3234 static int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
3236 size_t buffer_capacity,
3237 const wchar_t* format,
3241 static int ON_VARGS_FUNC_CDECL FormatIntoBuffer(
3243 const wchar_t* format,
3247 static int FormatVargsIntoBuffer(
3249 const wchar_t* format,
3253 static int FormatVargsIntoBuffer(
3255 size_t buffer_capacity,
3256 const wchar_t* format,
3267 static int FormatVargsOutputCount(
3268 const wchar_t* format,
3282 int ON_VARGS_FUNC_CDECL Scan(
3283 const wchar_t* format,
3287 static int ON_VARGS_FUNC_CDECL ScanBuffer(
3288 const wchar_t* buffer,
3289 const wchar_t* format,
3293 static int ScanBufferVargs(
3294 const wchar_t* buffer,
3295 const wchar_t* format,
3306 static const wchar_t* ToNumber(
3307 const wchar_t* buffer,
3308 char value_on_failure,
3311 static const wchar_t* ToNumber(
3312 const wchar_t* buffer,
3313 unsigned char value_on_failure,
3314 unsigned char* value
3316 static const wchar_t* ToNumber(
3317 const wchar_t* buffer,
3318 short value_on_failure,
3321 static const wchar_t* ToNumber(
3322 const wchar_t* buffer,
3323 unsigned short value_on_failure,
3324 unsigned short* value
3326 static const wchar_t* ToNumber(
3327 const wchar_t* buffer,
3328 int value_on_failure,
3331 static const wchar_t* ToNumber(
3332 const wchar_t* buffer,
3333 unsigned int value_on_failure,
3336 static const wchar_t* ToNumber(
3337 const wchar_t* buffer,
3338 ON__INT64 value_on_failure,
3341 static const wchar_t* ToNumber(
3342 const wchar_t* buffer,
3343 ON__UINT64 value_on_failure,
3346 static const wchar_t* ToNumber(
3347 const wchar_t* buffer,
3348 double value_on_failure,
3354 wchar_t* ReserveArray(
size_t);
3357 wchar_t* SetLength(
size_t);
3359 const wchar_t* Array()
const;
3366 unsigned int SizeOf()
const;
3372 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
3379 ON__UINT32 DataCRCLower(ON__UINT32 current_remainder)
const;
3384 static void SplitPath(
3392 static void SplitPath(
3393 const wchar_t* path,
3409 struct ON_wStringHeader* Header()
const;
3410 wchar_t* CreateArray(
int);
3413 void CopyToArray(
int,
const char* );
3414 void CopyToArray(
int,
const unsigned char* );
3415 void CopyToArray(
int,
const wchar_t* );
3417 void AppendToArray(
int,
const char* );
3418 void AppendToArray(
int,
const unsigned char* );
3419 void AppendToArray(
int,
const wchar_t* );
3469 bool operator==(
const ON_wString& lhs,
const wchar_t* rhs );
3476 bool operator!=(
const ON_wString& lhs,
const wchar_t* rhs);
3483 bool operator<(
const ON_wString& lhs,
const wchar_t* rhs);
3490 bool operator>(
const ON_wString& lhs,
const wchar_t* rhs);
3497 bool operator<=(
const ON_wString& lhs,
const wchar_t* rhs);
3504 bool operator>=(
const ON_wString& lhs,
const wchar_t* rhs);
3511 bool operator==(
const wchar_t* lhs,
const ON_wString& rhs );
3518 bool operator!=(
const wchar_t* lhs,
const ON_wString& rhs);
3525 bool operator<(
const wchar_t* lhs,
const ON_wString& rhs);
3532 bool operator>(
const wchar_t* lhs,
const ON_wString& rhs);
3539 bool operator<=(
const wchar_t* lhs,
const ON_wString& rhs);
3546 bool operator>=(
const wchar_t* lhs,
const ON_wString& rhs);
3584 bool IsValidAndNotEmpty()
const;
3590 bool IsEmptyNameHash()
const;
3596 bool IsInvalidNameHash()
const;
3602 bool IsFilePathHash()
const;
3608 bool IgnoreCase()
const;
3629 const char* utf8_name
3633 const char* utf8_name
3655 const char* utf8_name
3660 const char* utf8_name
3668 const wchar_t* name,
3673 const wchar_t* name,
3681 const char* utf8_name,
3686 const char* utf8_name,
3696 const wchar_t* name,
3702 const wchar_t* name,
3712 const char* utf8_name,
3718 const char* utf8_name,
3735 const wchar_t* file_path
3739 const char* file_path
3742 static int CompareNameSHA1(
3747 static int CompareNameSHA1Ptr(
3752 static int CompareParentId(
3757 static int CompareParentIdPtr(
3775 static int ComparePtr(
3782 ON__UINT32 MappedNameCodePointCount()
const;
3788 ON__UINT32 DataCRC(ON__UINT32 current_remainder)
const;
3791 ON__UINT32 IdCRC(ON__UINT32 current_remainder)
const;
3794 ON__UINT32 NameCRC(ON__UINT32 current_remainder)
const;
3802 flags_length_mask = 0x0FFFFFFF,
3803 flags_case_sensitive = 0x80000000,
3804 flags_file_path = 0xFFFFFFFF
3810 ON__UINT32 m_flags = 0;
3819 ON_UUID m_parent_id = ON_nil_uuid;
3837 ON__UINT32 Internal_DotNetInterfaceGetFlags()
const;
3906 ON::LengthUnitSystem length_unit_system
3910 ON::LengthUnitSystem length_unit_system
3924 const wchar_t* custom_unit_name,
3925 double meters_per_custom_unit
3986 bool IsValid()
const;
4003 bool IsCustomUnitSystem()
const;
4006 ON::LengthUnitSystem us
4022 void SetCustomUnitSystem(
4023 const wchar_t* custom_unit_name,
4024 double meters_per_custom_unit
4034 void SetCustomUnitSystemName(
4035 const wchar_t* custom_unit_name
4045 void SetCustomUnitSystemScale(
4046 double meters_per_custom_unit
4049 double MetersPerUnit()
const;
4050 ON::LengthUnitSystem UnitSystem()
const;
4055 ON::LengthUnitSystem m_unit_system = ON::LengthUnitSystem::Meters;
4056 unsigned int m_reserved = 0;
4059 double m_meters_per_unit = 1.0;
ON_UUID is a 16 byte universally unique identifier.
Definition: opennurbs_uuid.h:32
Definition: opennurbs_sha1.h:19
Definition: opennurbs_string.h:2020
Definition: opennurbs_string.h:753
Definition: opennurbs_string.h:852
Definition: opennurbs_string.h:779
An ON_NameHash is designed to help search for and compare attribute names like the ON_ModelComponent...
Definition: opennurbs_string.h:3434
Definition: opennurbs_string.h:3739
Definition: opennurbs_textlog.h:20
Definition: opennurbs_archive.h:1783
Definition: opennurbs_string.h:341
Definition: opennurbs_locale.h:32
static const ON_SHA1_Hash ZeroDigest
Definition: opennurbs_sha1.h:22
Definition: opennurbs_file_utilities.h:1125