Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CheckpointService.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/* CheckpointService.h (C) 2000-2025 */
9/* */
10/* Service de protection/reprise. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_CHECKPOINTSERVICE_H
13#define ARCANE_CORE_CHECKPOINTSERVICE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/utils/Array.h"
19
20#include "arcane/core/BasicService.h"
21#include "arcane/core/ICheckpointReader.h"
22#include "arcane/core/ICheckpointWriter.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32
33class ISubDomain;
34class VersionInfo;
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39/*!
40 * \internal
41 * \brief Service de protection/reprise.
42 */
43class ARCANE_CORE_EXPORT CheckpointService
44: public BasicService
45, public ICheckpointWriter
46, public ICheckpointReader
47{
48 public:
49
50 class Impl;
51
52 public:
53
54 explicit CheckpointService(const ServiceBuildInfo& sbi);
55
56 public:
57
58 void build() override {}
59
60 public:
61
62 void setFileName(const String& file_name) override { m_file_name = file_name; }
63 String fileName() const override { return m_file_name; }
64 void setCheckpointTimes(RealConstArrayView times) override;
65 void setCurrentTimeAndIndex(Real current_time, Integer current_index) override;
66
67 RealConstArrayView checkpointTimes() const override { return m_checkpoint_times; }
68 //! Méta données pour le lecteur associé à cet écrivain
69 String readerMetaData() const override { return m_reader_meta_data; }
70 void setReaderMetaData(const String& s) override { m_reader_meta_data = s; }
71 void setBaseDirectoryName(const String& dirname) override { m_base_directory_name = dirname; }
72 String baseDirectoryName() const override { return m_base_directory_name; }
73
74 Integer currentIndex() const { return m_current_index; }
75 Real currentTime() const { return m_current_time; }
76
77 private:
78
79 String m_file_name;
80 UniqueArray<Real> m_checkpoint_times;
81 Real m_current_time = -1.0;
82 Integer m_current_index = -1;
83 String m_reader_meta_data;
84 String m_base_directory_name;
85};
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90} // namespace Arcane
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
95#endif
96
String readerMetaData() const override
Méta données pour le lecteur associé à cet écrivain.
void setBaseDirectoryName(const String &dirname) override
Positionne le nom du répertoire de base de la protection.
String baseDirectoryName() const override
Nom du répertoire de base de la protection.
void setReaderMetaData(const String &s) override
Méta données associées à ce lecteur.
void setFileName(const String &file_name) override
Positionne le nom du fichier de la protection.
RealConstArrayView checkpointTimes() const override
Temps des protections.
String fileName() const override
Nom du fichier de la protection.
void build() override
Construction de niveau build du service.
Interface du service de lecture d'une protection/reprise.
Interface du service d'écriture d'une protection/reprise.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Structure contenant les informations pour créer un service.
Chaîne de caractères unicode.
Informations sur une version.
Definition VersionInfo.h:46
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:575