HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
UT_StringRef Class Reference

#include <UT_StringHolder.h>

+ Inheritance diagram for UT_StringRef:

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 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)
 Shares a reference with the source. More...
 
SYS_FORCE_INLINE UT_StringRef (UT_StringRef &&s) SYS_NOEXCEPT
 Move constructor. Steals the working data from the original. More...
 
SYS_FORCE_INLINE ~UT_StringRef ()
 
UT_StringRefoperator= (const UT_StringRef &s)
 Shares a reference with the source. More...
 
SYS_FORCE_INLINE UT_StringRefoperator= (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
 
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 char *prefix, bool case_sense=true, exint len=-1) const
 Imported from UT_String. More...
 
bool endsWith (const char *prefix, bool case_sense=true, exint len=-1) const
 
unsigned multiMatch (const char *pattern, int caseSensitive, char separator) const
 
unsigned multiMatch (const char *pattern, int caseSensitive=1, const char *separators=", ", bool *explicitlyExcluded=0, int *matchIndex=0, ut_PatternRecord *pattern_record=NULL) const
 
unsigned multiMatch (const UT_StringMMPattern &pattern, bool *explicitlyExcluded=0, int *matchIndex=0, ut_PatternRecord *pattern_record=NULL) const
 
int toInt () const
 
fpreal toFloat () const
 
unsigned isFloat (int skip_spaces=0, int loose=0) const
 Determine if string can be seen as a single floating point number. More...
 
unsigned isInteger (int skip_spaces=0) 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
 
SYS_FORCE_INLINE bool hasNonSpace () const
 
SYS_FORCE_INLINE int findChar (char c) const
 
SYS_FORCE_INLINE int lastChar (char c, int occurance_number=1) const
 
SYS_FORCE_INLINE void clear ()
 
SYS_FORCE_INLINE const char * c_str () const
 
exint length () const
 
bool isEmpty () const
 
unsigned hash () const
 
void reference (const char *src)
 
void fastReferenceWithStrlen (const char *src, exint length)
 
int64 getMemoryUsage (bool inclusive) const
 
UT_StringRefoperator+= (const UT_StringRef &src)
 
bool trimBoundingSpace ()
 
UT_StringRef toLower () const
 
void harden (const char *src)
 
void adoptFromMalloc (const char *str, exint length=-1)
 
void adoptFromNew (const char *str, exint length=-1)
 
void adoptFromString (UT_String &str)
 
char * stealAsMalloc ()
 

Static Public Member Functions

static SYS_FORCE_INLINE unsigned hash_string (const char *str, exint len)
 

Friends

class UT_StringHolder
 
UT_API std::ostream & operator<< (std::ostream &os, const UT_StringRef &d)
 
UT_API UT_OStreamoperator<< (UT_OStream &os, const UT_StringRef &d)
 

Detailed Description

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.

See Also
UT_StringHolder
UTmakeUnsafeRef
Examples:
packedshareddata/GU_PackedSharedData.C, and packedsphere/GU_PackedSphere.C.

Definition at line 50 of file UT_StringHolder.h.

Member Typedef Documentation

Iterators.

Definition at line 391 of file UT_StringHolder.h.

Definition at line 53 of file UT_StringHolder.h.

Member Enumeration Documentation

Enumerator
STORE_EXTERNAL 
STORE_NEW 
STORE_MALLOC 
STORE_INLINE 

Definition at line 55 of file UT_StringHolder.h.

Constructor & Destructor Documentation

SYS_FORCE_INLINE UT_StringRef::UT_StringRef ( )
inline

Definition at line 183 of file UT_StringHolder.h.

SYS_FORCE_INLINE UT_StringRef::UT_StringRef ( const char *  str)
inline

Will make a shallow reference.

Definition at line 194 of file UT_StringHolder.h.

SYS_FORCE_INLINE UT_StringRef::UT_StringRef ( const std::string str)
inline

This will make a shallow reference to the contents of the string.

Definition at line 206 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.

SYS_FORCE_INLINE UT_StringRef::UT_StringRef ( const UT_String str)
inline

This will make a shallow reference to the contents of the string.

Definition at line 221 of file UT_StringHolder.h.

SYS_FORCE_INLINE UT_StringRef::UT_StringRef ( const UT_StringRef s)
inline

Shares a reference with the source.

Definition at line 230 of file UT_StringHolder.h.

SYS_FORCE_INLINE UT_StringRef::UT_StringRef ( UT_StringRef &&  s)
inline

Move constructor. Steals the working data from the original.

