11 #include <unicode/unistr.h> 37 class ConstIteratorPriv;
92 ConstReverseIterator
Reverse()
const;
95 static const size_t YI_STRING_ITERATOR_SIZE =
sizeof(
char *) * 3;
98 char m_storage[YI_STRING_ITERATOR_SIZE];
177 CYIString(
const U_NAMESPACE_QUALIFIER UnicodeString &s, uint32_t uSizeHintBytes = 0);
179 #if defined(__OBJC__) || defined(DOXY) 209 CYIString(
const char *pUTF8, uint32_t uSizeBytes);
218 CYIString(
const char16_t *pUTF16, uint32_t uSize = std::numeric_limits<uint32_t>::max());
227 CYIString(
const char32_t *pUTF32, uint32_t uSize = std::numeric_limits<uint32_t>::max());
236 CYIString(
const wchar_t *pWideChars, uint32_t uSize = std::numeric_limits<uint32_t>::max());
241 operator const char *()
const;
349 static CYIString FromFloat(
float fValue, uint32_t uDecimalPlaces = 6,
bool bTrailingZeroes =
false,
bool bUseSignificantDigits =
false);
362 static CYIString FromDouble(
double fValue, uint32_t uDecimalPlaces = 6,
bool bTrailingZeroes =
false,
bool bUseSignificantDigits =
false);
422 char32_t
At(uint32_t uPos)
const;
431 char ByteAt(uint32_t uByteOffset)
const;
472 std::vector<CYIString>
Split(
const CYIString &delimiter,
bool bIgnoreEmptySubstrings =
true, uint32_t uMaximumParts = std::numeric_limits<uint32_t>::max())
const;
477 CYIString SubStr(uint32_t uPos = 0, uint32_t uLen = std::numeric_limits<uint32_t>::max())
const;
536 int32_t
LastIndexOf(
const CYIString &s, uint32_t uPos = std::numeric_limits<uint32_t>::max())
const;
581 ConstReverseIterator
rbegin()
const;
586 ConstReverseIterator
rend()
const;
607 CYIString &
Append(
const char *pUTF8, uint32_t uSizeBytes = std::numeric_limits<uint32_t>::max());
628 CYIString &
Prepend(
const char *pUTF8, uint32_t uSizeBytes = std::numeric_limits<uint32_t>::max());
659 CYIString &
Erase(uint32_t uPos = 0, uint32_t uLen = std::numeric_limits<uint32_t>::max());
709 void TrimLeft(uint32_t uLen = std::numeric_limits<uint32_t>::max());
714 void TrimRight(uint32_t uLen = std::numeric_limits<uint32_t>::max());
727 const char *
AsUTF8(uint32_t *pElementsCount =
nullptr)
const;
738 std::unique_ptr<char[]>
ToUTF8(uint32_t *pElementsCount =
nullptr)
const;
745 std::unique_ptr<char16_t[]>
ToUTF16(uint32_t *pElementsCount =
nullptr)
const;
752 std::unique_ptr<char32_t[]>
ToUTF32(uint32_t *pElementsCount =
nullptr)
const;
761 std::unique_ptr<wchar_t[]>
ToWideChars(uint32_t *pElementsCount =
nullptr)
const;
780 #if defined(__OBJC__) || defined(DOXY) 809 T
To(
bool *pbError =
nullptr)
const;
817 T
ToValue(
bool *pbError =
nullptr)
const;
824 float ToFloat(
bool *pbError =
nullptr)
const;
831 double ToDouble(
bool *pbError =
nullptr)
const;
860 bool ToBool(
bool *pbError =
nullptr)
const;
863 std::string m_string;
864 mutable uint32_t m_uLength;
876 #include "utility/YiString.inl" CYIString Right(uint32_t uLen) const
bool EndsWith(const CYIString &s, CASE_MODE eCaseSensitivity=CASE_SENSITIVE) const
ConstIterator & operator=(const ConstIterator &other)
std::ostream & operator<<(std::ostream &stream, const CYIString &val)
float ToFloat(bool *pbError=nullptr) const
ConstIterator Iterator
Definition: YiString.h:101
CYIString & Prepend(const CYIString &s)
char32_t reference
Definition: YiString.h:65
const char * AsUTF8(uint32_t *pElementsCount=nullptr) const
double ToDouble(bool *pbError=nullptr) const
std::unique_ptr< char[]> ToUTF8(uint32_t *pElementsCount=nullptr) const
static CYIString FromDouble(double fValue, uint32_t uDecimalPlaces=6, bool bTrailingZeroes=false, bool bUseSignificantDigits=false)
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
bool operator==(const ConstIterator &other) const
CFStringRef ToCFStringRef() const
ptrdiff_t difference_type
Definition: YiString.h:63
CYIString Arg(const CYIString &rText) const
const std::string & ToStdString() const
char32_t At(uint32_t uPos) const
uint32_t GetLength() const
CYIString operator+(T arg) const
int32_t Compare(const CYIString &s, CASE_MODE eCaseSensitivity=CASE_SENSITIVE) const
void TrimLeft(uint32_t uLen=std::numeric_limits< uint32_t >::max())
friend std::istream & operator>>(std::istream &stream, CYIString &val)
static const CYIString & EmptyString()
const char32_t * pointer
Definition: YiString.h:64
T ToValue(bool *pbError=nullptr) const
std::bidirectional_iterator_tag iterator_category
Definition: YiString.h:61
CYIString SubStr(uint32_t uPos=0, uint32_t uLen=std::numeric_limits< uint32_t >::max()) const
bool ToBool(bool *pbError=nullptr) const
ConstReverseIterator rbegin() const
std::reverse_iterator< Iterator > ReverseIterator
Definition: YiString.h:102
std::unique_ptr< char32_t[]> ToUTF32(uint32_t *pElementsCount=nullptr) const
bool StartsWith(const CYIString &s, CASE_MODE eCaseSensitivity=CASE_SENSITIVE) const
bool operator!=(const ConstIterator &other) const
ConstIterator begin() const
CYIString & Insert(const CYIString &s, uint32_t uPos, uint32_t uLen=std::numeric_limits< uint32_t >::max())
std::unique_ptr< char16_t[]> ToUTF16(uint32_t *pElementsCount=nullptr) const
uint32_t GetSizeInBytes() const
Definition: YiString.h:56
CASE_MODE
Definition: YiString.h:107
std::reverse_iterator< ConstIterator > ConstReverseIterator
Definition: YiString.h:48
const char * GetData() const
bool operator>=(const CYIString &s1) const
ConstIterator Find(const CYIString &s, const ConstIterator &begin) const
CYIString ToLower() const
ConstIterator & operator++()
friend class CYIString
Definition: YiString.h:59
std::vector< CYIString > Split(const CYIString &delimiter, bool bIgnoreEmptySubstrings=true, uint32_t uMaximumParts=std::numeric_limits< uint32_t >::max()) const
int32_t IndexOf(const CYIString &s, uint32_t uPos=0) const
ConstIterator & operator--()
value_type operator*() const
ConstIterator end() const
static const CYIString & FromBool(bool bValue)
bool operator>(const CYIString &s1) const
static CYIString FromFloat(float fValue, uint32_t uDecimalPlaces=6, bool bTrailingZeroes=false, bool bUseSignificantDigits=false)
CYIString & Replace(const CYIString &s, uint32_t uPos, uint32_t uLen)
CYIString ToNormalizedText(bool *pbError=nullptr) const
CYIString ToUpper() const
std::unique_ptr< wchar_t[]> ToWideChars(uint32_t *pElementsCount=nullptr) const
void TrimRight(uint32_t uLen=std::numeric_limits< uint32_t >::max())
bool operator<(const CYIString &s1) const
Definition: YiString.h:116
char32_t operator[](int32_t nPos) const
CYIString & Append(const CYIString &s)
NSString * ToNSString() const
CYIString Left(uint32_t uLen) const
static CYIString FromValue(const T &arg, bool *pbError=nullptr)
char ByteAt(uint32_t uByteOffset) const
bool ContainsNonASCII() const
Definition: YiString.h:112
void Remove(const CYIString &text)
U_NAMESPACE_QUALIFIER UnicodeString ToUnicodeString() const
int32_t LastIndexOf(const CYIString &s, uint32_t uPos=std::numeric_limits< uint32_t >::max()) const
bool operator<=(const CYIString &s1) const
CYIString & operator+=(const CYIString &s)
char32_t value_type
Definition: YiString.h:62
CYIString & Erase(uint32_t uPos=0, uint32_t uLen=std::numeric_limits< uint32_t >::max())
std::wstring ToStdWString() const
ConstReverseIterator rend() const
bool Contains(const CYIString &s, CASE_MODE eCaseSensitivity=CASE_SENSITIVE) const
T To(bool *pbError=nullptr) const
ConstReverseIterator Reverse() const
static const CYIString EMPTY_STRING
Definition: YiString.h:37
ConstReverseIterator ReverseFind(const CYIString &s, const ConstReverseIterator &begin) const