Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ITimeHistoryCurveWriter2.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ITimeHistoryCurveWriter2.h (C) 2000-2024 */
9/* */
10/* Interface d'un écrivain d'une courbe d'un historique (Version 2). */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ITIMEHISTORYCURVEWRITER2_H
13#define ARCANE_ITIMEHISTORYCURVEWRITER2_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/utils/ArrayView.h"
19#include "arcane/utils/String.h"
20
21/*
22 * \brief Indique si on autorise l'accès aux membres privés.
23 * Par défaut (mars 2016) on laisse l'accès pour des raisons de compatibilité,
24 * mais il faudra le supprimer.
25 */
26#define ARCANE_ALLOW_CURVE_WRITER_PRIVATE_ACCESS 1
27#ifdef SWIG
28#undef ARCANE_ALLOW_CURVE_WRITER_PRIVATE_ACCESS
29#endif
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34ARCANE_BEGIN_NAMESPACE
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38/*!
39 * \brief Informations pour l'écriture d'une courbe.
40 */
42{
43 public:
44
45 TimeHistoryCurveInfo(const String& aname, Int32ConstArrayView aiterations,
46 RealConstArrayView avalues, Integer sub_size)
47 : m_name(aname)
48 , m_support()
49 , m_has_support(false)
50 , m_iterations(aiterations)
51 , m_values(avalues)
52 , m_sub_size(sub_size)
53 , m_sub_domain(-1)
54 {}
55
56 TimeHistoryCurveInfo(const String& aname, Int32ConstArrayView aiterations,
57 RealConstArrayView avalues, Integer sub_size, Integer sub_domain)
58 : m_name(aname)
59 , m_support()
60 , m_has_support(false)
61 , m_iterations(aiterations)
62 , m_values(avalues)
63 , m_sub_size(sub_size)
64 , m_sub_domain(sub_domain)
65 {}
66
67 TimeHistoryCurveInfo(const String& aname, const String& asupport, Int32ConstArrayView aiterations,
68 RealConstArrayView avalues, Integer sub_size)
69 : m_name(aname)
70 , m_support(asupport)
71 , m_has_support(true)
72 , m_iterations(aiterations)
73 , m_values(avalues)
74 , m_sub_size(sub_size)
75 , m_sub_domain(-1)
76 {}
77
78 TimeHistoryCurveInfo(const String& aname, const String& asupport, Int32ConstArrayView aiterations,
79 RealConstArrayView avalues, Integer sub_size, Integer sub_domain)
80 : m_name(aname)
81 , m_support(asupport)
82 , m_has_support(true)
83 , m_iterations(aiterations)
84 , m_values(avalues)
85 , m_sub_size(sub_size)
86 , m_sub_domain(sub_domain)
87 {}
88
89 public:
90
91 //! Nom de la courbe
92 const String& name() const { return m_name; }
93 const String& support() const { return m_support; }
94 bool hasSupport() const { return m_has_support; }
95 //! Liste des itérations
96 Int32ConstArrayView iterations() const { return m_iterations; }
97 //! Liste des valeurs de la courbe
98 RealConstArrayView values() const { return m_values; }
99 //! Nombre de valeur par temps
100 Integer subSize() const { return m_sub_size; }
101 // TODO nom pas terrible
102 Integer subDomain() const { return m_sub_domain; }
103
104#if ARCANE_ALLOW_CURVE_WRITER_PRIVATE_ACCESS
105 public:
106
107#else
108 private:
109#endif
110 String m_name;
111 String m_support;
112 bool m_has_support;
113 Int32ConstArrayView m_iterations;
114 RealConstArrayView m_values;
115 Integer m_sub_size;
116 Integer m_sub_domain;
117};
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121/*!
122 * \brief Informations sur l'écriture des courbes.
123 */
125{
126 public:
127
129 : m_path(apath)
130 , m_times(atimes)
131 {}
132
133 public:
134
135 /*!
136 * \brief Chemin ou écrire les données (sauf si surchargé spécifiquement
137 * par le service via ITimeHistoryCurveWriter2::setOutputPath())
138 */
139 String path() const { return m_path; }
140 //! Liste des temps
141 RealConstArrayView times() const { return m_times; }
142
143#if ARCANE_ALLOW_CURVE_WRITER_PRIVATE_ACCESS
144 public:
145
146#else
147 private:
148#endif
149 String m_path;
150 RealConstArrayView m_times;
151};
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155/*!
156 * \ingroup StandardService
157 * \brief Interface d'un écrivain d'une courbe.
158 *
159 * Lors de l'écriture des courbes, l'instance sera appelée comme suit:
160 \begincode
161 * ITimeHistoryCurveWriter2* instance = ...;
162 * instance->beginWrite();
163 * for( const TimeHistoryCurveInfo& curveinfo : all_curves )
164 * instance->writeCurve(curveinfo);
165 * instance->endWrite()
166 \endcode
167 */
169{
170 public:
171
172 //! Libère les ressources
174
175 public:
176
177 virtual void build() = 0;
178
179 /*!
180 * \brief Notifie un début d'écriture.
181 */
182 virtual void beginWrite(const TimeHistoryCurveWriterInfo& infos) = 0;
183
184 /*!
185 * \brief Notifie la fin de l'écriture.
186 */
187 virtual void endWrite() = 0;
188
189 /*!
190 * \brief Ecrit une courbe.
191 *
192 * Les infos de la courbe sont données par \a infos
193 * Les valeurs sont dans le tableau \a values. \a times et \a iterations
194 * contiennent respectivement le temps et le numéro de l'itération pour
195 * chaque valeur.
196 * \a path contient le répertoire où seront écrites les courbes
197 */
198 virtual void writeCurve(const TimeHistoryCurveInfo& infos) = 0;
199
200 //! Nom de l'écrivain
201 virtual String name() const = 0;
202
203 /*!
204 * \brief Répertoire de base où seront écrites les courbes.
205 *
206 * Si nul, c'est le répertoire spécifié lors de beginWrite()
207 * qui est utilisé.
208 */
209 virtual void setOutputPath(const String& path) = 0;
210
211 //! Répertoire de base où seront écrites les courbes.
212 virtual String outputPath() const = 0;
213};
214
215/*---------------------------------------------------------------------------*/
216/*---------------------------------------------------------------------------*/
217
218ARCANE_END_NAMESPACE
219
220/*---------------------------------------------------------------------------*/
221/*---------------------------------------------------------------------------*/
222
223#endif
Déclarations des types utilisés dans Arcane.
Interface d'un écrivain d'une courbe.
virtual void setOutputPath(const String &path)=0
Répertoire de base où seront écrites les courbes.
virtual String name() const =0
Nom de l'écrivain.
virtual ~ITimeHistoryCurveWriter2()
Libère les ressources.
virtual void endWrite()=0
Notifie la fin de l'écriture.
virtual void beginWrite(const TimeHistoryCurveWriterInfo &infos)=0
Notifie un début d'écriture.
virtual String outputPath() const =0
Répertoire de base où seront écrites les courbes.
virtual void writeCurve(const TimeHistoryCurveInfo &infos)=0
Ecrit une courbe.
Informations pour l'écriture d'une courbe.
Int32ConstArrayView iterations() const
Liste des itérations.
const String & name() const
Nom de la courbe.
RealConstArrayView values() const
Liste des valeurs de la courbe.
Integer subSize() const
Nombre de valeur par temps.
Informations sur l'écriture des courbes.
String path() const
Chemin ou écrire les données (sauf si surchargé spécifiquement par le service via ITimeHistoryCurveWr...
RealConstArrayView times() const
Liste des temps.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.