Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ParameterOptionAddr

Classe représentant une adresse d'option du jeu de données. Cette adresse doit être de la forme : "tag/tag[index]/tag" Les parties de l'adresse sans index auront l'index par défaut (=1). Plus de détails...

#include <arcane/utils/internal/ParameterOption.h>

+ Graphe de collaboration de Arcane::ParameterOptionAddr:

Fonctions membres publiques

 ParameterOptionAddr (StringView addr_str_view)
 Constructeur.
 
void addAddrPart (ParameterOptionAddrPart *part)
 Méthode permettant d'ajouter une partie à la fin de l'adresse actuelle.
 
ParameterOptionAddrPartaddrPart (const Integer index_of_part) const
 Méthode permettant de récupérer une partie de l'adresse. Si l'adresse termine par un ANY_TAG[ANY_INDEX], tous index donnés en paramètre supérieur au nombre de partie de l'adresse retournera le dernier élément de l'adresse ("ANY_TAG[ANY_INDEX]").
 
ParameterOptionAddrPartlastAddrPart () const
 
Integer nbAddrPart () const
 Méthode permettant de récupérer le nombre de partie de l'adresse. Les parties égales à "ANY_TAG[ANY_INDEX]" sont comptées.
 
bool getIndexInAddr (const ParameterOptionAddr &addr_with_get_index, ArrayView< Integer > indexes) const
 Méthode permettant de récupérer un ou plusieurs indices dans l'adresse.
 
Integer nbIndexToGetInAddr () const
 Méthode permettant de savoir combien il y a de "GET_INDEX" dans l'adresse.
 
bool operator== (const ParameterOptionAddr &other) const
 Opérateur d'égalité. Cet opérateur tient compte des ANY_TAG / ANY_INDEX. L'adresse "aaa[1]/bbb[2]/ANY_TAG[ANY_INDEX]" sera éqale à l'adresse "aaa[1]/bbb[2]/ccc[5]/ddd[7]" ou à l'adresse "aaa[1]/bbb[ANY_INDEX]/ccc[5]/ddd[7]" ou à l'adresse "aaa[1]/bbb[2]" mais pas à l'adresse "aaa[1]".
 
bool operator!= (const ParameterOptionAddr &other) const
 

Attributs privés

UniqueArray< Ref< ParameterOptionAddrPart > > m_parts
 

Description détaillée

Classe représentant une adresse d'option du jeu de données. Cette adresse doit être de la forme : "tag/tag[index]/tag" Les parties de l'adresse sans index auront l'index par défaut (=1).

Cette adresse doit obéir à certaines règles :

  • elle ne doit pas être vide,
  • elle ne doit pas représenter l'ensemble des options ("/"),
  • ses tags peuvent être vides ssi l'index est vide (voir après),
  • l'index spécial ANY_INDEX ne peut être présent que si le tag est non vide,
  • l'adresse peut terminer par un attribut ("\@name"),
  • l'adresse donnée au constructeur ne peut pas terminer par un ANY_TAG (mais ANY_TAG peut être ajouté après avec la méthode addAddrPart()),

Dans une chaine de caractères :

  • le motif ANY_TAG[ANY_INDEX] peut être défini avec "//" : -> "tag/tag//tag" sera convertie ainsi : "tag[1]/tag[1]/ANY_TAG[ANY_INDEX]/tag[1]".
  • l'index ANY_INDEX peut être défini avec un index vide "[]" : -> "tag/tag[]/\@attr" sera convertie ainsi : "tag[1]/tag[ANY_INDEX]/\@attr[1]", -> le motif "tag/[]/tag" est interdit.

Définition à la ligne 127 du fichier ParameterOption.h.

Documentation des constructeurs et destructeur

◆ ParameterOptionAddr()

Arcane::ParameterOptionAddr::ParameterOptionAddr ( StringView addr_str_view)
explicit

Constructeur.

Paramètres
addr_str_viewL'adresse à convertir.

Définition à la ligne 150 du fichier ParameterOption.cc.

Références ARCANE_FATAL, Arcane::StringView::bytes(), Arcane::makeRef(), Arcane::SpanImpl< T, SizeType, Extent, MinValue >::size(), et Arcane::StringView::subView().

Référencé par getIndexInAddr(), et operator==().

+ Voici le graphe d'appel pour cette fonction :
+ Voici le graphe des appelants de cette fonction :

Documentation des fonctions membres

◆ addAddrPart()

void Arcane::ParameterOptionAddr::addAddrPart ( ParameterOptionAddrPart * part)

Méthode permettant d'ajouter une partie à la fin de l'adresse actuelle.

Paramètres
partUn pointeur vers la nouvelle partie. Attention, on récupère la propriété de l'objet (on gère le delete).

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

Références Arcane::makeRef().

+ Voici le graphe d'appel pour cette fonction :

◆ addrPart()

ParameterOptionAddrPart * Arcane::ParameterOptionAddr::addrPart ( const Integer index_of_part) const

