14#include "arcane/utils/ParameterList.h"
15#include "arcane/utils/StringDictionary.h"
16#include "arcane/utils/String.h"
17#include "arcane/utils/Array.h"
39 return (v1.name==v2.name && v1.value==v2.value);
51 void addParameter(
const String& name,
const String& value)
56 m_parameters_dictionary.
add(name,value);
57 m_parameters_list.add({name,value});
59 void setParameter(
const String& name,
const String& value)
64 m_parameters_dictionary.
add(name,value);
67 auto comparer = [=](
const NameValuePair& nv){
return nv.name==name; };
68 auto new_end = std::remove_if(m_parameters_list.begin(),m_parameters_list.end(),comparer);
69 m_parameters_list.resize(new_end-m_parameters_list.begin());
71 void removeParameter(
const String& name,
const String& value)
80 String x = m_parameters_dictionary.
find(name);
81 bool need_fill =
false;
83 m_parameters_dictionary.
remove(name);
88 NameValuePair ref_value{name,value};
89 auto new_end = std::remove(m_parameters_list.begin(),m_parameters_list.end(),ref_value);
90 m_parameters_list.resize(new_end-m_parameters_list.begin());
92 _fillDictionaryWithValueInList(name);
96 m_parameters_dictionary.
fill(param_names,values);
99 void _fillDictionaryWithValueInList(
const String& name)
101 for(
auto& nv : m_parameters_list )
103 m_parameters_dictionary.
add(nv.name,nv.value);
106 StringDictionary m_parameters_dictionary;
107 UniqueArray<NameValuePair> m_parameters_list;
124: m_p(new
Impl(*rhs.m_p))
143 return m_p->getParameter(param_name);
153 Int64 len = bytes.
length();
154 for( Int64 i=0; i<len; ++i ){
156 Byte cnext = ((i+1)<len) ? bytes[i+1] :
'\0';
161 if (c==
'+' && cnext==
'='){
165 if (c==
':' && cnext==
'='){
169 if (c==
'-' && cnext==
'='){
183 m_p->fillParameters(param_names,values);
void fillParameters(StringList ¶m_names, StringList &values) const
Récupère la liste des paramètres et leur valeur.
bool addParameterLine(const String &line)
Analyse la ligne line.
String getParameterOrNull(const String ¶m_name) const
Récupère le paramètre de nom param_name.
~ParameterList()
Libère les ressources.
ParameterList()
Implémentation.
void fill(StringList ¶m_names, StringList &values) const
Remplit keys et values avec les valeurs correspondantes du dictionnaire.
String remove(const String &key)
Supprime la valeur associée à key.
void add(const String &key, const String &value)
Ajoute le couple (key,value) au dictionnaire.
String find(const String &key, bool throw_exception=false) const
Retourne la valeur associée à key.
constexpr __host__ __device__ SizeType length() const noexcept
Nombre d'éléments du tableau.
Vue d'un tableau d'éléments de type T.
Chaîne de caractères unicode.
bool empty() const
Vrai si la chaîne est vide (nulle ou "")
Span< const Byte > bytes() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
String substring(Int64 pos) const
Sous-chaîne commençant à la position pos.
void add(ArrayView< T > lhs, ConstArrayView< T > copy_array)
Ajoute le tableau copy_array dans l'instance.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
List< String > StringList
Tableau de chaînes de caractères unicode.
unsigned char Byte
Type d'un octet.