58#include <Inventor/SoInventorBase.h> 
   59#include <Inventor/SbBase.h> 
   60#include <Inventor/STL/string> 
   61#include <Inventor/STL/ostream> 
   62#include <Inventor/STL/vector> 
   66#pragma warning(disable:4251) 
  597      return os << str.toUtf8();
 
 
 1044  SbString& fromUtf8( 
const char* str );
 
 1052  const char* toUtf8() 
const;
 
 1054  static uint32_t 
hash(
const char *s);    
 
 1055  static uint32_t 
hash(
const SO_WCHAR_T *s); 
 
 1057  static inline bool isDigit(
const int c);
 
 1058  static inline bool isSpace(
const int c);
 
 1061  void split(std::vector<SbString>& tokens) 
const;
 
 1069  void setCapacity( 
int nBytes );
 
 1072  const std::string& nonUnicodeToStdString()
 const { 
return m_cdata; }
 
 1076  static void initClass();
 
 1078  static void exitClass();
 
 1081# define SB_LOCALE_DATA_TYPE _locale_t 
 1082# define SB_LOCALE_ALLOC_FUNC _create_locale 
 1083# define SB_LOCALE_FREE_FUNC _free_locale 
 1084# define SB_LOCALE_STRTOD_FUNC _strtod_l 
 1085# define SB_LOCALE_STRTOL_FUNC _strtol_l 
 1086# define SB_LOCALE_SPRINTF_FUNC _sprintf_l 
 1087# define SB_LOCALE_SNPRINTF_FUNC _snprintf_l 
 1088# define SB_LOCALE_SCANF_FUNC _scanf_l 
 1089# define SB_LOCALE_SSCANF_FUNC _sscanf_l 
 1090# define SB_LOCALE_FSCANF_FUNC _fscanf_l 
 1091# define SB_LOCALE_VPRINTF _vprintf_l 
 1092# define SB_LOCALE_FPRINTF_FUNC _fprintf_l 
 1093# define SB_LOCALE   , (SB_LOCALE_DATA_TYPE)SbString::getLocaleObject() 
 1095# define SB_LOCALE_DATA_TYPE locale_t 
 1096# define SB_LOCALE_ALLOC_FUNC newlocale 
 1097# define SB_LOCALE_FREE_FUNC freelocale 
 1098# define SB_LOCALE_STRTOD_FUNC strtod 
 1099# define SB_LOCALE_STRTOL_FUNC strtol 
 1100# define SB_LOCALE_SPRINTF_FUNC ::sprintf 
 1101# define SB_LOCALE_FPRINTF_FUNC fprintf 
 1102# define SB_LOCALE_SNPRINTF_FUNC snprintf 
 1103# define SB_LOCALE_SCANF_FUNC scanf 
 1104# define SB_LOCALE_SSCANF_FUNC sscanf 
 1105# define SB_LOCALE_FSCANF_FUNC fscanf 
 1106# define SB_LOCALE_VPRINTF vprintf 
 1110  static float toFloat_l( 
const char* str, 
SbBool* ok = NULL );
 
 1112  static double toDouble_l( 
const char* str, 
SbBool* ok = NULL );
 
 1114  static long toLong_l( 
const char* str, 
SbBool* ok = NULL );
 
 1116  static void toString_l( 
char* str, 
const char* format, 
float num );
 
 1118  static void toString_l( 
char* str, 
const char* format, 
double num );
 
 1120  static void* getLocaleObject();
 
 1137  static void buildLocaleCache();
 
 1138  static bool localeCacheInitialized;
 
 1139  static bool localeDigitCache[256];
 
 1140  static bool localeSpaceCache[256];
 
 1141  static char* s_tmpstr;
 
 1142  static size_t s_tmpStrSize;
 
 1144  std::wstring m_data;
 
 1145  std::string m_cdata;
 
 1147  mutable std::wstring m_tmpData;
 
 1148  mutable std::string m_tmpCData;
 
 1156  mutable unsigned short* m_utf16Buffer;
 
 
 1173inline bool SbString::isDigit(
const int c)
 
 1175  if ((c < 0) || (c>=256))
 
 1178  if (!localeCacheInitialized)
 
 1180  return localeDigitCache[c];
 
 1183inline bool SbString::isSpace(
const int c)
 
 1185  if (!localeCacheInitialized)
 
 1187  return localeSpaceCache[c];
 
 1194#include <Inventor/SbName.h> 
