Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IIOMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IIOMng.h (C) 2000-2014 */
9/* */
10/* Interface du gestionnaire des entrées-sorties. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IIOMNG_H
13#define ARCANE_IIOMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27class XmlNode;
28class IXmlDocumentHolder;
29class IParallelMng;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33/*!
34 * \ingroup IO
35 * \brief Interface du gestionnaire des entrées sorties.
36 *
37 * \todo gestionnaire des entrées sorties permettant d'encapsuler
38 * la gestion des fichiers en parallèles.
39 *
40 */
41class IIOMng
42{
43 public:
44
45 virtual ~IIOMng() {} //!< Libère les ressources
46
47 public:
48
49 /*!
50 * \brief Lit et analyse le fichier XML \a filename.
51 *
52 * En cas d'erreur, retourne 0.
53 * L'appelant est propriétaire de l'instance retournée et doit
54 * la détruire par l'opérateur delete.
55 * Si un nom de schéma est spécifié, la cohérence
56 * du fichier relativement au schéma est vérifiée.
57 */
58 virtual IXmlDocumentHolder* parseXmlFile(const String& filename,
59 const String& schemaname=String()) =0;
60
61 /*!
62 * \brief Lit et analyse le fichier XML \a filename.
63 *
64 * En cas d'erreur, retourne 0.
65 * L'appelant est propriétaire de l'instance retournée et doit
66 * la détruire par l'opérateur delete.
67 * La cohérence du fichier relativement au schéma est vérifiée;
68 * Le nom du schéma est donnée uniquement pour traitement des messages d'erreurs.
69 */
70 virtual IXmlDocumentHolder* parseXmlFile(const String& filename,
71 const String& schemaname,
72 ByteConstArrayView schema_data) =0;
73
74 /*!
75 * \brief Lit et analyse le fichier XML contenu dans le buffer \a buffer.
76 *
77 * En cas d'erreur, retourne 0.
78 * L'appelant est propriétaire de l'instance retournée et doit
79 * la détruire par l'opérateur delete.
80 * L'argument \a name associe un nom à la zone mémoire qui est
81 * utilisé pour afficher les messages d'erreur.
82 */
84
85 /*!
86 * \brief Lit et analyse le fichier XML contenu dans le buffer \a buffer.
87 *
88 * En cas d'erreur, retourne 0.
89 * L'appelant est propriétaire de l'instance retournée et doit
90 * la détruire par l'opérateur delete.
91 * L'argument \a name associe un nom à la zone mémoire qui est
92 * utilisé pour afficher les messages d'erreur.
93 */
95
96 /*!
97 * \brief Lit et analyse le fichier XML contenu dans la chaîne \a str.
98 *
99 * En cas d'erreur, retourne 0.
100 * L'appelant est propriétaire de l'instance retournée et doit
101 * la détruire par l'opérateur delete.
102 * L'argument \a name associe un nom à la zone mémoire qui est
103 * utilisé pour afficher les messages d'erreur.
104 */
105 virtual IXmlDocumentHolder* parseXmlString(const String& str,const String& name) =0;
106
107 /*! \brief Ecrit l'arbre XML du document \a doc dans le fichier filename.
108 * \retval true en cas d'erreur,
109 * \return false en cas de succès.
110 */
111 virtual bool writeXmlFile(IXmlDocumentHolder* doc,const String& filename, const bool indented=false) =0;
112
113 /*!
114 * \brief Lecture collective d'un fichier.
115 *
116 * Lit collectivement le fichier \a filename et retourne son
117 * contenu dans \a bytes. Le fichier est considéré comme un fichier binaire.
118 * La lecture collective signifie que l'ensemble des
119 * processeurs appellent cette opération et vont lire le même fichier.
120 * L'implémentation peut alors optimiser les accès disque en regroupant la
121 * lecture effective sur un ou plusieurs processeurs puis envoyer le
122 * contenu du fichier sur les autres.
123 *
124 * \retval true en cas d'erreur
125 * \retval false si tout est ok.
126 */
127 virtual bool collectiveRead(const String& filename,ByteArray& bytes) =0;
128
129 /*!
130 * \brief Lecture collective d'un fichier.
131 *
132 * Lit collectivement le fichier \a filename et retourne son
133 * contenu dans \a bytes. Le fichier est considéré comme un fichier binaire
134 * si \a is_binary est vrai.
135 * La lecture collective signifie que l'ensemble des
136 * processeurs appellent cette opération et vont lire le même fichier.
137 * L'implémentation peut alors optimiser les accès disque en regroupant la
138 * lecture effective sur un ou plusieurs processeurs puis envoyer le
139 * contenu du fichier sur les autres.
140 *
141 * \retval true en cas d'erreur
142 * \retval false si tout est ok.
143 */
144 virtual bool collectiveRead(const String& filename,ByteArray& bytes,bool is_binary) =0;
145
146 /*!
147 * \brief Lecture locale d'un fichier.
148 *
149 * Lit localement le fichier \a filename et retourne son
150 * contenu dans \a bytes. Le fichier est considéré comme un fichier binaire.
151 * Cette opération n'est pas collective.
152 *
153 * \retval true en cas d'erreur.
154 * \retval false si tout est ok.
155 *
156 * \warning retourne aussi true si le fichier est vide.
157 * \warning si le ByteUniqueArray doit être converti en String, il _faut_ y ajouter un 0 terminal au préalable (bytes.add(0))
158 */
159 virtual bool localRead(const String& filename,ByteArray& bytes) =0;
160
161 /*!
162 * \brief Lecture locale d'un fichier.
163 *
164 * Lit localement le fichier \a filename et retourne son
165 * contenu dans \a bytes.
166 * Cette opération n'est pas collective.
167 *
168 * \retval true en cas d'erreur.
169 * \retval false si tout est ok.
170 *
171 * \warning retourne aussi true si le fichier est vide.
172 * \warning si le ByteUniqueArray doit être converti en String, il _faut_ y ajouter un 0 terminal au préalable (bytes.add(0))
173 */
174 virtual bool localRead(const String& filename,ByteArray& bytes,bool is_binary) =0;
175};
176
177/*---------------------------------------------------------------------------*/
178/*---------------------------------------------------------------------------*/
179
180ARCANE_END_NAMESPACE
181
182/*---------------------------------------------------------------------------*/
183/*---------------------------------------------------------------------------*/
184
185#endif
186
Interface du gestionnaire des entrées sorties.
Definition IIOMng.h:42
virtual bool writeXmlFile(IXmlDocumentHolder *doc, const String &filename, const bool indented=false)=0
Ecrit l'arbre XML du document doc dans le fichier filename.
virtual bool localRead(const String &filename, ByteArray &bytes, bool is_binary)=0
Lecture locale d'un fichier.
virtual IXmlDocumentHolder * parseXmlFile(const String &filename, const String &schemaname=String())=0
Lit et analyse le fichier XML filename.
virtual IXmlDocumentHolder * parseXmlFile(const String &filename, const String &schemaname, ByteConstArrayView schema_data)=0
Lit et analyse le fichier XML filename.
virtual IXmlDocumentHolder * parseXmlBuffer(Span< const std::byte > buffer, const String &name)=0
Lit et analyse le fichier XML contenu dans le buffer buffer.
virtual bool localRead(const String &filename, ByteArray &bytes)=0
Lecture locale d'un fichier.
virtual bool collectiveRead(const String &filename, ByteArray &bytes, bool is_binary)=0
Lecture collective d'un fichier.
virtual bool collectiveRead(const String &filename, ByteArray &bytes)=0
Lecture collective d'un fichier.
virtual ~IIOMng()
Libère les ressources.
Definition IIOMng.h:45
virtual IXmlDocumentHolder * parseXmlString(const String &str, const String &name)=0
Lit et analyse le fichier XML contenu dans la chaîne str.
virtual IXmlDocumentHolder * parseXmlBuffer(Span< const Byte > buffer, const String &name)=0
Lit et analyse le fichier XML contenu dans le buffer buffer.
Gestionnaire d'un document DOM.
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Vue d'un tableau d'éléments de type T.
Definition Span.h:510
Chaîne de caractères unicode.