Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
utils/StringDictionary.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/* StringDictionary.h (C) 2000-2020 */
9/* */
10/* Dictionnaire de chaînes de caractères. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_STRINGDICTIONARY_H
13#define ARCANE_UTILS_STRINGDICTIONARY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \internal
29 * \brief Dictionnaire de chaînes unicode.
30 *
31 * Maintient une liste des couples (clé,valeur) permettant d'associer une
32 * chaîne de caractère à une autre. Ce type de dictionnaire est
33 * utilisé par exemple pour les traductions, auquel cas la clé est
34 * le langage et la valeur la traduction correspondante.
35 */
36class ARCANE_UTILS_EXPORT StringDictionary
37{
38 private:
39 class Impl; //!< Implémentation
40 public:
41
42 //! Construit un dictionnaire
44 //! Construit un dictionnaire
46 ~StringDictionary(); //!< Libère les ressources
47
48 public:
49 /*! \brief Ajoute le couple (key,value) au dictionnaire.
50 *
51 * Si une valeur existe déjà pour \a key, elle est remplacée par
52 * la nouvelle.
53 */
54 void add(const String& key,const String& value);
55
56 /*! \brief Supprime la valeur associée à \a key.
57 *
58 * Si aucune valeur n'était associée à \a key, rien ne se passe.
59 * \return la valeur supprimée s'il y en a une.
60 */
61 String remove(const String& key);
62
63 /*! \brief Retourne la valeur associée à \a key.
64 *
65 * Si aucune valeur n'est associée à \a key, la chaîne nulle est retournée.
66 * Il n'est pas possible de faire la différence entre une valeur
67 * correspondant à la chaîne nulle et une valeur non trouvée sauf si
68 * \a throw_exception est vrai, auquel cas une exception est renvoyée
69 * s'il n'existe pas de valeur correspondant à \a key.
70 */
71 String find(const String& key,bool throw_exception=false) const;
72
73 //! Remplit \a keys et \a values avec les valeurs correspondantes du dictionnaire
74 void fill(StringList& param_names,StringList& values) const;
75
76 private:
77 Impl* m_p; //!< Implémentation
78};
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83} // End namespace Arcane
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
88#endif
Déclarations des types utilisés dans Arcane.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-