Class for smart character strings.
friend bool operator<=(const SbString &str1, const SbString &str2)
"less than or equal" relational operator for SbString   Returns TRUE if the first operand is less tha...
uint32_t hash() const
Returns a reasonable hash key for string.
SoNONUNICODE friend const SbString operator+(const SbString &s1, const char *s2)
This is an overloaded member function, provided for convenience.
SoNONUNICODE const std::string & getSString() const
Returns pointer to the std::string.
SoNONUNICODE const SO_WCHAR_T * wgetString() const
Returns pointer to the character string.
int findAny(const SbString &str) const
Returns the position of the first occurence of any character contained in the specified sub string.
SoNONUNICODE SbString(const int digitString)
Constructor that takes an integer to be turned into a string.
SbBool isUnicode() const
Returns TRUE if the string contains Unicode characters.
int rfind(const SbString &str) const
Returns the position of the last occurence of the specified substring.
SbString(const SbString &str)
Constructor that takes an SbString.
unsigned long toULong(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
SbString & fromWideChar(const wchar_t *str)
Set the string from a wide char string.
bool endsWith(const SbString &str) const
Returns true if the string ends with the specified string.
unsigned int toUInt(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
short toShort(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
friend bool operator<(const SbString &str1, const SbString &str2)
"less than" relational operator for SbString   Returns TRUE if the first operand is less than the sec...
SbBool isNull() const
Returns TRUE if the string is a null string.
SbString & setNum(long value, int base=10)
Sets the string to a formatted numeric value.
unsigned short * toUtf16() const
Returns the string as a UTF-16 string.
float toFloat(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
std::string toStdString() const
Returns the string as an STL string.
SbString(const std::string &std_string)
Constructor that takes an STL string.
SbString & setNum(float value)
Sets the string to a formatted numeric value.
SbString & setNum(unsigned long value, int base=10)
Sets the string to a formatted numeric value.
SoNONUNICODE friend const SbString operator+(const char *s1, const SbString &s2)
This is an overloaded member function, provided for convenience.
SbString & operator=(const SbString &str)
Assignment operator for SbString.
int find(const SbString &str) const
Returns the position of the first occurence of the specified substring.
friend int operator==(const SbString &str1, const SbString &str2)
Equality operator for SbString / SbString comparison.
SbString & setNum(unsigned short value, int base=10)
Sets the string to a formatted numeric value.
SoNONUNICODE const char * getString() const
Returns pointer to the character string.
long toLong(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
const wchar_t * toWideChar() const
Returns the string as a wide char string.
SoNONUNICODE const std::wstring & wgetSString() const
Returns pointer to the stl::wstring.
SoNONUNICODE char operator[](int i) const
Returns the character at index i, or 0 if i is beyond the length of the string.
SbString(const std::wstring &std_wstring)
Constructor that takes an STL wstring.
SbBool containsAny(const SbString &str) const
Returns TRUE if any of the characters listed in the str parameter exist in the string.
unsigned short toUShort(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
SbString()
Default constructor.
SbString & setNum(double value)
Sets the string to a formatted numeric value.
SbBool contains(const SbString &str) const
Returns TRUE if the string contains the specified substring.
void makeEmpty(const SbBool freeOld=TRUE)
Sets string to be the empty string ("").
SbString & setNum(unsigned int value, int base=10)
Sets the string to a formatted numeric value.
SbString upper() const
Returns an uppercase copy of the string.
SbString getSubString(int startChar, int endChar=-1) const
Returns a new string containing the sub-string from  startChar  (position) to  endChar,...
SbString lower() const
Returns a lowercase copy of the string.
SoNONUNICODE SbString & sprintf(const char *cformat,...)
Builds a formatted string from the format string cformat and an arbitrary list of arguments.
int findLast(const SbString &str) const
Returns the position of the last occurence of any character contained in the specified sub string.
void makeNull()
Makes the current string null (same as uninitialized).
friend bool operator>(const SbString &str1, const SbString &str2)
"greater than" relational operator for SbString   Returns TRUE if the first operand is greater than t...
friend std::ostream & operator<<(std::ostream &os, const SbString &str)
Writes the string to the specified output stream.
SbString & setNum(int value, int base=10)
Sets the string to a formatted numeric value.
friend bool operator>=(const SbString &str1, const SbString &str2)
"greater than or equal" relational operator for SbString   Returns TRUE if the first operand is great...
friend int operator!=(const SbString &str1, const SbString &str2)
Inequality operator for SbString / SbString comparison.
int toInt(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
void deleteSubString(int startChar, int endChar=-1)
Deletes the characters from  startChar  to  endChar,  inclusive, from the string.
SbString & fromLatin1(const char *str)
Set the string from a Latin-1/ASCII C string.
SbString(const wchar_t *str, int start, int end)
Constructor that takes the subset of a wide char string from start to end (inclusive).
SbString(const char *str)
Constructor that takes a character string.
SbString(const wchar_t *str)
Constructor that takes a wide character string.
std::wstring toStdWString() const
Returns the string as an STL wstring.
SbString & setNum(short value, int base=10)
Sets the string to a formatted numeric value.
const char * toLatin1() const
Returns the string as a Latin-1/ASCII C string.
SbBool isEmpty() const
Returns TRUE if the string is empty.
friend const SbString operator+(const SbString &s1, const SbString &s2)
Returns a string which is the result of concatenating the string s1 and the string s2.
static const int npos
This constant is used to indicate when a find string action failed.
SoNONUNICODE SbString & vprintf(const char *cformat, va_list arg)
Write into string using vprintf() syntax.
int getLength() const
Returns length of string (zero if null or empty).
void replace(const SbString &patternStr, const SbString &substStr)
This function replaces all the occurence of patternStr by the new string substStr.
SbString(const char *str, int start, int end)
Constructor that takes the subset of a character string from start to end (inclusive).
double toDouble(SbBool *ok=NULL) const
Returns the numeric value represented by the string.
SbString & operator+=(const SbString &str)
Concatenation operator "+=" for SbString, SbString.
SoNONUNICODE int operator!() const
Unary "not" operator; returns TRUE if string is empty ("").
SbString & fromUtf16(const unsigned short *str)
Set the string from a UTF-16 string.