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>
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. | |
ParameterOptionAddrPart * | 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]"). | |
ParameterOptionAddrPart * | lastAddrPart () 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 |
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 :
Dans une chaine de caractères :
Définition à la ligne 127 du fichier ParameterOption.h.
|
explicit |
Constructeur.
addr_str_view | L'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==().
void Arcane::ParameterOptionAddr::addAddrPart | ( | ParameterOptionAddrPart * | part | ) |
Méthode permettant d'ajouter une partie à la fin de l'adresse actuelle.
part | Un 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().
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]").
index_of_part | L'index de la partie à récupérer. |
Définition à la ligne 250 du fichier ParameterOption.cc.
Références ARCANE_FATAL.
Référencé par getIndexInAddr(), et operator==().
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é.
addr_with_get_index | L'adresse contenant des indices "GET_INDEX". |
indexes | [OUT] La vue dans laquelle sera ajouté le ou les indices (la taille devra être correct). |
Définition à la ligne 283 du fichier ParameterOption.cc.
Références addrPart(), nbAddrPart(), nbIndexToGetInAddr(), ParameterOptionAddr(), et Arcane::ArrayView< T >::size().
ParameterOptionAddrPart * Arcane::ParameterOptionAddr::lastAddrPart | ( | ) | const |
Définition à la ligne 265 du fichier ParameterOption.cc.
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.
Définition à la ligne 274 du fichier ParameterOption.cc.
Référencé par getIndexInAddr(), et operator==().
Integer Arcane::ParameterOptionAddr::nbIndexToGetInAddr | ( | ) | const |
Méthode permettant de savoir combien il y a de "GET_INDEX" dans l'adresse.
Définition à la ligne 306 du fichier ParameterOption.cc.
Référencé par getIndexInAddr(), et Arcane::ParameterOptionElementsCollection::getIndexInAddr().
bool Arcane::ParameterOptionAddr::operator!= | ( | const ParameterOptionAddr & | other | ) | const |
Définition à la ligne 349 du fichier ParameterOption.cc.
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().
|
private |
Définition à la ligne 219 du fichier ParameterOption.h.