Arcane  4.2.1.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::StringImpl

Implémentation de la classe String. Plus de détails...

#include </__w/arcaneframework.github.io/arcaneframework.github.io/framework/arccore/src/base/arccore/base/internal/StringImpl.h>

Graphe de collaboration de Arcane::StringImpl:

Fonctions membres publiques

 StringImpl (std::string_view str)
 StringImpl (const StringImpl &str)
 StringImpl (Span< const Byte > bytes)
UCharConstArrayView utf16 ()
Span< const BytelargeUtf8 ()
 Vue sur l'encodage UTF-8 AVEC zéro terminal.
Span< const Bytebytes ()
 idem largeUtf8() mais SANS le zéro terminal
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

Fonctions membres publiques statiques

static StringImpl * substring (StringImpl *str, Int64 pos, Int64 len)

Types privés

enum  { eValidUtf16 = 1 << 0 , eValidUtf8 = 1 << 1 }

Fonctions membres privées

 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 ()

Attributs privés

std::atomic< Int32m_nb_ref
int m_flags
Impl::CoreArray< UCharm_utf16_array
Impl::CoreArray< Bytem_utf8_array

Amis

class String
class StringBuilder

Description détaillée

Implémentation de la classe String.

Avertissement
Cette classe est interne à Arcane et ne doit pas êre utilisée en dehors de Arcane.

Actuellement l'implémentation supporte deux encodages simultanés: UTF-8 et UTF-16. L'encodage UTF-16 est obsolète et sera supprimé fin 2019.

Lorsque le C++20 sera disponible, cette classe ne sera qu'une encapsulation de std::u8string.

Définition à la ligne 45 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

Documentation des énumérations membres

◆ anonymous enum

anonymous enum
private

Définition à la ligne 106 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

Documentation des constructeurs et destructeur

◆ StringImpl() [1/5]

Arcane::StringImpl::StringImpl ( std::string_view str)

Définition à la ligne 110 du fichier StringImpl.cc.

◆ StringImpl() [2/5]

Arcane::StringImpl::StringImpl ( const StringImpl & str)

Définition à la ligne 134 du fichier StringImpl.cc.

◆ StringImpl() [3/5]

Arcane::StringImpl::StringImpl ( Span< const Byte > bytes)

Définition à la ligne 146 du fichier StringImpl.cc.

◆ StringImpl() [4/5]

Arcane::StringImpl::StringImpl ( )
private

Définition à la ligne 157 du fichier StringImpl.cc.

◆ StringImpl() [5/5]

Arcane::StringImpl::StringImpl ( Span< const UChar > uchars)
private

Définition à la ligne 122 du fichier StringImpl.cc.

Documentation des fonctions membres

◆ _appendUtf8()

void Arcane::StringImpl::_appendUtf8 ( Span< const Byte > ref_str)
private

Définition à la ligne 366 du fichier StringImpl.cc.

◆ _checkReference()

void Arcane::StringImpl::_checkReference ( )
inlineprivate

Définition à la ligne 73 du fichier StringImpl.cc.

◆ _createUtf16()

void Arcane::StringImpl::_createUtf16 ( )
private

Définition à la ligne 448 du fichier StringImpl.cc.

◆ _createUtf8()

void Arcane::StringImpl::_createUtf8 ( )
private

Définition à la ligne 467 du fichier StringImpl.cc.

◆ _finalizeUtf8Creation()

void Arcane::StringImpl::_finalizeUtf8Creation ( )
inlineprivate

Définition à la ligne 86 du fichier StringImpl.cc.

◆ _initFromSpan()

void Arcane::StringImpl::_initFromSpan ( Span< const Byte > bytes)
inlineprivate

Définition à la ligne 100 du fichier StringImpl.cc.

◆ _invalidateUtf16()

void Arcane::StringImpl::_invalidateUtf16 ( )
private

Définition à la ligne 499 du fichier StringImpl.cc.

◆ _invalidateUtf8()

void Arcane::StringImpl::_invalidateUtf8 ( )
private

Définition à la ligne 509 du fichier StringImpl.cc.

◆ _printStrUtf16()

void Arcane::StringImpl::_printStrUtf16 ( std::ostream & o,
Span< const UChar > str )
private

Définition à la ligne 519 du fichier StringImpl.cc.

◆ _printStrUtf8()

void Arcane::StringImpl::_printStrUtf8 ( std::ostream & o,
Span< const Byte > str )
private

Définition à la ligne 533 du fichier StringImpl.cc.

◆ _setUtf16()

void Arcane::StringImpl::_setUtf16 ( Span< const UChar > src)
private

Définition à la ligne 486 du fichier StringImpl.cc.

◆ addReference()

void Arcane::StringImpl::addReference ( )

Définition à la ligne 206 du fichier StringImpl.cc.