Méthode permettant de récupérer une partie de l'adresse. Si l'adresse termine par un ANY_TAG[ANY_INDEX], tous index donnés en paramètre supérieur au nombre de partie de l'adresse retournera le dernier élément de l'adresse ("ANY_TAG[ANY_INDEX]").

Paramètres
index_of_partL'index de la partie à récupérer.
Renvoie
La partie de l'adresse.

Définition à la ligne 250 du fichier ParameterOption.cc.

Références ARCANE_FATAL.

Référencé par getIndexInAddr(), et operator==().

+ Voici le graphe des appelants de cette fonction :

◆ getIndexInAddr()

bool Arcane::ParameterOptionAddr::getIndexInAddr ( const ParameterOptionAddr & addr_with_get_index,
ArrayView< Integer > indexes ) const

Méthode permettant de récupérer un ou plusieurs indices dans l'adresse.

Le fonctionnement de cette méthode est simple. Nous avons l'adresse suivante : "aaa[1]/bbb[2]/ccc[4]/\@name[1]". L'adresse en paramètre est la suivante : "aaa[1]/bbb[GET_INDEX]/ccc[4]/\@name[1]". L'indice ajouté dans la vue en paramètre sera 2.

Si l'adresse en paramètre est : "aaa[1]/bbb[GET_INDEX]/ccc[GET_INDEX]/\@name[1]". Les indices ajoutés dans la vue seront 2 et 4.

En revanche, un "GET_INDEX" ne peut pas être utilisé sur un "ANY_INDEX" (return false). Exemple : si l'on a : "aaa[1]/bbb[ANY_INDEX]/ccc[4]/\@name[1]". Et si l'adresse en paramètre est : "aaa[1]/bbb[GET_INDEX]/ccc[GET_INDEX]/\@name[1]". Le booléen retourné sera false.

Pour avoir la bonne taille de la vue, un appel à la méthode "nbIndexToGetInAddr()" peut être effectué.

Paramètres
addr_with_get_indexL'adresse contenant des indices "GET_INDEX".
indexes[OUT] La vue dans laquelle sera ajouté le ou les indices (la taille devra être correct).
Renvoie
true si la vue a pu être remplie correctement.

Définition à la ligne 283 du fichier ParameterOption.cc.

Références addrPart(), nbAddrPart(), nbIndexToGetInAddr(), ParameterOptionAddr(), et Arcane::ArrayView< T >::size().

+ Voici le graphe d'appel pour cette fonction :

◆ lastAddrPart()

ParameterOptionAddrPart * Arcane::ParameterOptionAddr::lastAddrPart ( ) const

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

◆ nbAddrPart()

Integer Arcane::ParameterOptionAddr::nbAddrPart ( ) const

Méthode permettant de récupérer le nombre de partie de l'adresse. Les parties égales à "ANY_TAG[ANY_INDEX]" sont comptées.

Renvoie
Le nombre de partie de l'adresse.

Définition à la ligne 274 du fichier ParameterOption.cc.

Référencé par getIndexInAddr(), et operator==().

+ Voici le graphe des appelants de cette fonction :

◆ nbIndexToGetInAddr()

Integer Arcane::ParameterOptionAddr::nbIndexToGetInAddr ( ) const

Méthode permettant de savoir combien il y a de "GET_INDEX" dans l'adresse.

Renvoie
Le nombre de "GET_INDEX".

Définition à la ligne 306 du fichier ParameterOption.cc.

Référencé par getIndexInAddr(), et Arcane::ParameterOptionElementsCollection::getIndexInAddr().

+ Voici le graphe des appelants de cette fonction :

◆ operator!=()

bool Arcane::ParameterOptionAddr::operator!= ( const ParameterOptionAddr & other) const

Définition à la ligne 349 du fichier ParameterOption.cc.

◆ operator==()

bool Arcane::ParameterOptionAddr::operator== ( const ParameterOptionAddr & other) const

Opérateur d'égalité. Cet opérateur tient compte des ANY_TAG / ANY_INDEX. L'adresse "aaa[1]/bbb[2]/ANY_TAG[ANY_INDEX]" sera éqale à l'adresse "aaa[1]/bbb[2]/ccc[5]/ddd[7]" ou à l'adresse "aaa[1]/bbb[ANY_INDEX]/ccc[5]/ddd[7]" ou à l'adresse "aaa[1]/bbb[2]" mais pas à l'adresse "aaa[1]".

Définition à la ligne 321 du fichier ParameterOption.cc.

Références addrPart(), Arcane::ParameterOptionAddrPart::isAny(), nbAddrPart(), et ParameterOptionAddr().

+ Voici le graphe d'appel pour cette fonction :

Documentation des données membres

◆ m_parts

UniqueArray<Ref<ParameterOptionAddrPart> > Arcane::ParameterOptionAddr::m_parts
private

Définition à la ligne 219 du fichier ParameterOption.h.


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