Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CommandLineArguments.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/* CommandLineArguments.h (C) 2000-2020 */
9/* */
10/* Arguments de la ligne de commande. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_COMMANDLINEARGUMENTS_H
13#define ARCANE_UTILS_COMMANDLINEARGUMENTS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/base/ReferenceCounter.h"
18
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26class ParameterList;
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \brief Arguments de la ligne de commande.
32 *
33 * Cette classe utilise une sémantique par référence.
34 * Les méthodes commandLineArgc() et commandLineArgv() retournent des
35 * pointeurs sur des structures internes à cette classe qui ne sont
36 * allouées que tant que l'instance est valide. Ils peuvent être utilisés
37 * pour les méthodes classiques du C qui attendent des pointeurs sur les
38 * arguments de la ligne de commande (soit l'équivalent du couple (argc,argv)
39 * de la fonction main()).
40 *
41 * Les arguments qui commencent par '-A' sont considérés comme des paramètres
42 * de type (clé,valeur) et doivent avoir la forme -A,x=y avec `x` la clé et
43 * `y` la valeur. Il est ensuite possible de récupérer la valeur d'un
44 * paramètre par l'intermédiaire de sa clé via la méthode getParameter();
45 * Si un paramètre est présent plusieurs fois sur la ligne de commande, c'est
46 * la dernière valeur qui est conservée.
47 */
48class ARCANE_UTILS_EXPORT CommandLineArguments
49{
50 class Impl;
51
52 public:
53
54 //! Créé une instance à partir des arguments (argc,argv)
55 CommandLineArguments(int* argc,char*** argv);
56 explicit CommandLineArguments(const StringList& args);
59 CommandLineArguments& operator=(const CommandLineArguments& rhs);
60
61 public:
62
63 int* commandLineArgc() const;
64 char*** commandLineArgv() const;
65
66 //! Remplit \a args avec arguments de la ligne de commande.
67 void fillArgs(StringList& args) const;
68
69 /*!
70 * \brief Récupère le paramètre de nom \a param_name.
71 *
72 * Retourne une chaîne nulle s'il n'y aucun paramètre avec ce nom.
73 */
74 String getParameter(const String& param_name) const;
75
76 /*!
77 * \brief Ajoute un paramètre.
78 * \sa ParameterList::addParameterLine()
79 */
80 void 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 //! Liste des paramètres
91 const ParameterList& parameters() const;
92
93 //! Liste des paramètres
95
96 private:
97
99};
100
101/*---------------------------------------------------------------------------*/
102/*---------------------------------------------------------------------------*/
103
104} // End namespace Arcane
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
109#endif
Déclarations des types utilisés dans Arcane.
Arguments de la ligne de commande.
ParameterList & parameters()
Liste des paramètres.
Liste de paramètres.
Encapsulation d'un pointeur avec compteur de référence.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-