14#include "arcane/std/internal/BasicReader.h"
15#include "arcane/std/internal/BasicWriter.h"
17#include "arcane/utils/StringBuilder.h"
18#include "arcane/utils/OStringStream.h"
19#include "arcane/utils/PlatformUtils.h"
21#include "arcane/core/IXmlDocumentHolder.h"
22#include "arcane/core/IParallelMng.h"
23#include "arcane/core/CheckpointService.h"
24#include "arcane/core/Directory.h"
25#include "arcane/core/IParallelReplication.h"
26#include "arcane/core/IVariableUtilities.h"
27#include "arcane/core/VerifierService.h"
28#include "arcane/core/IVariableMng.h"
29#include "arcane/core/CheckpointInfo.h"
31#include "arcane/std/ArcaneBasicCheckpoint_axl.h"
38using namespace Arcane::impl;
62 md.m_version = version;
87 Integer m_write_index;
95 info() <<
"USE DEFAULT FILE NAME index=" << currentIndex();
99 if (
pr->hasReplication()) {
101 buf = buf +
pr->replicationRank();
103 info() <<
"FILE_NAME is " << buf;
141 <<
" version=" <<
md.m_version
145 if (filename.
null()) {
147 filename =
dump_dir.file(_defaultFileName());
150 filename = filename +
"_n" + currentIndex();
151 info() <<
" READ CHECKPOINT FILENAME = " << filename;
156 m_reader->initialize();
175 auto open_mode = BasicReaderWriterCommon::OpenModeAppend;
179 open_mode = BasicReaderWriterCommon::OpenModeTruncate;
182 if (filename.
null()) {
184 filename =
dump_dir.file(_defaultFileName());
192 version =
options()->formatVersion();
200 info() <<
"Writing checkpoint with 'ArcaneBasicCheckpointService'"
201 <<
" version=" << version
202 <<
" filename='" << filename <<
"'\n";
204 platform::recursiveCreateDirectory(filename);
212 m_writer->initialize();
245 , m_application(
sbi.application())
262 Integer index =
ci.checkpointIndex();
265 info() <<
"USE DEFAULT FILE NAME index=" << index;
267 String buf =
"arcanedump";
272 info() <<
"FILE_NAME is " << buf;
288 <<
" version=" <<
md.m_version;
292 filename = filename +
"_n" +
ci.checkpointIndex();
294 info() <<
" READ CHECKPOINT FILENAME = " << filename;
298 m_reader->initialize();
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro pour déclarer une interface lors de l'enregistrement d'un service.
Classe de base d'un service.
Generation de la classe de base du Service.
CaseOptionsArcaneBasicCheckpoint * options() const
Options du jeu de données du service.
Relecture de protection (version 2).
void notifyBeginRead(const CheckpointReadInfo &cri) override
Notifie qu'une protection va être lue avec les informations issues de checkpoint_info.
void notifyEndRead() override
Notifie de la fin de la lecture d'une protection.
IDataReader2 * dataReader() override
Retourne le lecteur de données associé à ce lecteur de protection.
Protection/reprise basique (version 2).
String readerServiceName() const override
Nom du service du lecteur associé à cet écrivain.
Protection/reprise basique (version 1).
String readerServiceName() const override
Nom du service du lecteur associé à cet écrivain.
void notifyEndRead() override
Notifie qu'une protection vient d'être lue.
void notifyBeginRead() override
Notifie qu'une protection va être lue avec les paramètres courants.
void notifyBeginWrite() override
Notifie qu'une protection va être écrite avec les paramètres courants.
IDataReader * dataReader() override
Retourne le lecteur associé
void notifyEndWrite() override
Notifie qu'une protection vient d'être écrite.
IDataWriter * dataWriter() override
Retourne l'écrivain associé.
void close() override
Ferme les protections.
Informations sur une protection.
Informations de relecture d'une protection.
virtual void setReaderMetaData(const String &s)
Méta données associées à ce lecteur.
virtual void setFileName(const String &file_name)
Positionne le nom du fichier de la protection.
virtual String fileName() const
Nom du fichier de la protection.
RealConstArrayView checkpointTimes() const
Temps des protections.
virtual String baseDirectoryName() const
Nom du répertoire de base de la protection.
virtual String readerMetaData() const
Méta données pour le lecteur associé à cet écrivain.
Classe gérant un répertoire.
Interface de l'application.
Interface du service de lecture d'une protection/reprise (V2)
Interface du service de lecture d'une protection/reprise.
Interface du service d'écriture d'une protection/reprise.
Interface de lecture des données d'une variable (Version 2)
Interface de lecture des données d'une variable.
Interface d'écriture des données d'une variable.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual bool isParallel() const =0
Retourne true si l'exécution est parallèle.
Informations sur la réplication des sous-domaines en parallèle.
static IXmlDocumentHolder * loadFromBuffer(Span< const Byte > buffer, const String &name, ITraceMng *tm)
Charge un document XML.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Flot de sortie lié à une String.
Exception dans un lecteur ou écrivain.
Structure contenant les informations pour créer un service.
Propriétés de création d'un service.
XmlNode attr(const String &name, bool throw_exception=false) const
Retourne l'attribut de nom name.
Integer valueAsInteger(bool throw_exception=false) const
Valeur du noeud convertie en entier.
void setDataCompressor(Ref< IDataCompressor > data_compressor)
Positionne le service de compression. Doit être appelé avant initialize()
constexpr Integer size() const noexcept
Nombre d'éléments du tableau.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
bool null() const
Retourne true si la chaîne est nulle.
ITraceMng * traceMng() const
Gestionnaire de trace.
TraceMessage info() const
Flot pour un message d'information.
#define ARCANE_REGISTER_SERVICE(aclass, a_service_property,...)
Macro pour enregistrer un service.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
@ ST_Application
Le service s'utilise au niveau de l'application.
@ ST_CaseOption
Le service s'utilise au niveau du jeu de données.
@ ST_SubDomain
Le service s'utilise au niveau du sous-domaine.