140 const char* pdata,
UPInt copySize);
142 const char* pdata1,
UPInt copySize1,
143 const char* pdata2,
UPInt copySize2);
162 String(
const char* data1,
const char* pdata2,
const char* pdata3 = 0);
167 explicit String(
const wchar_t* data);
435 operator const char*()
const {
return (
pData) ?
pData :
""; }
529 template <
typename T,
int N>
557 return static_cast<SPInt>(i);
571 for (
UPInt i = init_ind; i > 0; --i)
572 if (
pStr[i - 1] == c)
573 return static_cast<SPInt>(i - 1);
600 const char* cur_str =
ToCStr();
602 for (; cur_pos <
GetSize() && cur_str[cur_pos]; ++cur_pos)
604 if (cur_str[cur_pos] == separator)
UPInt InsertCharAt(UInt32 c, UPInt posAt)
UPInt GetByteIndex(UPInt index) const
bool operator==(const String &str) const
bool operator!=(const String &str) const
void operator=(const char *str)
String GetFilename() const
String GetProtocol() const
void SetGrowSize(UPInt growSize)
void SetData(DataDesc *pdesc)
bool HasAbsolutePath() const
NoCaseKey(const String &str)
UInt32 GetNextChar(const char **offset) const
bool operator>(const char *pstr) const
void Remove(UPInt posAt, SPInt len=1)
UInt32 GetCharAt(UPInt index) const
const char * Begin() const
SPInt FindLastChar(char c, UPInt init_ind=~0) const
StringDataPtr(const char *pstr)
StringDataPtr GetTrimRight(UPInt size) const
UInt32 GetCharAt(UPInt index) const
HeapType GetHeapType() const
static UPInt GetLengthFlagBit()
const char * ToCStr() const
UPInt InsertCharAt(UInt32 c, UPInt posAt)
char & operator[](int index)
bool IsPrefix(const StringDataPtr &value) const
const char * ToCStr() const
static UPInt OVR_STDCALL BernsteinHashFunctionCIS(const void *pdataIn, UPInt size, UPInt seed=5381)
bool IsSuffix(const StringDataPtr &value) const
UInt32 GetFirstCharAt(UPInt index, const char **offset) const
UPInt GetLengthFlag() const
int CompareNoCase(const String &str) const
const char * ToCStr() const
virtual void InitString(char *pbuffer, UPInt size) const =0
String Substring(UPInt start, UPInt end) const
int CompareNoCase(const char *pstr) const
StringDataPtr GetTrimLeft(UPInt size) const
UPInt operator()(const String &data) const
OVR_FORCE_INLINE const T PMin(const T a, const T b)
StringDataPtr & TrimRight(UPInt size)
static C ExchangeAdd_NoSync(volatile C *p, C val)
void AppendString(const wchar_t *pstr, SPInt len=-1)
StringDataPtr GetNextToken(char separator= ':') const
bool operator<(const char *pstr) const
StringDataPtr(const String &str)
int OVR_CDECL OVR_strncmp(const char *ws1, const char *ws2, UPInt size)
int OVR_CDECL OVR_strcmp(const char *dest, const char *src)
void AppendChar(UInt32 ch)
void Insert(const char *substr, UPInt posAt, SPInt len=-1)
void AppendFormat(const char *format,...)
void operator+=(const String &src)
SPInt OVR_STDCALL GetByteIndex(SPInt index, const char *putf8str, SPInt length)
UPInt operator()(const StringDataPtr &data) const
void operator=(const char *str)
const char & operator[](int index) const
bool LengthIsSize() const
StringDataPtr(const T(&v)[N])
StringDataPtr & TrimLeft(UPInt size)
String GetExtension() const
DataDesc * GetData() const
void Reserve(UPInt _size)
int char * index(const char *__s, int __c) __THROW __attribute_pure__ __nonnull((1))
DataDesc * AllocData(UPInt size, UPInt lengthIsSize)
void AppendChar(UInt32 ch)
SPInt FindChar(char c, UPInt init_ind=0) const
bool HasExtension() const
StringDataPtr(const char *pstr, UPInt sz)
StringDataPtr(const StringDataPtr &p)
static UPInt OVR_STDCALL BernsteinHashFunction(const void *pdataIn, UPInt size, UPInt seed=5381)
String(const NoConstructor &)
void operator+=(const String &src)
UPInt operator()(const String &data) const
UInt32 GetFirstCharAt(UPInt index, const char **offset) const
UPInt operator()(const NoCaseKey &data) const
static int OVR_STDCALL CompareNoCase(const char *a, const char *b)
UPInt GetGrowSize() const
UPInt OVR_CDECL OVR_strlen(const char *str)
void AssignString(const InitStruct &src, UPInt size)
void AppendString(const wchar_t *pstr, SPInt len=-1)
bool operator==(const StringDataPtr &data) const
DataDesc * AllocDataCopy2(UPInt size, UPInt lengthIsSize, const char *pdata1, UPInt copySize1, const char *pdata2, UPInt copySize2)
String & Insert(const char *substr, UPInt posAt, SPInt len=-1)
String operator+(const char *str) const
DataDesc * AllocDataCopy1(UPInt size, UPInt lengthIsSize, const char *pdata, UPInt copySize)
UInt32 GetNextChar(const char **offset) const