Arcane  v3.16.0.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)
 
StringImplclone ()
 
StringImplappend (StringImpl *str)
 
StringImplappend (StringView str)
 
StringImplreplaceWhiteSpace ()
 
StringImplcollapseWhiteSpace ()
 
StringImpltoUpper ()
 
StringImpltoLower ()
 
bool null ()
 
bool empty ()
 
bool hasUtf8 () const
 
bool hasUtf16 () const
 

Fonctions membres publiques statiques

static StringImplsubstring (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
 
CoreArray< UCharm_utf16_array
 
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 44 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

Documentation des énumérations membres

◆ anonymous enum

anonymous enum
private

Définition à la ligne 90 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 104 du fichier StringImpl.cc.

◆ StringImpl() [2/5]

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

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

◆ StringImpl() [3/5]

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

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

◆ StringImpl() [4/5]

Arcane::StringImpl::StringImpl ( )
private

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

◆ StringImpl() [5/5]

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

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

Documentation des fonctions membres

◆ _appendUtf8()

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

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

◆ _checkReference()

void Arcane::StringImpl::_checkReference ( )
inlineprivate

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

◆ _createUtf16()

void Arcane::StringImpl::_createUtf16 ( )
private

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

◆ _createUtf8()

void Arcane::StringImpl::_createUtf8 ( )
private

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

◆ _finalizeUtf8Creation()

void Arcane::StringImpl::_finalizeUtf8Creation ( )
inlineprivate

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

◆ _initFromSpan()

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

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

◆ _invalidateUtf16()

void Arcane::StringImpl::_invalidateUtf16 ( )
private

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

◆ _invalidateUtf8()

void Arcane::StringImpl::_invalidateUtf8 ( )
private

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

◆ _printStrUtf16()

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

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

◆ _printStrUtf8()

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

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

◆ _setUtf16()

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

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

◆ addReference()

void Arcane::StringImpl::addReference ( )

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

◆ append() [1/2]

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

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

◆ append() [2/2]

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

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

◆ bytes()

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

idem largeUtf8() mais SANS le zéro terminal

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

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

+ Voici le graphe d'appel pour cette fonction :

◆ clone()

StringImpl * Arcane::StringImpl::clone ( )

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

◆ collapseWhiteSpace()

StringImpl * Arcane::StringImpl::collapseWhiteSpace ( )

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

◆ empty()

bool Arcane::StringImpl::empty ( )

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

◆ hasUtf16()

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

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

◆ hasUtf8()

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

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

◆ internalDump()

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

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

◆ isEqual() [1/2]

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

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

◆ isEqual() [2/2]

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

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

◆ isLessThan() [1/2]

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

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

◆ isLessThan() [2/2]

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

Définition à la ligne 287 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 235 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 71 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ null()

bool Arcane::StringImpl::null ( )
inline

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

◆ removeReference()

void Arcane::StringImpl::removeReference ( )

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

◆ replaceWhiteSpace()

StringImpl * Arcane::StringImpl::replaceWhiteSpace ( )

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

◆ substring()

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

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

◆ toLower()

StringImpl * Arcane::StringImpl::toLower ( )

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

◆ toStdStringView()

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

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

◆ toUpper()

StringImpl * Arcane::StringImpl::toUpper ( )

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

◆ utf16()

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

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

◆ view()

StringView Arcane::StringImpl::view ( )

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

Documentation des fonctions amies et associées

◆ String

friend class String
friend

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

◆ StringBuilder

friend class StringBuilder
friend

Définition à la ligne 47 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 96 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 95 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.

◆ m_utf16_array

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

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

◆ m_utf8_array

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

Définition à la ligne 98 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 :