39#define odaIsValidString(lpch) (true)
114#if defined(_MSC_VER) && _MSC_VER >= 1300
135 if (isUnicodeNotInSync())
137 return getData()->nDataLength;
146 return (getData()->nDataLength == 0 &&
147 (getData()->ansiString == 0 || getAnsiString()->isEmpty()));
162 if (isUnicodeNotInSync())
166 ODA_ASSERT(charIndex < getData()->nDataLength);
167 return getData()->unicodeBuffer[charIndex];
179 return getAt(charIndex);
191#if defined(_MSC_VER) && defined(_WIN32) && defined(_DEBUG) && defined(ODA_LINT)
192#define UPDATECONSTSTRINGDIAGNISTIC
197 #define updateConstStringDiagnostic(pAddr)
205 if (isUnicodeNotInSync())
207 const OdChar* pRet = getData()->unicodeBuffer;
220#if defined(_MSC_VER) && _MSC_VER >= 1300
221 operator const __wchar_t*()
const
223 return reinterpret_cast<const __wchar_t*
>(c_str());
227 operator const char*()
const;
239#if defined(_MSC_VER) && _MSC_VER >= 1300
277#if defined(_MSC_VER) && _MSC_VER >= 1300
286 OdString& operator+=(
const __wchar_t*
string){
return operator+=((
const OdChar*)
string); }
328 if (isUnicodeNotInSync())
330 return odStrCmp((
const wchar_t*)getData()->unicodeBuffer, (
const wchar_t*)otherString);
350#if defined(_MSC_VER) && _MSC_VER >= 1300
366 int compare(
const __wchar_t* otherString)
const {
return compare((
const OdChar*)otherString);}
403 if (isUnicodeNotInSync())
405 return odStrICmp(getData()->unicodeBuffer, otherString);
424#if defined(_MSC_VER) && _MSC_VER >= 1300
440 __forceinline
int iCompare(
const __wchar_t* otherString)
const {
return iCompare((
const OdChar*)otherString);}
496#if defined(_MSC_VER) && _MSC_VER >= 1300
508 OdString spanIncluding(
const __wchar_t* charSet)
const{
return spanIncluding((
const OdChar*)charSet);}
537#if defined(_MSC_VER) && _MSC_VER >= 1300
549 OdString spanExcluding(
const __wchar_t* charSet)
const{
return spanExcluding((
const OdChar*)charSet);}
633#if defined(_MSC_VER) && _MSC_VER >= 1300
644 OdString& trimRight(
const __wchar_t* whiteChars){
return trimRight((
const OdChar*)whiteChars);}
683#if defined(_MSC_VER) && _MSC_VER >= 1300
694 OdString& trimLeft(
const __wchar_t* whiteChars){
return trimLeft((
const OdChar*)whiteChars);}
729#if defined(_MSC_VER) && _MSC_VER >= 1300
740 int replace(
const __wchar_t* oldString,
const __wchar_t* newString){
return replace((
const OdChar*)oldString, (
const OdChar*)newString);}
799#if defined(_MSC_VER) && _MSC_VER >= 1300
812 int insert(
int insertIndex,
const __wchar_t* insertString){
return insert(insertIndex,(
const OdChar*)insertString);}
900#if defined(_MSC_VER) && _MSC_VER >= 1300
909 int findOneOf(
const __wchar_t* charSet)
const{
return findOneOf((
const OdChar*)charSet);}
919 int findOneOf(
const OdString& charSet)
const{
return findOneOf((
const OdChar*)charSet);}
921 int find(
const __wchar_t* searchString)
const{
return find((
const OdChar*)searchString);}
923 int find(
const OdString& searchString)
const{
return find((
const OdChar*)searchString);}
925 int find(
const __wchar_t* searchString,
int startIndex)
const{
return find((
const OdChar*)searchString,startIndex);}
927 int find(
const OdString& searchString,
int startIndex)
const{
return find((
const OdChar*)searchString,startIndex);}
938#if defined(_MSC_VER) && _MSC_VER >= 1300
959#if defined(_MSC_VER) && _MSC_VER >= 1300
968 inline OdString& formatV(
const __wchar_t* formatString, va_list argList)
970 return formatV((
const OdChar*)formatString, argList);
1033#ifdef NOT_IMPLEMENTED
1051 int collate(
const OdChar* otherString)
const;
1069 int iCollate(
const OdChar* otherString)
const;
1089 {
return getData()->nAllocLength; }
1100 allocBeforeWrite(
length);
1101 m_pData->nDataLength = 0;
1116 {
ODA_ASSERT(m_pData!= NULL);
return m_pData; }
1219 {
return (
string == NULL) ? (int)0 : (
int)
odStrLen((
const wchar_t*)
string); }
1229 return !getData()->unicodeBuffer && getData()->ansiString;
1234 if (getData()->ansiString)
1235 return reinterpret_cast<OdAnsiString*
>(&getData()->ansiString);
1240 friend class OdAnsiString;
1252#if defined(_MSC_VER) && _MSC_VER >= 1300
1253inline OdString operator+(
const OdString& string1,
const __wchar_t* string2)
1255 return operator+(string1, (
const OdChar*)string2);
1257inline OdString operator+(
const __wchar_t* string1,
const OdString& string2)
1259 return operator+((
const OdChar*)string1, string2);
1264 {
return s1.
compare(s2) == 0; }
1267 {
return s1.
compare(s2) == 0; }
1270 {
return s2.
compare(s1) == 0; }
1272#if defined(_MSC_VER) && _MSC_VER >= 1300
1281{
return s1.
compare(s2) == 0; }
1284{
return odStrCmpA((
const char*)s2, s1) == 0; }
1287 {
return s1.
compare(s2) != 0; }
1290 {
return s1.
compare(s2) != 0; }
1293 {
return s2.
compare(s1) != 0; }
1295#if defined(_MSC_VER) && _MSC_VER >= 1300
1304{
return s1.
compare(s2) != 0; }
1307{
return s2.
compare(s1) != 0; }
1310 {
return s1.
compare(s2) < 0; }
1313 {
return s1.
compare(s2) < 0; }
1316 {
return s2.
compare(s1) > 0; }
1318#if defined(_MSC_VER) && _MSC_VER >= 1300
1333 {
return s1.
compare(s2) > 0; }
1336 {
return s1.
compare(s2) > 0; }
1339 {
return s2.
compare(s1) < 0; }
1341#if defined(_MSC_VER) && _MSC_VER >= 1300
1355 {
return s1.
compare(s2) <= 0; }
1358 {
return s1.
compare(s2) <= 0; }
1361 {
return s2.
compare(s1) >= 0; }
1363#if defined(_MSC_VER) && _MSC_VER >= 1300
1371{
return s1.
compare(s2) <= 0; }
1374{
return s2.
compare(s1) >= 0; }
1377 {
return s1.
compare(s2) >= 0; }
1380 {
return s1.
compare(s2) >= 0; }
1383 {
return s2.
compare(s1) <= 0; }
1385#if defined(_MSC_VER) && _MSC_VER >= 1300
1394{
return s1.
compare(s2) >= 0; }
1397{
return s2.
compare(s1) <= 0; }
1399#if defined(ODA_UNIXOS)
1406 OdW2US(
const wchar_t* pStr)
1410 for (
size_t i = 0; i < len; i++)
1420 operator const OdUInt16*()
const {
return _buf; }
1438 _buf =
new wchar_t[len+1];
1439 for (
size_t i = 0; i < len; i++)
1441 _buf[i] = (wchar_t)pStr[i];
1449 operator const wchar_t*()
const {
return _buf; }
1454#define OdUS2W(a) (const wchar_t*)(a)
1455#define OdW2US(a) (const OdUInt16*)(a)
bool operator>=(const OdString &s1, const OdString &s2)
bool operator!=(const OdString &s1, const OdString &s2)
bool operator==(const OdString &s1, const OdString &s2)
bool operator<=(const OdString &s1, const OdString &s2)
bool operator<(const OdString &s1, const OdString &s2)
bool operator>(const OdString &s1, const OdString &s2)
#define updateConstStringDiagnostic(pAddr)
#define FIRSTDLL_EXPORT_STATIC
OdConstString & operator=(const OdConstString &pSource)
OdConstString(const OdChar *pSource=NULL)
OdString & operator=(const OdChar *pSource)
OdString & operator=(OdChar ch)
OdString & operator=(const char *pSource)
OdString & operator=(const OdString &pSource)
OdString & operator=(const OdAnsiString &pSource)
OdString & operator+=(const OdChar *string)
OdChar * getBufferSetLength(int length)
int replace(OdChar oldChar, OdChar newChar)
int compare(const OdString &otherString) const
OdString & trimLeft(const OdString &whiteChars)
OdString & operator+=(const OdString &string)
static void release(OdStringData *pStringData)
OdString & formatV(const OdChar *formatString, va_list argList)
OdString & operator=(OdChar ch)
void assignCopy(int sourceLength, const OdChar *source)
OdString(const OdChar *source)
int compare(const char *otherString) const
OdString mid(int startIndex, int length) const
OdString(const OdChar16_t *lpch, OdCodePageId codepage=CP_CNT)
int compare(const OdChar *otherString) const
OdString & trimRight(const OdString &whiteChars)
int iCompare(const OdChar *otherString) const
int insert(int insertIndex, const OdString &insertString)
OdString & format(const OdChar *formatString,...)
OdString & trimLeft(OdChar whiteChar)
int find(const OdChar *searchString) const
OdString & operator=(const OdString &source)
OdString & operator=(const OdChar16_t *source)
int replace(const OdChar *oldString, const OdChar *newString)
OdString & trimLeft(const OdChar *whiteChars)
OdString(OdStringData *pData)
OdChar getAt(int charIndex) const
int remove(OdChar chRemove)
OdString & trimRight(const OdChar *whiteChars)
OdString & operator=(const OdChar *source)
int find(const OdChar *searchString, int startIndex) const
friend FIRSTDLL_EXPORT OdString operator+(const OdString &string1, const OdString &string2)
int iCompare(const OdString &otherString) const
int find(OdChar searchChar, int startIndex) const
void concatInPlace(int sourceLength, const OdChar *source)
OdString & operator=(const OdAnsiString &source)
OdChar * getBuffer(int minBufLength)
OdString mid(int startIndex) const
OdString & operator=(const char *source)
OdString(OdChar ch, int length)
void concatCopy(int sourceLength1, const OdChar *source1, int sourceLength2, const OdChar *source2)
OdString(const OdString &source)
friend FIRSTDLL_EXPORT OdString operator+(OdChar ch, const OdString &string)
int reverseFind(OdChar searchChar) const
OdString(const char *lpch, int nLength, OdCodePageId codepage=CP_CNT)
void allocCopy(OdString &destString, int copyLength, int copyIndex, int extraLength) const
void allocBuffer(int length, bool allocAlways=false)
void setAt(int charIndex, OdChar ch)
OdString left(int length) const
const OdChar * c_str() const
OdString spanExcluding(const OdChar *charSet) const
friend FIRSTDLL_EXPORT OdString operator+(const OdString &string1, const OdChar *string2)
static void freeData(OdStringData *pStringData)
FIRSTDLL_EXPORT_STATIC static const OdString kEmpty
OdString right(int length) const
OdString spanIncluding(const OdString &charSet) const
void releaseBuffer(int newLength=-1)
int replace(const OdString &oldString, const OdString &newString)
OdStringData * getData() const
void preallocate(int length)
OdString spanIncluding(const OdChar *charSet) const
void allocBeforeWrite(int newLength)
int reverseFind(OdChar searchChar, int startIndex) const
OdString(const char *lpch, OdCodePageId codepage=CP_CNT)
OdString & operator+=(OdChar ch)
friend FIRSTDLL_EXPORT OdString operator+(const OdString &string, OdChar ch)
int insert(int insertIndex, OdChar insertChar)
OdString(const OdChar *source, int length)
OdString(const OdAnsiString &)
int getAllocLength() const
static FIRSTDLL_EXPORT_STATIC OdStringData kEmptyData
bool isUnicodeNotInSync() const
friend FIRSTDLL_EXPORT OdString operator+(const OdChar *string1, const OdString &string2)
OdString spanExcluding(const OdString &charSet) const
OdString & trimRight(OdChar whiteChar)
int deleteChars(int deleteIndex, int count=1)
static int safeStrlen(const OdChar *string)
OdString & operator+=(const char *string)
int insert(int insertIndex, const OdChar *insertString)
OdChar operator[](int charIndex) const
int find(OdChar searchChar) const
OdAnsiString * getAnsiString() const
int findOneOf(const OdChar *charSet) const
void freeAnsiString() const
GLsizei GLsizei GLchar * source
GLuint GLsizei GLsizei * length
GLint GLint GLint GLsizei GLsizei GLenum format
bool operator()(const OdString &x, const OdString &y) const