14#include "arccore/common/ParameterList.h"
15#include "arccore/common/StringDictionary.h"
16#include "arccore/base/String.h"
17#include "arccore/common/Array.h"
18#include "arccore/base/FatalErrorException.h"
41 return (v1.name==v2.name && v1.value==v2.value);
57 void addParameter(
const String& name,
const String& value)
63 m_parameters_dictionary.
add(name, value);
64 m_parameters_list.add({ name, value });
66 void setParameter(
const String& name,
const String& value)
72 if (name.startsWith(
"//")) {
73 ARCCORE_FATAL(
"Set parameter not supported for ParameterOptions.");
76 m_parameters_dictionary.add(name,value);
79 auto comparer = [=](
const NameValuePair& nv){
return nv.name==name; };
80 auto new_end = std::remove_if(m_parameters_list.begin(),m_parameters_list.end(),comparer);
81 m_parameters_list.resize(new_end-m_parameters_list.begin());
83 void removeParameter(
const String& name,
const String& value)
88 if (name.startsWith(
"//")) {
89 ARCCORE_FATAL(
"Remove parameter not supported for ParameterOptions.");
95 String x = m_parameters_dictionary.find(name);
96 bool need_fill =
false;
98 m_parameters_dictionary.remove(name);
104 auto new_end = std::remove(m_parameters_list.begin(),m_parameters_list.end(),ref_value);
105 m_parameters_list.resize(new_end-m_parameters_list.begin());
107 _fillDictionaryWithValueInList(name);
111 m_parameters_dictionary.fill(param_names, values);
115 void _fillDictionaryWithValueInList(
const String& name)
117 for(
auto& nv : m_parameters_list )
119 m_parameters_dictionary.add(nv.name,nv.value);
122 StringDictionary m_parameters_dictionary;
123 UniqueArray<NameValuePair> m_parameters_list;
159 return m_p->getParameter(param_name);
170 for(
Int64 i=0; i<len; ++i ){
172 Byte cnext = ((i+1)<len) ? bytes[i+1] :
'\0';
177 if (c==
'+' && cnext==
'='){
181 if (c==
':' && cnext==
'='){
185 if (c==
'-' && cnext==
'='){
199 m_p->fillParameters(param_names,values);
#define ARCCORE_FATAL(...)
Macro envoyant une exception FatalErrorException.
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.
constexpr __host__ __device__ SizeType length() const noexcept
Nombre d'éléments du tableau.
Vue d'un tableau d'éléments de type T.
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.
bool empty() const
Vrai si la chaîne est vide (nulle ou "")
String substring(Int64 pos) const
Sous-chaîne commençant à la position pos.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int64_t Int64
Type entier signé sur 64 bits.
List< String > StringList
Tableau de chaînes de caractères unicode.
unsigned char Byte
Type d'un octet.