Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ParameterList.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ParameterList.h (C) 2000-2020 */
9/* */
10/* Liste de paramètres. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_PARAMETERLIST_H
13#define ARCANE_UTILS_PARAMETERLIST_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Liste de paramètres.
29 *
30 * Une liste de paramètres est similaire à un ensemble (clé,valeur) mais
31 * une clé peut-être éventuellement présente plusieurs fois (un peu à la
32 * manière de la classe std::multi_map).
33 */
34class ARCANE_UTILS_EXPORT ParameterList
35{
36 private:
37
38 class Impl; //!< Implémentation
39
40 public:
41
42 //! Construit un dictionnaire
44 //! Construit un dictionnaire
45 ParameterList(const ParameterList& rhs);
46 ~ParameterList(); //!< Libère les ressources
47
48 public:
49
50 /*!
51 * \brief Récupère le paramètre de nom \a param_name.
52 *
53 * Retourne une chaîne nulle s'il n'y aucun paramètre avec ce nom.
54 *
55 * Si le paramètre est présent plusieurs fois, seule la dernière
56 * valeur est retournée.
57 */
58 String getParameterOrNull(const String& param_name) const;
59
60 /*!
61 * \brief Analyse la ligne \a line.
62 *
63 * La ligne doit avoir une des formes suivantes, avec \a A le
64 * paramètre et \a B la valeur:
65 *
66 * 1. A=B,
67 * 2. A:=B
68 * 3. A+=B,
69 * 4. A-=B
70 *
71 * Dans le cas (1) ou (3), la valeur de l'argument est ajoutée aux
72 * occurences déjà présentes. Dans le cas (2), la valeur de
73 * l'argument remplace toutes les occurences déjà présentes. Dans
74 * le cas (4), l'occurence ayant la valeur \a B est supprimée si elle
75 * était présente et rien ne se produit si elle était absente.
76 *
77 * \retval false si un paramètre a pu être analysé
78 * \retval true sinon.
79 */
80 bool addParameterLine(const String& line);
81
82 /*!
83 * \brief Récupère la liste des paramètres et leur valeur.
84 *
85 * Retourne dans \a param_names la liste des noms des paramêtres et
86 * dans \a values la valeur associée.
87 */
88 void fillParameters(StringList& param_names,StringList& values) const;
89
90 private:
91
92 Impl* m_p; //!< Implémentation
93};
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97
98} // End namespace Arcane
99
100/*---------------------------------------------------------------------------*/
101/*---------------------------------------------------------------------------*/
102
103#endif
Déclarations des types utilisés dans Arcane.
Liste de paramètres.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-