Implementation of the String class. More...
Public Member Functions | |
| StringImpl (std::string_view str) | |
| StringImpl (const StringImpl &str) | |
| StringImpl (Span< const Byte > bytes) | |
| UCharConstArrayView | utf16 () |
| Span< const Byte > | largeUtf8 () |
| View of the UTF-8 encoding WITH null terminator. | |
| Span< const Byte > | bytes () |
| same as largeUtf8() but WITHOUT the null terminator | |
| bool | isEqual (StringImpl *str) |
| bool | isLessThan (StringImpl *str) |
| bool | isEqual (StringView str) |
| bool | isLessThan (StringView str) |
| std::string_view | toStdStringView () |
| StringView | view () |
| void | addReference () |
| void | removeReference () |
| Int32 | nbReference () |
| void | internalDump (std::ostream &ostr) |
| StringImpl * | clone () |
| StringImpl * | append (StringImpl *str) |
| StringImpl * | append (StringView str) |
| StringImpl * | replaceWhiteSpace () |
| StringImpl * | collapseWhiteSpace () |
| StringImpl * | toUpper () |
| StringImpl * | toLower () |
| bool | null () |
| bool | empty () |
| bool | hasUtf8 () const |
| bool | hasUtf16 () const |
Static Public Member Functions | |
| static StringImpl * | substring (StringImpl *str, Int64 pos, Int64 len) |
Private Types | |
| enum | { eValidUtf16 = 1 << 0 , eValidUtf8 = 1 << 1 } |
Private Member Functions | |
| StringImpl (Span< const UChar > uchars) | |
| void | _setUtf16 (Span< const UChar > src) |
| void | _createUtf16 () |
| void | _setUtf8 (const Byte *src) |
| void | _createUtf8 () |
| void | _checkReference () |
| void | _invalidateUtf16 () |
| void | _invalidateUtf8 () |
| void | _setArray () |
| void | _setStrFromArray (Int64 ulen) |
| void | _printStrUtf16 (std::ostream &o, Span< const UChar > str) |
| void | _printStrUtf8 (std::ostream &o, Span< const Byte > str) |
| void | _appendUtf8 (Span< const Byte > ref_str) |
| void | _initFromSpan (Span< const Byte > bytes) |
| void | _finalizeUtf8Creation () |
Private Attributes | |
| std::atomic< Int32 > | m_nb_ref |
| int | m_flags |
| Impl::CoreArray< UChar > | m_utf16_array |
| Impl::CoreArray< Byte > | m_utf8_array |
Friends | |
| class | String |
| class | StringBuilder |
Implementation of the String class.
Currently, the implementation supports two encodings simultaneously: UTF-8 and UTF-16. The UTF-16 encoding is obsolete and will be removed at the end of 2019.
When C++20 is available, this class will only be an encapsulation of std::u8string.
Definition at line 45 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Definition at line 106 of file arccore/src/base/arccore/base/internal/StringImpl.h.
| Arcane::StringImpl::StringImpl | ( | std::string_view | str | ) |
Definition at line 109 of file StringImpl.cc.
| Arcane::StringImpl::StringImpl | ( | const StringImpl & | str | ) |
Definition at line 133 of file StringImpl.cc.
Definition at line 145 of file StringImpl.cc.
|
private |
Definition at line 156 of file StringImpl.cc.
Definition at line 121 of file StringImpl.cc.
Definition at line 365 of file StringImpl.cc.
|
inlineprivate |
Definition at line 72 of file StringImpl.cc.
|
private |
Definition at line 447 of file StringImpl.cc.
|
private |
Definition at line 466 of file StringImpl.cc.
|
inlineprivate |
Definition at line 85 of file StringImpl.cc.
Definition at line 99 of file StringImpl.cc.
|
private |
Definition at line 498 of file StringImpl.cc.
|
private |
Definition at line 508 of file StringImpl.cc.
Definition at line 518 of file StringImpl.cc.
Definition at line 532 of file StringImpl.cc.
Definition at line 485 of file StringImpl.cc.
| void Arcane::StringImpl::addReference | ( | ) |
Definition at line 205 of file StringImpl.cc.
| StringImpl * Arcane::StringImpl::append | ( | StringImpl * | str | ) |
Definition at line 334 of file StringImpl.cc.
| StringImpl * Arcane::StringImpl::append | ( | StringView | str | ) |
Definition at line 347 of file StringImpl.cc.
same as largeUtf8() but WITHOUT the null terminator
Definition at line 166 of file StringImpl.cc.
References Arcane::SpanImpl< T, SizeType, Extent >::data(), largeUtf8(), and Arcane::SpanImpl< T, SizeType, Extent >::size().
| StringImpl * Arcane::StringImpl::clone | ( | ) |
Definition at line 303 of file StringImpl.cc.
| StringImpl * Arcane::StringImpl::collapseWhiteSpace | ( | ) |
Definition at line 399 of file StringImpl.cc.
| bool Arcane::StringImpl::empty | ( | ) |
Definition at line 315 of file StringImpl.cc.
|
inline |
Definition at line 102 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
inline |
Definition at line 101 of file arccore/src/base/arccore/base/internal/StringImpl.h.
| void Arcane::StringImpl::internalDump | ( | std::ostream & | ostr | ) |
Definition at line 545 of file StringImpl.cc.
| bool Arcane::StringImpl::isEqual | ( | StringImpl * | str | ) |
Definition at line 251 of file StringImpl.cc.
| bool Arcane::StringImpl::isEqual | ( | StringView | str | ) |
Definition at line 281 of file StringImpl.cc.
| bool Arcane::StringImpl::isLessThan | ( | StringImpl * | str | ) |
Definition at line 264 of file StringImpl.cc.
| bool Arcane::StringImpl::isLessThan | ( | StringView | str | ) |
Definition at line 292 of file StringImpl.cc.
View of the UTF-8 encoding WITH null terminator.
Definition at line 240 of file StringImpl.cc.
Referenced by bytes().
|
inline |
Definition at line 80 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
inline |
Definition at line 99 of file arccore/src/base/arccore/base/internal/StringImpl.h.
| void Arcane::StringImpl::removeReference | ( | ) |
Definition at line 215 of file StringImpl.cc.
| StringImpl * Arcane::StringImpl::replaceWhiteSpace | ( | ) |
Definition at line 387 of file StringImpl.cc.
Definition at line 435 of file StringImpl.cc.
| StringImpl * Arcane::StringImpl::toLower | ( | ) |
Definition at line 423 of file StringImpl.cc.
| std::string_view Arcane::StringImpl::toStdStringView | ( | ) |
Definition at line 186 of file StringImpl.cc.
| StringImpl * Arcane::StringImpl::toUpper | ( | ) |
Definition at line 411 of file StringImpl.cc.
| ConstArrayView< UChar > Arcane::StringImpl::utf16 | ( | ) |
Definition at line 229 of file StringImpl.cc.
| StringView Arcane::StringImpl::view | ( | ) |
Definition at line 196 of file StringImpl.cc.
|
friend |
Definition at line 47 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
friend |
Definition at line 48 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Definition at line 112 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Definition at line 111 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Definition at line 113 of file arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Definition at line 114 of file arccore/src/base/arccore/base/internal/StringImpl.h.