Definition at line 241 of file UT_StringHolder.h.

SYS_FORCE_INLINE UT_StringRef::~UT_StringRef ( )
inline

Definition at line 248 of file UT_StringHolder.h.

Member Function Documentation

void UT_StringRef::adoptFromMalloc ( const char *  str,
exint  length = -1 
)
inline

Definition at line 619 of file UT_StringHolder.h.

void UT_StringRef::adoptFromNew ( const char *  str,
exint  length = -1 
)
inline

Definition at line 635 of file UT_StringHolder.h.

void UT_StringRef::adoptFromString ( UT_String str)
inline

Definition at line 651 of file UT_StringHolder.h.

SYS_FORCE_INLINE const_iterator UT_StringRef::begin ( void  ) const
inline

Definition at line 394 of file UT_StringHolder.h.

SYS_FORCE_INLINE const char* UT_StringRef::buffer ( ) const
inline
Examples:
SOP/SOP_BouncyAgent.C.

Definition at line 383 of file UT_StringHolder.h.

SYS_FORCE_INLINE const char* UT_StringRef::c_str ( void  ) const
inline
Examples:
RAY/RAY_DemoFile.C.

Definition at line 472 of file UT_StringHolder.h.

SYS_FORCE_INLINE void UT_StringRef::clear ( void  )
inline

Definition at line 460 of file UT_StringHolder.h.

int UT_StringRef::compare ( const UT_StringRef str,
bool  ignore_case = false 
) const
inline

Definition at line 327 of file UT_StringHolder.h.

SYS_FORCE_INLINE const_iterator UT_StringRef::end ( void  ) const
inline

Definition at line 397 of file UT_StringHolder.h.

bool UT_StringRef::endsWith ( const char *  prefix,
bool  case_sense = true,
exint  len = -1 
) const
inline

Definition at line 346 of file UT_StringHolder.h.

bool UT_StringRef::equal ( const UT_StringRef str,
bool  ignore_case = false 
) const
inline

Definition at line 332 of file UT_StringHolder.h.

void UT_StringRef::fastReferenceWithStrlen ( const char *  src,
exint  length 
)
inline

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.

Definition at line 556 of file UT_StringHolder.h.

SYS_FORCE_INLINE int UT_StringRef::findChar ( char  c) const
inline

Definition at line 433 of file UT_StringHolder.h.

int64 UT_StringRef::getMemoryUsage ( bool  inclusive) const
inline

Definition at line 585 of file UT_StringHolder.h.

void UT_StringRef::harden ( const char *  src)

Often people reflexively use this from UT_String days to this increases code compataibility.

unsigned UT_StringRef::hash ( ) const
inline

Definition at line 505 of file UT_StringHolder.h.

static SYS_FORCE_INLINE unsigned UT_StringRef::hash_string ( const char *  str,
exint  len 
)
inlinestatic

Definition at line 598 of file UT_StringHolder.h.

SYS_FORCE_INLINE bool UT_StringRef::hasNonSpace ( ) const
inline

Definition at line 423 of file UT_StringHolder.h.

bool UT_StringRef::isEmpty ( ) const
inline

Definition at line 500 of file UT_StringHolder.h.

unsigned UT_StringRef::isFloat ( int  skip_spaces = 0,
int  loose = 0 
) const
inline

Determine if string can be seen as a single floating point number.

Definition at line 372 of file UT_StringHolder.h.

unsigned UT_StringRef::isInteger ( int  skip_spaces = 0) const
inline

Determine if string can be seen as a single integer number.

Definition at line 375 of file UT_StringHolder.h.

SYS_FORCE_INLINE bool UT_StringRef::isstring ( ) const
inline
Examples:
RAY/RAY_DemoFile.C, and RAY/RAY_DemoSprite.C.

Definition at line 415 of file UT_StringHolder.h.

SYS_FORCE_INLINE int UT_StringRef::lastChar ( char  c,
int  occurance_number = 1 
) const
inline

Definition at line 443 of file UT_StringHolder.h.

exint UT_StringRef::length ( void  ) const
inline

Definition at line 483 of file UT_StringHolder.h.

unsigned UT_StringRef::multiMatch ( const char *  pattern,
int  caseSensitive,
char  separator 
) const
inline

Definition at line 351 of file UT_StringHolder.h.

unsigned UT_StringRef::multiMatch ( const char *  pattern,
int  caseSensitive = 1,
const char *  separators = ", ",
bool *  explicitlyExcluded = 0,
int matchIndex = 0,
ut_PatternRecord *  pattern_record = NULL 
) const
inline

