Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ICheckpointMng.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/* ICheckpointMng.h (C) 2000-2025 */
9/* */
10/* Interface du gestionnaire des informations des protections. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_ICHECKPOINTMNG_H
13#define ARCANE_CORE_ICHECKPOINTMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \brief Interface du gestionnaire des informations des protections.
33 *
34 * Ce gestionnaire gère les informations des protections, à savoir les
35 * temps protégés, les services utilisés et d'autres informations nécessaires
36 * pour les reprises. Il ne gère pas directement l'écriture ni la relecture
37 * qui sont déléguées à un ICheckpointReader ou ICheckpointWriter.
38 *
39 * La lecture d'une protection provoque la modification de toutes les variables
40 * et des maillages.
41 */
42class ARCANE_CORE_EXPORT ICheckpointMng
43{
44 public:
45
46 virtual ~ICheckpointMng() = default; //!< Libère les ressources.
47
48 public:
49
50 /*!
51 * \brief Lit une protection.
52 *
53 * Cette opération est collective.
54 *
55 * \deprecated Utiliser readDefaultCheckpoint() à la place
56 */
57 ARCANE_DEPRECATED_122 virtual void readCheckpoint() = 0;
58
59 /*!
60 * \brief Lit une protection.
61 *
62 * Lit une protection à partir du lecture \a reader.
63 */
64 virtual void readCheckpoint(ICheckpointReader* reader) = 0;
65
66 /*!
67 * \brief Lit une protection.
68 *
69 * Lit une protection dont les infos de lecture sont dans \a infos.
70 *
71 * \deprecated A la place, utiliser le code suivants:
72 * \code
73 * ICheckpointMng* cm = ...;
74 * Span<const Byte> buffer;
75 * CheckpointInfo checkpoint_info = cm->readChekpointInfo(buffer);
76 * cm->readChekpoint(checkpoint_info);
77 * \endcode
78 */
79 virtual ARCANE_DEPRECATED_2018 void readCheckpoint(ByteConstArrayView infos) = 0;
80
81 /*!
82 * \brief Lit les informations d'une protection.
83 *
84 * Lit les informations d'une protection contenant dans le buffer \a infos.
85 * \a buf_name contient le nom du buffer utilisé dans les affichages en cas d'erreur.
86 */
87 virtual CheckpointInfo readCheckpointInfo(Span<const Byte> infos, const String& buf_name) = 0;
88
89 /*!
90 * \brief Lit une protection.
91 *
92 * Lit une protection dont les infos sont dans \a checkpoint_infos.
93 */
94 virtual void readCheckpoint(const CheckpointInfo& checkpoint_info) = 0;
95
96 /*!
97 * \brief Lit une protection par défaut
98 *
99 * Cette opération est collective.
100 *
101 * Dans l'implémentation par défaut, les informations pour la relecture
102 * sont stockées dans un fichier de nom 'checkpoint_info.xml' et qui se trouve
103 * dans le répertoire d'exportation du cas (ISubDomain::exportDirectory()).
104 *
105 * \deprecated A la place, utiliser le code suivants:
106 * \code
107 * ICheckpointMng* cm = ...;
108 * CheckpointInfo checkpoint_info = cm->readDefaultChekpointInfo();
109 * cm->readChekpoint(checkpoint_info);
110 * \endcode
111 */
112 virtual ARCANE_DEPRECATED_2018 void readDefaultCheckpoint() = 0;
113
114 /*!
115 * \brief Lit les informations de protection par défaut.
116 *
117 * Cette opération est collective.
118 *
119 * Dans l'implémentation par défaut, les informations pour la relecture
120 * sont stockées dans un fichier de nom 'checkpoint_info.xml' et qui se trouve
121 * dans le répertoire d'exportation du cas (ISubDomain::exportDirectory()).
122 *
123 * Après lecture des informations, il est possible d'appeler
124 * readCheckpoint(const CheckpointInfo& checkpoint_info) pour lire la protection.
125 */
127
128 /*!
129 * \brief Écrit une protection par défaut avec l'écrivain \a writer.
130 *
131 * Cette opération est collective.
132 *
133 * \deprecated Utiliser writeDefaultCheckpoint() à la place.
134 */
135 ARCANE_DEPRECATED_122 virtual void writeCheckpoint(ICheckpointWriter* writer) = 0;
136
137 /*!
138 * \brief Écrit une protection avec l'écrivain \a writer.
139 *
140 * Cette opération est collective.
141 *
142 * Les informations pour pouvoir le relire sont stockées dans le tableau
143 * \a infos passé en argument. Il est ensuite possible de relire une protection
144 * via readCheckpoint(ByteConstArrayView).
145 *
146 * L'implémentation par défaut stocke dans infos un fichier XML contenant en autre
147 * le nom du lecteur correspondant, le nombre de sous-domaines, ...
148 */
149 virtual void writeCheckpoint(ICheckpointWriter* writer, ByteArray& infos) = 0;
150
151 /*!
152 * \brief Écrit une protection avec l'écrivain \a writer.
153 *
154 * Cette opération est collective.
155 *
156 * Il s'agit d'une protection classique qui pourra être relue via readDefaultCheckpoint().
157 *
158 * \sa readDefaultCheckpoint
159 */
160 virtual void writeDefaultCheckpoint(ICheckpointWriter* writer) = 0;
161
162 /*!
163 * \brief Observable en écriture.
164 *
165 * Les observateurs enregistrés dans cet observable sont appelés
166 * avant d'écrire une protection.
167 */
169
170 /*!
171 * \brief Observable en lecture.
172 *
173 * Les observateurs enregistrés dans cet observable sont appelés
174 * après relecture complète d'une protection.
175 */
177};
178
179/*---------------------------------------------------------------------------*/
180/*---------------------------------------------------------------------------*/
181
182} // namespace Arcane
183
184/*---------------------------------------------------------------------------*/
185/*---------------------------------------------------------------------------*/
186
187#endif
188
Déclarations des types généraux de Arcane.
Informations sur une protection.
Interface du gestionnaire des informations des protections.
virtual IObservable * writeObservable()=0
Observable en écriture.
virtual ARCANE_DEPRECATED_2018 void readCheckpoint(ByteConstArrayView infos)=0
Lit une protection.
virtual ~ICheckpointMng()=default
Libère les ressources.
virtual ARCANE_DEPRECATED_122 void readCheckpoint()=0
Lit une protection.
virtual CheckpointInfo readCheckpointInfo(Span< const Byte > infos, const String &buf_name)=0
Lit les informations d'une protection.
virtual ARCANE_DEPRECATED_2018 void readDefaultCheckpoint()=0
Lit une protection par défaut.
virtual ARCANE_DEPRECATED_122 void writeCheckpoint(ICheckpointWriter *writer)=0
Écrit une protection par défaut avec l'écrivain writer.
virtual void readCheckpoint(const CheckpointInfo &checkpoint_info)=0
Lit une protection.
virtual void readCheckpoint(ICheckpointReader *reader)=0
Lit une protection.
virtual CheckpointInfo readDefaultCheckpointInfo()=0
Lit les informations de protection par défaut.
virtual IObservable * readObservable()=0
Observable en lecture.
virtual void writeDefaultCheckpoint(ICheckpointWriter *writer)=0
Écrit une protection avec l'écrivain writer.
virtual void writeCheckpoint(ICheckpointWriter *writer, ByteArray &infos)=0
Écrit une protection avec l'écrivain writer.
Interface du service de lecture d'une protection/reprise.
Interface du service d'écriture d'une protection/reprise.
Interface d'un observable.
Vue d'un tableau d'éléments de type T.
Definition Span.h:513
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Array< Byte > ByteArray
Tableau dynamique à une dimension de caractères.
Definition UtilsTypes.h:208
ConstArrayView< Byte > ByteConstArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:563