◆ append() [1/2]

StringImpl * Arcane::StringImpl::append ( StringImpl * str)

Définition à la ligne 335 du fichier StringImpl.cc.

◆ append() [2/2]

StringImpl * Arcane::StringImpl::append ( StringView str)

Définition à la ligne 348 du fichier StringImpl.cc.

◆ bytes()

Span< const Byte > Arcane::StringImpl::bytes ( )

idem largeUtf8() mais SANS le zéro terminal

Définition à la ligne 167 du fichier StringImpl.cc.

Références Arcane::SpanImpl< T, SizeType, Extent >::data(), largeUtf8(), et Arcane::SpanImpl< T, SizeType, Extent >::size().

Voici le graphe d'appel pour cette fonction :

◆ clone()

StringImpl * Arcane::StringImpl::clone ( )

Définition à la ligne 304 du fichier StringImpl.cc.

◆ collapseWhiteSpace()

StringImpl * Arcane::StringImpl::collapseWhiteSpace ( )

Définition à la ligne 400 du fichier StringImpl.cc.

◆ empty()

bool Arcane::StringImpl::empty ( )

Définition à la ligne 316 du fichier StringImpl.cc.

◆ hasUtf16()

bool Arcane::StringImpl::hasUtf16 ( ) const
inline

Définition à la ligne 102 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ hasUtf8()

bool Arcane::StringImpl::hasUtf8 ( ) const
inline

Définition à la ligne 101 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ internalDump()

void Arcane::StringImpl::internalDump ( std::ostream & ostr)

Définition à la ligne 546 du fichier StringImpl.cc.

◆ isEqual() [1/2]

bool Arcane::StringImpl::isEqual ( StringImpl * str)

Définition à la ligne 252 du fichier StringImpl.cc.

◆ isEqual() [2/2]

bool Arcane::StringImpl::isEqual ( StringView str)

Définition à la ligne 282 du fichier StringImpl.cc.

◆ isLessThan() [1/2]

bool Arcane::StringImpl::isLessThan ( StringImpl * str)

Définition à la ligne 265 du fichier StringImpl.cc.

◆ isLessThan() [2/2]

bool Arcane::StringImpl::isLessThan ( StringView str)

Définition à la ligne 293 du fichier StringImpl.cc.

◆ largeUtf8()

Span< const Byte > Arcane::StringImpl::largeUtf8 ( )

Vue sur l'encodage UTF-8 AVEC zéro terminal.

Définition à la ligne 241 du fichier StringImpl.cc.

Référencé par bytes().

Voici le graphe des appelants de cette fonction :

◆ nbReference()

Int32 Arcane::StringImpl::nbReference ( )
inline

Définition à la ligne 80 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ null()

bool Arcane::StringImpl::null ( )
inline

Définition à la ligne 99 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ removeReference()

void Arcane::StringImpl::removeReference ( )

Définition à la ligne 216 du fichier StringImpl.cc.

◆ replaceWhiteSpace()

StringImpl * Arcane::StringImpl::replaceWhiteSpace ( )

Définition à la ligne 388 du fichier StringImpl.cc.

◆ substring()

StringImpl * Arcane::StringImpl::substring ( StringImpl * str,
Int64 pos,
Int64 len )
static

Définition à la ligne 436 du fichier StringImpl.cc.

◆ toLower()

StringImpl * Arcane::StringImpl::toLower ( )

Définition à la ligne 424 du fichier StringImpl.cc.

◆ toStdStringView()

std::string_view Arcane::StringImpl::toStdStringView ( )

Définition à la ligne 187 du fichier StringImpl.cc.

◆ toUpper()

StringImpl * Arcane::StringImpl::toUpper ( )

Définition à la ligne 412 du fichier StringImpl.cc.

◆ utf16()

ConstArrayView< UChar > Arcane::StringImpl::utf16 ( )

Définition à la ligne 230 du fichier StringImpl.cc.

◆ view()

StringView Arcane::StringImpl::view ( )

Définition à la ligne 197 du fichier StringImpl.cc.

◆ String

friend class String
friend

Définition à la ligne 47 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ StringBuilder

friend class StringBuilder
friend

Définition à la ligne 48 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

Documentation des données membres

◆ m_flags

int Arcane::StringImpl::m_flags
private

Définition à la ligne 112 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ m_nb_ref

std::atomic<Int32> Arcane::StringImpl::m_nb_ref
private

Définition à la ligne 111 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ m_utf16_array

Impl::CoreArray<UChar> Arcane::StringImpl::m_utf16_array
private

Définition à la ligne 113 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ m_utf8_array

Impl::CoreArray<Byte> Arcane::StringImpl::m_utf8_array
private

Définition à la ligne 114 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.


La documentation de cette classe a été générée à partir des fichiers suivants :