Definition at line 354 of file UT_StringHolder.h.

unsigned UT_StringRef::multiMatch ( const UT_StringMMPattern pattern,
bool *  explicitlyExcluded = 0,
int matchIndex = 0,
ut_PatternRecord *  pattern_record = NULL 
) const
inline

Definition at line 360 of file UT_StringHolder.h.

SYS_FORCE_INLINE const char* UT_StringRef::nonNullBuffer ( ) const
inline

Definition at line 387 of file UT_StringHolder.h.

SYS_FORCE_INLINE SYS_SAFE_BOOL UT_StringRef::operator bool ( ) const
inline

Test whether the string is defined or not.

Definition at line 338 of file UT_StringHolder.h.

SYS_FORCE_INLINE UT_StringRef::operator const char * ( ) const
inline

Definition at line 379 of file UT_StringHolder.h.

bool UT_StringRef::operator!= ( const UT_StringRef s) const
inline

Definition at line 312 of file UT_StringHolder.h.

bool UT_StringRef::operator!= ( const char *  s) const
inline

Definition at line 314 of file UT_StringHolder.h.

bool UT_StringRef::operator!= ( const UT_String s) const
inline

Definition at line 316 of file UT_StringHolder.h.

UT_StringRef& UT_StringRef::operator+= ( const UT_StringRef src)
bool UT_StringRef::operator< ( const UT_StringRef k) const
inline

Definition at line 319 of file UT_StringHolder.h.

bool UT_StringRef::operator<= ( const UT_StringRef k) const
inline

Definition at line 321 of file UT_StringHolder.h.

UT_StringRef& UT_StringRef::operator= ( const UT_StringRef s)
inline

Shares a reference with the source.

Definition at line 256 of file UT_StringHolder.h.

SYS_FORCE_INLINE UT_StringRef& UT_StringRef::operator= ( UT_StringRef &&  s)
inline

Move the contents of about-to-be-destructed string s to this string.

Definition at line 273 of file UT_StringHolder.h.

bool UT_StringRef::operator== ( const UT_StringRef s) const
inline

Definition at line 280 of file UT_StringHolder.h.

bool UT_StringRef::operator== ( const char *  s) const
inline

Definition at line 294 of file UT_StringHolder.h.

bool UT_StringRef::operator== ( const UT_String s) const
inline

Definition at line 309 of file UT_StringHolder.h.

bool UT_StringRef::operator> ( const UT_StringRef k) const
inline

Definition at line 323 of file UT_StringHolder.h.

bool UT_StringRef::operator>= ( const UT_StringRef k) const
inline

Definition at line 325 of file UT_StringHolder.h.

void UT_StringRef::reference ( const char *  src)
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 526 of file UT_StringHolder.h.

bool UT_StringRef::startsWith ( const char *  prefix,
bool  case_sense = true,
exint  len = -1 
) const
inline

Imported from UT_String.

Definition at line 341 of file UT_StringHolder.h.

char* UT_StringRef::stealAsMalloc ( )
SYS_FORCE_INLINE void UT_StringRef::swap ( UT_StringRef other)
inline

Definition at line 407 of file UT_StringHolder.h.

fpreal UT_StringRef::toFloat ( ) const
inline

Definition at line 368 of file UT_StringHolder.h.

int UT_StringRef::toInt ( ) const
inline

Definition at line 366 of file UT_StringHolder.h.

UT_StringRef UT_StringRef::toLower ( ) const

Convert to lower case. If the string is already lower case, the string itself is returned.

std::string UT_StringRef::toStdString ( ) const
inline

Converts the contents of this UT_String to a std::string. Since we are never null this is easy

Definition at line 403 of file UT_StringHolder.h.

bool UT_StringRef::trimBoundingSpace ( )

A version of trimSpace() that only removes leading and following spaces from a string, leaving any between words intact.

Friends And Related Function Documentation

UT_API std::ostream& operator<< ( std::ostream &  os,
const UT_StringRef d 
)
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.

UT_API UT_OStream& operator<< ( UT_OStream os,
const UT_StringRef d 
)
friend
friend class UT_StringHolder
friend

Definition at line 721 of file UT_StringHolder.h.

Member Data Documentation

const void* UT_StringRef::myData

Definition at line 705 of file UT_StringHolder.h.

const char* UT_StringRef::myDataIfChars

Definition at line 706 of file UT_StringHolder.h.

Holder* UT_StringRef::myDataIfHolder

Definition at line 707 of file UT_StringHolder.h.


The documentation for this class was generated from the following file: