Arcane  v3.16.6.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ITimeHistoryCurveWriter2.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/* ITimeHistoryCurveWriter2.h (C) 2000-2025 */
9/* */
10/* Interface d'un écrivain d'une courbe d'un historique (Version 2). */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ITIMEHISTORYCURVEWRITER2_H
13#define ARCANE_CORE_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
34namespace Arcane
35{
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
42class TimeHistoryCurveInfo
43{
44 public:
45
46 TimeHistoryCurveInfo(const String& aname, Int32ConstArrayView aiterations,
47 RealConstArrayView avalues, Integer sub_size)
48 : m_name(aname)
49 , m_support()
50 , m_has_support(false)
51 , m_iterations(aiterations)
52 , m_values(avalues)
53 , m_sub_size(sub_size)
54 , m_sub_domain(-1)
55 {}
56
57 TimeHistoryCurveInfo(const String& aname, Int32ConstArrayView aiterations,
58 RealConstArrayView avalues, Integer sub_size, Integer sub_domain)
59 : m_name(aname)
60 , m_support()
61 , m_has_support(false)
62 , m_iterations(aiterations)
63 , m_values(avalues)
64 , m_sub_size(sub_size)
65 , m_sub_domain(sub_domain)
66 {}
67
68 TimeHistoryCurveInfo(const String& aname, const String& asupport, Int32ConstArrayView aiterations,
69 RealConstArrayView avalues, Integer sub_size)
70 : m_name(aname)
71 , m_support(asupport)
72 , m_has_support(true)
73 , m_iterations(aiterations)
74 , m_values(avalues)
75 , m_sub_size(sub_size)
76 , m_sub_domain(-1)
77 {}
78
79 TimeHistoryCurveInfo(const String& aname, const String& asupport, Int32ConstArrayView aiterations,
80 RealConstArrayView avalues, Integer sub_size, Integer sub_domain)
81 : m_name(aname)
82 , m_support(asupport)
83 , m_has_support(true)
84 , m_iterations(aiterations)
85 , m_values(avalues)
86 , m_sub_size(sub_size)
87 , m_sub_domain(sub_domain)
88 {}
89
90 public:
91
93 const String& name() const { return m_name; }
94 const String& support() const { return m_support; }
95 bool hasSupport() const { return m_has_support; }
97 Int32ConstArrayView iterations() const { return m_iterations; }
99 RealConstArrayView values() const { return m_values; }
101 Integer subSize() const { return m_sub_size; }
102 // TODO nom pas terrible
103 Integer subDomain() const { return m_sub_domain; }
104
105#if ARCANE_ALLOW_CURVE_WRITER_PRIVATE_ACCESS
106 public:
107
108#else
109 private:
110#endif
111 String m_name;
112 String m_support;
113 bool m_has_support = false;
114 Int32ConstArrayView m_iterations;
115 RealConstArrayView m_values;
116 Integer m_sub_size = 0;
117 Integer m_sub_domain = 0;
118};
119
120/*---------------------------------------------------------------------------*/
121/*---------------------------------------------------------------------------*/
125class TimeHistoryCurveWriterInfo
126{
127 public:
128
129 TimeHistoryCurveWriterInfo(const String& apath, RealConstArrayView atimes)
130 : m_path(apath)
131 , m_times(atimes)
132 {}
133
134 public:
135
140 String path() const { return m_path; }
142 RealConstArrayView times() const { return m_times; }
143
144#if ARCANE_ALLOW_CURVE_WRITER_PRIVATE_ACCESS
145 public:
146
147#else
148 private:
149#endif
150 String m_path;
151 RealConstArrayView m_times;
152};
153
154/*---------------------------------------------------------------------------*/
155/*---------------------------------------------------------------------------*/
169class ARCANE_CORE_EXPORT ITimeHistoryCurveWriter2
170{
171 public:
172
174 virtual ~ITimeHistoryCurveWriter2() = default;
175
176 public:
177
178 virtual void build() = 0;
179
183 virtual void beginWrite(const TimeHistoryCurveWriterInfo& infos) = 0;
184
188 virtual void endWrite() = 0;
189
199 virtual void writeCurve(const TimeHistoryCurveInfo& infos) = 0;
200
202 virtual String name() const = 0;
203
210 virtual void setOutputPath(const String& path) = 0;
211
213 virtual String outputPath() const = 0;
214};
215
216/*---------------------------------------------------------------------------*/
217/*---------------------------------------------------------------------------*/
218
219} // namespace Arcane
220
221/*---------------------------------------------------------------------------*/
222/*---------------------------------------------------------------------------*/
223
224#endif
Déclarations des types utilisés dans Arcane.
Interface d'un écrivain d'une courbe.
virtual ~ITimeHistoryCurveWriter2()=default
Libère les ressources.
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 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.
Chaîne de caractères unicode.
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.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:575