Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ITraceMngPolicy.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/* ITraceMngPolicy.h (C) 2000-2019 */
9/* */
10/* Interface de la politique de gestion des traces. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_ITRACEMNGPOLICY_H
13#define ARCANE_UTILS_ITRACEMNGPOLICY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ArrayView.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Interface du gestionnaire de configuration d'un gestionnnaire
29 * de trace.
30 *
31 * Les propriétés définies par cette classe sont utilisées pour initialiser
32 * les instances de ITraceMng. Modifier une propriété n'a pas d'influence
33 * sur les ITraceMng déjà créés.
34 */
35class ARCANE_UTILS_EXPORT ITraceMngPolicy
36{
37 public:
38 virtual ~ITraceMngPolicy(){}
39 public:
40 //! Construit l'instance
41 virtual void build() =0;
42 /*!
43 * \brief Initialise \a trace.
44 *
45 * Si \a rank vaut 0, alors \a trace est considéré comme le ITraceMng
46 * maître. En cas de sortie listing, le suffix aura comme valeur \a rank.
47 */
48 virtual void initializeTraceMng(ITraceMng* trace,Int32 rank) =0;
49
50 /*!
51 * \brief Initialise \a trace avec les infos du parent \a parent_trace.
52 *
53 * Si les sorties fichiers sont activées, \a trace sortira ses informations
54 * dans un fichier suffixé par \a file_suffix.
55 * \a parent_trace peut être nul.
56 */
57 virtual void initializeTraceMng(ITraceMng* trace,ITraceMng* parent_trace,
58 const String& file_suffix) =0;
59 /*!
60 * \brief Positionne les valeurs des TraceClassConfig de \a trace via
61 * les données contenues dans \a bytes.
62 *
63 * \a bytes est un buffer contenant une chaîne de caractères au format
64 * XML tel que décrit dans la documentation \ref arcanedoc_execution_traces.
65 *
66 * Les instance de TraceClassConfig de \a trace déjà enregistrées avant l'appel à cette
67 * méthode sont supprimées.
68 */
70
71 /*!
72 * \brief Indique si le parallélisme est actif.
73 *
74 * Cette propriété est positionnée par l'application lors de l'initialisation.
75 */
76 virtual void setIsParallel(bool v) =0;
77 virtual bool isParallel() const =0;
78
79 /*!
80 * \brief Indique si les sorties de débug sont actives.
81 *
82 * Cette propriété est positionnée par l'application lors de l'initialisation.
83 */
84 virtual void setIsDebug(bool v) =0;
85 virtual bool isDebug() const =0;
86
87 /*!
88 * \brief Indique si en parallèle tous les rangs sortent les traces dans
89 * un fichier.
90 */
91 virtual void setIsParallelOutput(bool v) =0;
92 virtual bool isParallelOutput() const =0;
93
94 /*!
95 * \brief Niveau de verbosité sur le flot de sortie standard (stdout).
96 *
97 * Cette propriété est utilisée lors des appels à initializeTraceMng()
98 * pour positionner le niveau de verbosité des sorties standards
99 */
100 virtual void setStandardOutputVerbosityLevel(Int32 level) =0;
101 virtual Int32 standardOutputVerbosityLevel() const =0;
102
103 /*!
104 * \brief Niveau de verbosité.
105 *
106 * Cette propriété est utilisée lors des appels à initializeTraceMng()
107 * pour positionner le niveau de verbosité.
108 */
109 virtual void setVerbosityLevel(Int32 level) =0;
110 virtual Int32 verbosityLevel() const =0;
111
112 /*!
113 * \brief Indique si un ITraceMng maître sort les traces dans un fichier
114 * en plus de la sortie standard.
115 *
116 * Cette propriété a la valeur \a false par défaut.
117 */
118 virtual void setIsMasterHasOutputFile(bool active) =0;
119 virtual bool isMasterHasOutputFile() const =0;
120
121 /*!
122 * Positionne le niveau de verbosité par défaut.
123 *
124 * Positionne pour \a trace les niveaux de verbosité au niveau \a minimal_level.
125 * Si le niveau de verbosité est déjà supérieur \a minimal_level, rien
126 * n'est fait.
127 * Si \a minimal_level vaut Arccore::Trace::UNSPECIFIED_VERBOSITY_LEVEL,
128 * remet le niveau de verbosité à celui spécifié par verbosityLevel()
129 * et standardOutputVerbosityLevel().
130 */
131 virtual void setDefaultVerboseLevel(ITraceMng* trace,Int32 minimal_level) =0;
132
133 virtual void setDefaultClassConfigXmlBuffer(ByteConstSpan bytes) =0;
134};
135
136/*---------------------------------------------------------------------------*/
137/*---------------------------------------------------------------------------*/
138
139} // End namespace Arcane
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
144#endif
Interface du gestionnaire de configuration d'un gestionnnaire de trace.
virtual void setIsParallelOutput(bool v)=0
Indique si en parallèle tous les rangs sortent les traces dans un fichier.
virtual void initializeTraceMng(ITraceMng *trace, Int32 rank)=0
Initialise trace.
virtual void setIsDebug(bool v)=0
Indique si les sorties de débug sont actives.
virtual void setIsParallel(bool v)=0
Indique si le parallélisme est actif.
virtual void setClassConfigFromXmlBuffer(ITraceMng *trace, ByteConstArrayView bytes)=0
Positionne les valeurs des TraceClassConfig de trace via les données contenues dans bytes.
virtual void setIsMasterHasOutputFile(bool active)=0
Indique si un ITraceMng maître sort les traces dans un fichier en plus de la sortie standard.
virtual void setVerbosityLevel(Int32 level)=0
Niveau de verbosité.
virtual void setStandardOutputVerbosityLevel(Int32 level)=0
Niveau de verbosité sur le flot de sortie standard (stdout).
virtual void setDefaultVerboseLevel(ITraceMng *trace, Int32 minimal_level)=0
virtual void build()=0
Construit l'instance.
virtual void initializeTraceMng(ITraceMng *trace, ITraceMng *parent_trace, const String &file_suffix)=0
Initialise trace avec les infos du parent parent_trace.
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Span< const std::byte > ByteConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:706