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;
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==
'='){
Lecteur des fichiers de maillage via la bibliothèque LIMA.
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.
Impl * m_p
Implémentation.
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.
Chaîne de caractères unicode.
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.