Arcane  v3.15.3.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-2025 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-2025 */
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);
57 explicit CommandLineArguments(const StringList& args);
61
62 public:
63
64 int* commandLineArgc() const;
65 char*** commandLineArgv() const;
66
67 //! Remplit \a args avec arguments de la ligne de commande.
68 void fillArgs(StringList& args) const;
69
70 /*!
71 * \brief Récupère le paramètre de nom \a param_name.
72 *
73 * Retourne une chaîne nulle s'il n'y aucun paramètre avec ce nom.
74 */
75 String getParameter(const String& param_name) const;
76
77 /*!
78 * \brief Ajoute un paramètre.
79 * \sa ParameterList::addParameterLine()
80 */
81 void addParameterLine(const String& line);
82
83 /*!
84 * \brief Récupère la liste des paramètres et leur valeur.
85 *
86 * Retourne dans \a param_names la liste des noms des paramètres et
87 * dans \a values la valeur associée.
88 */
89 void fillParameters(StringList& param_names,StringList& values) const;
90
91 //! Liste des paramètres
92 const ParameterList& parameters() const;
93
94 //! Liste des paramètres
96
97 private:
98
100};
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105} // End namespace Arcane
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
110#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.
Référence à une instance.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-