HDK
|
#include <UT_StringHolder.h>
Classes | |
class | Holder |
struct | NumberedCompare |
Public Types | |
enum | StorageMode { STORE_EXTERNAL, STORE_NEW, STORE_MALLOC, STORE_INLINE } |
typedef char | value_type |
typedef const char * | const_iterator |
Iterators. More... | |
Public Member Functions | |
SYS_FORCE_INLINE | UT_StringRef () |
SYS_FORCE_INLINE | UT_StringRef (const char *str) |
Will make a shallow reference. More... | |
SYS_FORCE_INLINE | UT_StringRef (const char *data, exint length) |
SYS_FORCE_INLINE | UT_StringRef (const UT_StringLit &lit) |
Construct from string literal. More... | |
SYS_FORCE_INLINE | UT_StringRef (const std::string &str) |
This will make a shallow reference to the contents of the string. More... | |
UT_StringRef (const UT_WorkBuffer &str) | |
This will make a shallow reference to the contents of the string. More... | |
SYS_FORCE_INLINE | UT_StringRef (const UT_String &str) |
This will make a shallow reference to the contents of the string. More... | |
SYS_FORCE_INLINE | UT_StringRef (const UT_StringRef &s) noexcept |
Shares a reference with the source. More... | |
SYS_FORCE_INLINE | UT_StringRef (UT_StringRef &&s) noexcept |
Move constructor. Steals the working data from the original. More... | |
SYS_FORCE_INLINE | ~UT_StringRef () |
bool | isUnique () const |
Returns true this object is the sole owner of the underlying string. More... | |
UT_StringRef & | operator= (const UT_StringRef &s) |
Shares a reference with the source. More... | |
SYS_FORCE_INLINE UT_StringRef & | operator= (UT_StringRef &&s) |
bool | operator== (const UT_StringRef &s) const |
bool | operator== (const char *s) const |
bool | operator== (const UT_String &s) const |
bool | operator!= (const UT_StringRef &s) const |
bool | operator!= (const char *s) const |
bool | operator!= (const UT_String &s) const |
int | spaceship (const UT_StringRef &k) const |
bool | operator< (const UT_StringRef &k) const |
bool | operator<= (const UT_StringRef &k) const |
bool | operator> (const UT_StringRef &k) const |
bool | operator>= (const UT_StringRef &k) const |
int | compare (const UT_StringRef &str, bool ignore_case=false) const |
bool | equal (const UT_StringRef &str, bool ignore_case=false) const |
SYS_FORCE_INLINE SYS_SAFE_BOOL | operator bool () const |
Test whether the string is defined or not. More... | |
bool | startsWith (const UT_StringView &pfx, bool case_sense=true) const |
Imported from UT_String. More... | |
bool | endsWith (const UT_StringView &suffix, bool case_sense=true) const |
bool | match (const char *pattern, bool case_sensitive=true) const |
bool | contains (const char *pattern, bool case_sensitive=true) const |
const char * | fcontain (const char *pattern, bool case_sensitive=true) const |
const char * | findWord (const char *word) const |
bool | multiMatch (const char *pattern, bool case_sensitive, char separator) const |
bool | multiMatch (const char *pattern, bool case_sensitive=true, const char *separators=", ", bool *explicitly_excluded=0, int *match_index=0, ut_PatternRecord *pattern_record=nullptr) const |
bool | multiMatch (const UT_StringMMPattern &pattern, bool *explicitly_excluded=0, int *match_index=0, ut_PatternRecord *pattern_record=nullptr) const |
bool | matchRegex (const char *expr) const |
int | toInt () const |
fpreal | toFloat () const |
bool | isFloat (bool skip_spaces=false, bool loose=false) const |
Determine if string can be seen as a single floating point number. More... | |
bool | isInteger (bool skip_spaces=false) const |
Determine if string can be seen as a single integer number. More... | |
SYS_FORCE_INLINE | operator const char * () const |
SYS_FORCE_INLINE const char * | buffer () const |
SYS_FORCE_INLINE const char * | nonNullBuffer () const |
SYS_FORCE_INLINE const_iterator | begin () const |
SYS_FORCE_INLINE const_iterator | end () const |
std::string | toStdString () const |
SYS_FORCE_INLINE void | swap (UT_StringRef &other) |
SYS_FORCE_INLINE bool | isstring () const |
bool | isEmpty () const |
Same as !isstring() More... | |
bool | empty () const |
method name that maches std::string More... | |
SYS_FORCE_INLINE bool | hasNonSpace () const |
SYS_FORCE_INLINE exint | findCharIndex (char c) const |
Find the location of the character (or -1 if not found) More... | |
SYS_FORCE_INLINE exint | findCharIndex (const char *str) const |
Find the first location of any of the characters in the str passed in. More... | |
SYS_FORCE_INLINE exint | findCharIndex (char c, exint start_offset) const |
Find the location of the character (or -1 if not found) More... | |
SYS_FORCE_INLINE exint | findCharIndex (const char *str, exint start_offset) const |
Find the first location of any of the characters in the str passed in. More... | |
SYS_FORCE_INLINE exint | lastCharIndex (char c, int occurrence_number=1) const |
SYS_FORCE_INLINE exint | countChar (char c) const |
Count the number of times the character c occurs. More... | |
SYS_FORCE_INLINE void | clear () |
SYS_FORCE_INLINE const char * | c_str () const |
SYS_FORCE_INLINE const char * | data () const |
exint | length () const |
unsigned | hash () const |
void | reference (const char *src) |
void | reference (const char *str, exint length) |
void | fastReferenceWithStrlen (const char *src, exint length) |
old name of method: More... | |
int64 | getMemoryUsage (bool inclusive) const |
SYS_NO_DISCARD_RESULT UT_StringRef | forceValidVariableName (const char *safechars=nullptr) const |
SYS_NO_DISCARD_RESULT UT_StringRef | toLower () const |
SYS_NO_DISCARD_RESULT UT_StringRef | toUpper () const |
void | harden (const char *src) |
void | adoptFromMalloc (const char *str, exint length) |
void | adoptFromNew (const char *str, exint length) |
void | adoptFromString (UT_String &str) |
void | adoptFromCharArray (UT_Array< char > &data) |
char * | stealAsMalloc () |
void | saveBinary (std::ostream &os) const |
Save string to binary stream. More... | |
void | saveAscii (std::ostream &os) const |
Static Public Member Functions | |
static SYS_FORCE_INLINE unsigned | hash_string (const char *str, exint len) |
static bool | verifyStringLit () |
Friends | |
class | UT_StringHolder |
void | swap (UT_StringRef &a, UT_StringRef &b) |
Friend specialization of std::swap() to use UT_StringRef::swap() More... | |
UT_API std::ostream & | operator<< (std::ostream &os, const UT_StringRef &d) |
UT_API UT_OStream & | operator<< (UT_OStream &os, const UT_StringRef &d) |
enum | UT_StringSentinelType { SENTINEL } |
SYS_FORCE_INLINE | UT_StringRef (UT_StringSentinelType) |
SYS_FORCE_INLINE | UT_StringRef (UT_StringSentinelType, const char *str) |
str==nullptr turns into sentinel, otherwise act like UT_StringRef(str) More... | |
SYS_FORCE_INLINE bool | isSentinel () const |
SYS_FORCE_INLINE void | makeSentinel () |
A holder for a string, which stores the length and caches the hash value. A UT_StringRef does not necessarily own the string, and it is therefore not safe to e.g. store a UT_StringRef in a container or member variable.
Definition at line 198 of file UT_StringHolder.h.
typedef const char* UT_StringRef::const_iterator |
Iterators.
Definition at line 588 of file UT_StringHolder.h.
typedef char UT_StringRef::value_type |
Definition at line 201 of file UT_StringHolder.h.
Enumerator | |
---|---|
STORE_EXTERNAL | |
STORE_NEW | |
STORE_MALLOC | |
STORE_INLINE |
Definition at line 203 of file UT_StringHolder.h.
|
inline |
Definition at line 280 of file UT_StringHolder.h.
|
inline |
Will make a shallow reference.
Definition at line 289 of file UT_StringHolder.h.
|
inline |
Will make a shallow reference. This is NOT a string view, the string must actually null terminate
Definition at line 299 of file UT_StringHolder.h.
|
inlineexplicit |
Construct from string literal.
Definition at line 307 of file UT_StringHolder.h.
|
inline |
This will make a shallow reference to the contents of the string.
Definition at line 314 of file UT_StringHolder.h.
UT_StringRef::UT_StringRef | ( | const UT_WorkBuffer & | str | ) |
This will make a shallow reference to the contents of the string.
|
inline |
This will make a shallow reference to the contents of the string.
Definition at line 324 of file UT_StringHolder.h.
|
inlinenoexcept |
Shares a reference with the source.
Definition at line 331 of file UT_StringHolder.h.
|
inlinenoexcept |
Move constructor. Steals the working data from the original.
Definition at line 341 of file UT_StringHolder.h.
|
inline |
Definition at line 352 of file UT_StringHolder.h.
|
inlineexplicit |
Special sentinel value support
Definition at line 362 of file UT_StringHolder.h.
|
inline |
str==nullptr turns into sentinel, otherwise act like UT_StringRef(str)
Definition at line 371 of file UT_StringHolder.h.
Definition at line 844 of file UT_StringHolder.h.
|
inline |
Definition at line 591 of file UT_StringHolder.h.
|
inline |
Definition at line 580 of file UT_StringHolder.h.
|
inline |
Definition at line 731 of file UT_StringHolder.h.
|
inline |
Definition at line 722 of file UT_StringHolder.h.
|
inline |
Definition at line 501 of file UT_StringHolder.h.
|
inline |
Definition at line 527 of file UT_StringHolder.h.
|
inline |
Count the number of times the character c
occurs.
Definition at line 716 of file UT_StringHolder.h.
|
inline |
Definition at line 754 of file UT_StringHolder.h.
|
inline |
method name that maches std::string
Definition at line 625 of file UT_StringHolder.h.
|
inline |
Definition at line 594 of file UT_StringHolder.h.
|
inline |
Definition at line 520 of file UT_StringHolder.h.
|
inline |
Definition at line 507 of file UT_StringHolder.h.
old name of method:
Definition at line 790 of file UT_StringHolder.h.
|
inline |
Definition at line 529 of file UT_StringHolder.h.
|
inline |
Find the location of the character (or -1 if not found)
Definition at line 642 of file UT_StringHolder.h.
|
inline |
Find the first location of any of the characters in the str
passed in.
Definition at line 652 of file UT_StringHolder.h.
|
inline |
Find the location of the character (or -1 if not found)
Definition at line 667 of file UT_StringHolder.h.
|
inline |
Find the first location of any of the characters in the str
passed in.
Definition at line 683 of file UT_StringHolder.h.
|
inline |
Definition at line 531 of file UT_StringHolder.h.
SYS_NO_DISCARD_RESULT UT_StringRef UT_StringRef::forceValidVariableName | ( | const char * | safechars = nullptr | ) | const |
Convert the string into a valid C style variable name. All non-alpha numerics will be converted to _. If the first letter is a digit, it is prefixed with an _. If the string is already valid, the string itself is returned. Note that this does NOT force the name to be non-zero in length. The safechars parameter is a string containing extra characters that should be considered safe. These characters are not converted to underscores.
|
inline |
Definition at line 795 of file UT_StringHolder.h.
|
inline |
Often people reflexively use this from UT_String days so this increases code compataibility.
Definition at line 834 of file UT_StringHolder.h.
|
inline |
Definition at line 769 of file UT_StringHolder.h.
|
inlinestatic |
Definition at line 806 of file UT_StringHolder.h.
|
inline |
Definition at line 630 of file UT_StringHolder.h.
|
inline |
Same as !isstring()
Definition at line 621 of file UT_StringHolder.h.
|
inline |
Determine if string can be seen as a single floating point number.
Definition at line 569 of file UT_StringHolder.h.
|
inline |
Determine if string can be seen as a single integer number.
Definition at line 572 of file UT_StringHolder.h.
|
inline |
Special sentinel value support
Definition at line 381 of file UT_StringHolder.h.
|
inline |
Equivalent to (length() != 0) Returns false for isSentinel()
Definition at line 617 of file UT_StringHolder.h.
|
inline |
Returns true this object is the sole owner of the underlying string.
Definition at line 397 of file UT_StringHolder.h.
|
inline |
Definition at line 697 of file UT_StringHolder.h.
Definition at line 759 of file UT_StringHolder.h.
|
inline |
Special sentinel value support
Definition at line 387 of file UT_StringHolder.h.
|
inline |
Definition at line 524 of file UT_StringHolder.h.
bool UT_StringRef::matchRegex | ( | const char * | expr | ) | const |
Returns true if the entire string matches the provided regular expression, false otherwise. See UT_Regex.
|
inline |
Definition at line 534 of file UT_StringHolder.h.
|
inline |
Definition at line 540 of file UT_StringHolder.h.
|
inline |
Definition at line 550 of file UT_StringHolder.h.
|
inline |
Definition at line 584 of file UT_StringHolder.h.
|
inline |
Test whether the string is defined or not.
Definition at line 513 of file UT_StringHolder.h.
|
inline |
Definition at line 576 of file UT_StringHolder.h.
|
inline |
Definition at line 466 of file UT_StringHolder.h.
|
inline |
Definition at line 468 of file UT_StringHolder.h.
|
inline |
Definition at line 470 of file UT_StringHolder.h.
|
inline |
Definition at line 493 of file UT_StringHolder.h.
|
inline |
Definition at line 495 of file UT_StringHolder.h.
|
inline |
Shares a reference with the source.
Definition at line 403 of file UT_StringHolder.h.
|
inline |
Move the contents of about-to-be-destructed string s to this string.
Definition at line 416 of file UT_StringHolder.h.
|
inline |
Definition at line 423 of file UT_StringHolder.h.
|
inline |
Definition at line 446 of file UT_StringHolder.h.
|
inline |
Definition at line 463 of file UT_StringHolder.h.
|
inline |
Definition at line 497 of file UT_StringHolder.h.
|
inline |
Definition at line 499 of file UT_StringHolder.h.
|
inline |
Make a light weight reference to the source. Caller must make sure src lives for the duration of this object, and any objects value copied from this!
Definition at line 779 of file UT_StringHolder.h.
Fast reference that takes the length of the string. This is NOT a string view, the string must actually null terminate at the given length or later functions will be confused.
|
inline |
Save string to ASCII stream. This will add double quotes and escape to the stream if necessary (empty string or contains spaces).
Definition at line 891 of file UT_StringHolder.h.
|
inline |
Save string to binary stream.
Definition at line 886 of file UT_StringHolder.h.
|
inline |
Spaceship comparison returns:
Definition at line 477 of file UT_StringHolder.h.
|
inline |
Imported from UT_String.
Definition at line 516 of file UT_StringHolder.h.
char* UT_StringRef::stealAsMalloc | ( | ) |
|
inline |
Definition at line 604 of file UT_StringHolder.h.
|
inline |
Definition at line 565 of file UT_StringHolder.h.
|
inline |
Definition at line 563 of file UT_StringHolder.h.
SYS_NO_DISCARD_RESULT UT_StringRef UT_StringRef::toLower | ( | ) | const |
Convert to lower case. If the string is already lower case, the string itself is returned.
|
inline |
Converts the contents of this UT_String to a std::string. Since we are never null this is easy
Definition at line 600 of file UT_StringHolder.h.
SYS_NO_DISCARD_RESULT UT_StringRef UT_StringRef::toUpper | ( | ) | const |
Convert to upper case. If the string is already upper case, the string itsef is returned.
|
static |
|
friend |
This operator saves the string to the stream via the string's saveAscii() method, protecting any whitespace (by adding quotes), backslashes or quotes in the string.
|
friend |
|
friend |
Friend specialization of std::swap() to use UT_StringRef::swap()
Definition at line 612 of file UT_StringHolder.h.
|
friend |
Definition at line 948 of file UT_StringHolder.h.
const void* UT_StringRef::myData |
Definition at line 932 of file UT_StringHolder.h.
const char* UT_StringRef::myDataIfChars |
Definition at line 933 of file UT_StringHolder.h.
Holder* UT_StringRef::myDataIfHolder |
Definition at line 934 of file UT_StringHolder.h.