Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IPostProcessorWriter.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* IPostProcessorWriter.h (C) 2000-2023 */
9/* */
10/* Interface d'un écrivain pour les informations de post-traitement. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IPOSTPROCESSORWRITER_H
13#define ARCANE_IPOSTPROCESSORWRITER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/IService.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class ICaseOptionList;
30class IDataWriter;
31class IMesh;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35/*!
36 * \ingroup IO
37 * \brief Interface d'un écrivain pour les informations de post-traitement.
38 *
39 * L'instance doit retourner un IDataWriter (via dataWriter()) pour
40 * gérer l'écriture.
41 *
42 * L'appelant doit positionner les champs de l'instant et lancer
43 * L'écriture via l'appel IVariableMng::writePostProcessing(). Par exemple
44 * \code
45 * IPostProcessorWriter* pp = ...;
46 * pp->setBaseDirectoryName(...);
47 * pp->setTimes(...);
48 * pp->setVariables(...);
49 * pp->setGroups(...);
50 * IVariableMng* vm = ...;
51 * vm->writerPostProcessing(pp);
52 * \endcode
53 *
54 * Avant d'écrire les variables, l'instance IVariableMng va appeler
55 * notifyBeginWrite(). Après l'écriture, elle appelle notifyEndWrite().
56 */
57class ARCANE_CORE_EXPORT IPostProcessorWriter
58{
59 public:
60
61 //! Libère les ressources
62 virtual ~IPostProcessorWriter() = default;
63
64 public:
65
66 //! Construit l'instance
67 virtual void build() = 0;
68
69 public:
70
71 /*!
72 * \brief Retourne l'écrivain associé à ce post-processeur.
73 */
74 virtual IDataWriter* dataWriter() = 0;
75
76 /*!
77 * \brief Positionne le nom du répertoire de sortie des fichiers.
78 * Ce répertoire doit exister.
79 */
80 virtual void setBaseDirectoryName(const String& dirname) = 0;
81
82 //! Nom du répertoire de sortie des fichiers.
83 virtual const String& baseDirectoryName() = 0;
84
85 /*!
86 * \brief Positionne le nom du fichier contenant les sorties
87 *
88 * Tous les écrivains ne supportent pas de changer le nom
89 * de fichier.
90 */
91 virtual void setBaseFileName(const String& filename) = 0;
92
93 //! Nom du fichier contenant les sorties.
94 virtual const String& baseFileName() = 0;
95
96 /*!
97 * \brief Positionne le maillage.
98 *
99 * Si non surchargée, cette méthode ne fait rien.
100 *
101 * \deprecated Cette méthode est obsolète. Il n'est plus possible
102 * de changer le maillage d'un service implémentant cette interface.
103 * Le choix du maillage se fait lors de la création du service via
104 * ServiceBuilder en passant le maillage souhaité en argument.
105 */
106 ARCANE_DEPRECATED_REASON("Y2022: Choose the mesh during service creation via ServiceBuilder")
107 virtual void setMesh(IMesh* mesh);
108
109 //! Positionne la liste des temps
110 virtual void setTimes(RealConstArrayView times) = 0;
111
112 //! Liste des temps sauvés
113 virtual RealConstArrayView times() = 0;
114
115 //! Positionne la liste des variables à sortir
116 virtual void setVariables(VariableCollection variables) = 0;
117
118 //! Liste des variables à sauver
119 virtual VariableCollection variables() = 0;
120
121 //! Positionne la liste des groupes à sortir
122 virtual void setGroups(ItemGroupCollection groups) = 0;
123
124 //! Liste des groupes à sauver
125 virtual ItemGroupCollection groups() = 0;
126
127 public:
128
129 //! Notifie qu'une sortie va être effectuée avec les paramètres courants.
130 virtual void notifyBeginWrite() = 0;
131
132 //! Notifie qu'une sortie vient d'être effectuée.
133 virtual void notifyEndWrite() = 0;
134
135 public:
136
137 //! Ferme l'écrivain. Après fermeture, il ne peut plus être utilisé
138 virtual void close() = 0;
139};
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143
144} // namespace Arcane
145
146/*---------------------------------------------------------------------------*/
147/*---------------------------------------------------------------------------*/
148
149#endif
Interface d'écriture des données d'une variable.
Definition IDataWriter.h:49
Interface d'un écrivain pour les informations de post-traitement.
virtual void build()=0
Construit l'instance.
virtual const String & baseFileName()=0
Nom du fichier contenant les sorties.
virtual IDataWriter * dataWriter()=0
Retourne l'écrivain associé à ce post-processeur.
virtual void setBaseFileName(const String &filename)=0
Positionne le nom du fichier contenant les sorties.
virtual void setBaseDirectoryName(const String &dirname)=0
Positionne le nom du répertoire de sortie des fichiers. Ce répertoire doit exister.
virtual ~IPostProcessorWriter()=default
Libère les ressources.
virtual const String & baseDirectoryName()=0
Nom du répertoire de sortie des fichiers.
Collection de variables.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-