14#include "arcane/core/MeshReaderMng.h"
16#include "arcane/utils/UniqueArray.h"
17#include "arcane/utils/ScopedPtr.h"
19#include "arcane/core/ISubDomain.h"
20#include "arcane/core/IMainFactory.h"
21#include "arcane/core/IMeshReader.h"
22#include "arcane/core/ServiceBuilder.h"
23#include "arcane/core/IPrimaryMesh.h"
24#include "arcane/core/XmlNode.h"
25#include "arcane/core/Properties.h"
26#include "arcane/core/IXmlDocumentHolder.h"
27#include "arcane/core/IParallelMng.h"
71 bool m_is_init =
false;
72 bool m_is_use_unit =
true;
101 return readMesh(mesh_name,file_name,pm);
115 std::size_t extension_pos = fview.find_last_of(
'.');
116 if (extension_pos==std::string_view::npos)
117 ARCANE_FATAL(
"file name '{0}' has no extension",file_name);
118 fview.remove_prefix(extension_pos+1);
131 ARCANE_FATAL(
"Mesh '{0}' already exists and is allocated", mesh_name);
135 String use_unit_str = (m_p->m_is_use_unit) ?
"true" :
"false";
136 String use_unit_xml =
"<?xml version=\"1.0\"?><file use-unit='"+use_unit_str+
"' />";
140 XmlNode mesh_xml_node = xml_doc->documentNode().documentElement();
144 bool use_internal_partition = pm->
isParallel();
145 for(
auto& reader_ref : m_p->readers() ){
152 use_internal_partition);
163 ARCANE_FATAL(
"No mesh reader is available for mesh file '{0}'",file_name);
174 m_p->m_is_use_unit = v;
183 return m_p->m_is_use_unit;
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
virtual ITraceMng * traceMng() const =0
Gestionnaire de traces.
virtual IPrimaryMesh * createMesh(ISubDomain *sub_domain, const String &name)=0
Créé ou récupère un maillage.
Interface du service gérant la lecture d'un maillage.
virtual bool allowExtension(const String &str)=0
Vérifie si le service supporte les fichiers avec l'extension str.
virtual eReturnType readMeshFromFile(IPrimaryMesh *mesh, const XmlNode &mesh_element, const String &file_name, const String &dir_name, bool use_internal_partition)=0
Lit un maillage à partir d'un fichier.
@ RTError
Erreur lors de l'opération.
@ RTOk
Opération effectuée avec succès.
virtual bool isAllocated()=0
Vrai si le maillage est allouée.
virtual Properties * properties()=0
Propriétés associées à ce maillage.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual IParallelMng * sequentialParallelMng()=0
Retourne un gestionnaire de parallélisme séquentiel.
virtual bool isParallel() const =0
Retourne true si l'exécution est parallèle.
Interface du gestionnaire d'un sous-domaine.
virtual IParallelMng * parallelMng()=0
Retourne le gestionnaire de parallélisme.
virtual IMainFactory * mainFactory()=0
Manufacture principale.
static IXmlDocumentHolder * loadFromBuffer(Span< const Byte > buffer, const String &name, ITraceMng *tm)
Charge un document XML.
IMesh * readMesh(const String &mesh_name, const String &file_name)
Lit le maillage dont le nom de fichier est file_name.
void setUseMeshUnit(bool v)
Si vrai, indique qu'on utilise le système d'unité éventuellement présent dans le format de fichier (t...
bool isUseMeshUnit() const
Indique si on utilise le système d'unité présent dans le fichier.
void setBool(const String &name, bool value)
Positionne une propriété de type bool de nom name et de valeur value.
Encapsulation d'un pointeur qui se détruit automatiquement.
Classe utilitaire pour instantier un service d'une interface donnée.
UniqueArray< Ref< InterfaceType > > createAllInstances()
Créé une instance de chaque service qui implémente InterfaceType.
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
Span< const Byte > bytes() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
std::string_view toStdStringView() const
Retourne une vue de la STL sur la chaîne actuelle.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-