Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
SimpleCsvOutputService.cc
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/* SimpleCsvOutputService.cc (C) 2000-2022 */
9/* */
10/* Service permettant de construire et de sortir un tableau au formet csv. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/std/SimpleCsvOutputService.h"
15
16/*---------------------------------------------------------------------------*/
17/*---------------------------------------------------------------------------*/
18
19namespace Arcane
20{
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
26init()
27{
28 if (m_with_option && options()->getTableName() != "") {
29 return init(options()->getTableName());
30 }
31 return init("Table_P@proc_id@");
32}
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
39{
40 if (m_with_option) {
41 return init(table_name, options()->getTableDir());
42 }
43 return init(table_name, "");
44}
45
46/*---------------------------------------------------------------------------*/
47/*---------------------------------------------------------------------------*/
48
51{
52 if (!m_is_already_init) {
53 m_is_already_init = true;
54
55 m_internal = makeRef(new SimpleTableInternal(mesh()->parallelMng()));
56 m_simple_csv_reader_writer = makeRef(new SimpleCsvReaderWriter(m_internal));
57
58 m_simple_table_internal_mng.setInternal(m_internal);
59 m_simple_table_output_mng.setReaderWriter(m_simple_csv_reader_writer);
60 }
61 return m_simple_table_output_mng.init(subDomain()->exportDirectory(), table_name, directory_name);
62}
63
64/*---------------------------------------------------------------------------*/
65/*---------------------------------------------------------------------------*/
66
68clear()
69{
70 if (m_is_already_init) {
71 m_simple_table_internal_mng.clearInternal();
72 }
73}
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
79writeFile(const String& directory, Integer rank)
80{
81 m_simple_table_output_mng.setOutputDirectory(directory);
82 return m_simple_table_output_mng.writeFile(rank);
83}
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
88ARCANE_REGISTER_SERVICE_SIMPLECSVOUTPUT(SimpleCsvOutput, SimpleCsvOutputService);
89
91 ServiceProperty("SimpleCsvOutput", ST_SubDomain),
93
94/*---------------------------------------------------------------------------*/
95/*---------------------------------------------------------------------------*/
96
97} // End namespace Arcane
98
99/*---------------------------------------------------------------------------*/
100/*---------------------------------------------------------------------------*/
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro pour déclarer une interface lors de l'enregistrement d'un service.
CaseOptionsSimpleCsvOutput * options() const
Options du jeu de données du service.
Interface représentant une sortie de tableau simple.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Propriétés de création d'un service.
void clear() override
Méthode permettant de remettre à zéro les tableaux.
bool writeFile(Integer rank) override
Méthode permettant d'écrire le tableau dans un fichier. Méthode effectuant des opérations collectives...
bool init() override
Méthode permettant d'initialiser le tableau.
void clearInternal() override
Méthode permettant d'effacer le contenu du SimpleTableInternal.
void setInternal(const Ref< SimpleTableInternal > &simple_table_internal) override
Méthode permettant de définir une référence vers un SimpleTableInternal.
bool init(const Directory &root_directory, const String &table_name, const String &directory_name) override
Méthode permettant d'initialiser l'objet. Notamment le nom du tableau et le nom du répertoire qui con...
void setOutputDirectory(const String &directory) override
Méthode permettant de définir le répertoire dans lequel enregistrer les tableaux.
bool writeFile(Integer rank) override
void setReaderWriter(const Ref< ISimpleTableReaderWriter > &simple_table_reader_writer) override
Méthode permettant de définir une référence vers un ISimpleTableReaderWriter.
Chaîne de caractères unicode.
#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_SubDomain
Le service s'utilise au niveau du sous-domaine.
Structure représentant un tableau simple.