16#include "arcane/std/SimpleTableWriterHelper.h" 
   18#include "arcane/Directory.h" 
   19#include "arcane/IParallelMng.h" 
   20#include "arcane/utils/StringBuilder.h" 
   40  _computeOutputDirectory();
 
   42  m_root = 
Directory(root_directory, m_simple_table_reader_writer->fileType());
 
 
   52  if (rank != -1 && m_simple_table_internal->m_parallel_mng->commRank() != rank)
 
   54  m_simple_table_reader_writer->print();
 
 
   65  _computeOutputDirectory();
 
   73  Directory output_directory(root_directory, m_name_output_directory);
 
   82  if (rank != -1 && m_simple_table_internal->m_parallel_mng->commRank() != rank)
 
   90  return m_simple_table_reader_writer->writeTable(output_directory, m_simple_table_internal->m_table_name);
 
 
  108  return m_simple_table_reader_writer->precision();
 
 
  114  m_simple_table_reader_writer->setPrecision(
precision);
 
 
  120  return m_simple_table_reader_writer->isFixed();
 
 
  126  m_simple_table_reader_writer->setFixed(fixed);
 
 
  132  return m_simple_table_reader_writer->isForcedToUseScientificNotation();
 
 
  138  m_simple_table_reader_writer->setForcedToUseScientificNotation(use_scientific);
 
 
  147  _computeOutputDirectory();
 
  148  return m_name_output_directory;
 
 
  154  return m_name_output_directory_without_computation;
 
 
  160  m_name_output_directory = directory;
 
  161  m_name_output_directory_without_computation = directory;
 
  162  m_name_output_directory_computed = 
false;
 
 
  172  return m_simple_table_internal->m_table_name;
 
 
  178  return m_name_table_without_computation;
 
 
  184  m_simple_table_internal->m_table_name = name;
 
  185  m_name_table_without_computation = name;
 
  186  m_name_table_computed = 
false;
 
 
  196  return m_simple_table_internal->m_table_name + 
"." + m_simple_table_reader_writer->fileType();
 
 
  202  _computeOutputDirectory();
 
  203  return Directory(m_root, m_name_output_directory);
 
 
  216  _computeOutputDirectory();
 
  218  return m_name_table_one_file_by_ranks_permited || m_name_output_directory_one_file_by_ranks_permited;
 
 
  224  return m_simple_table_reader_writer->fileType();
 
 
  233  return m_simple_table_internal;
 
 
  239  return m_simple_table_reader_writer;
 
 
  245  if (simple_table_reader_writer.
isNull())
 
  246    ARCANE_FATAL(
"La réference passée en paramètre est Null.");
 
  247  m_simple_table_reader_writer = simple_table_reader_writer;
 
  248  m_simple_table_internal = m_simple_table_reader_writer->internal();
 
 
  254void SimpleTableWriterHelper::
 
  257  if (!m_name_table_computed) {
 
  258    m_simple_table_internal->m_table_name = 
_computeName(m_name_table_without_computation, m_name_table_one_file_by_ranks_permited);
 
  259    m_name_table_computed = 
true;
 
  263void SimpleTableWriterHelper::
 
  264_computeOutputDirectory()
 
  266  if (!m_name_output_directory_computed) {
 
  267    m_name_output_directory = 
_computeName(m_name_output_directory_without_computation, m_name_output_directory_one_file_by_ranks_permited);
 
  268    m_name_output_directory_computed = 
true;
 
  284  one_file_by_ranks_permited = 
false;
 
  293  name.
split(string_splited, 
'@');
 
  296  if (string_splited.
size() > 1) {
 
  298    std::optional<Integer> proc_id = string_splited.
span().findFirst(
"proc_id");
 
  301      string_splited[proc_id.value()] = String::fromNumber(m_simple_table_internal->m_parallel_mng->commRank());
 
  302      one_file_by_ranks_permited = 
true;
 
  306      one_file_by_ranks_permited = 
false;
 
  310    std::optional<Integer> num_procs = string_splited.
span().findFirst(
"num_procs");
 
  313      string_splited[num_procs.value()] = String::fromNumber(m_simple_table_internal->m_parallel_mng->commSize());
 
  319  for (
String str : string_splited) {
 
 
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
 
Integer size() const
Nombre d'éléments du vecteur.
 
Span< const T > span() const
Vue immutable sur ce tableau.
 
Classe gérant un répertoire.
 
Référence à une instance.
 
bool isNull() const
Indique si le compteur référence une instance non nulle.
 
static bool createDirectoryOnlyProcess0(IParallelMng *parallel_mng, const Directory &directory)
Méthode statique permettant de créer un répertoire avec plusieurs processus.
 
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...
 
String fileType() override
Méthode permettant de connaitre le type de fichier qui sera utilisé.
 
void setPrecision(Integer precision) override
Méthode permettant de modifier la précision du print.
 
String outputDirectory() override
Méthode permettant de récupérer le nom du répertoire où sera placé les tableaux.
 
void setTableName(const String &name) override
Méthode permettant de définir le nom du tableau.
 
void setFixed(bool fixed) override
Méthode permettant de définir le flag 'std::fixed' ou non.
 
void print(Integer rank) override
Méthode permettant d'afficher le tableau.
 
void setForcedToUseScientificNotation(bool use_scientific) override
Méthode permettant de définir le flag 'std::scientific' ou non.
 
Ref< SimpleTableInternal > internal() override
Méthode permettant de récupérer une référence vers l'objet SimpleTableInternal utilisé.
 
bool isForcedToUseScientificNotation() override
Méthode permettant de savoir si le frag 'std::scientific' est actif ou non pour l'écriture des valeur...
 
String fileName() override
Méthode permettant de récupérer le nom du fichier.
 
String outputDirectoryWithoutComputation() override
Méthode permettant de récupérer le nom du répertoire tel qu'il a été donné précédement.
 
Ref< ISimpleTableReaderWriter > readerWriter() override
Méthode permettant de récupérer une référence vers l'objet ISimpleTableReaderWriter utilisé.
 
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
 
String tableName() override
Méthode permettant de récupérer le nom du tableau.
 
String tableNameWithoutComputation() override
Méthode permettant de récupérer le nom du tableau tel qu'il a été donné précédement.
 
void setReaderWriter(const Ref< ISimpleTableReaderWriter > &simple_table_reader_writer) override
Méthode permettant de définir une référence vers un ISimpleTableReaderWriter.
 
Integer precision() override
Méthode permettant de récupérer la précision actuellement utilisée pour l'écriture des valeurs.
 
Directory rootPath() override
Méthode permettant de récupérer le chemin où l'implémentation enregistre ces tableaux.
 
bool isFixed() override
Méthode permettant de savoir si le frag 'std::fixed' est actif ou non pour l'écriture des valeurs.
 
Directory outputPath() override
Méthode permettant de récupérer le chemin où sera enregistrés les tableaux.
 
String _computeName(String name, bool &one_file_by_ranks_permited)
Méthode permettant de remplacer les symboles de nom par leur valeur.
 
bool isOneFileByRanksPermited() override
Méthode permettant de savoir si les paramètres actuellement en possession de l'implémentation lui per...
 
Constructeur de chaîne de caractère unicode.
 
StringBuilder & append(const String &str)
Ajoute str.
 
String toString() const
Retourne la chaîne de caractères construite.
 
Chaîne de caractères unicode.
 
bool startsWith(const String &s) const
Indique si la chaîne commence par les caractères de s.
 
void split(StringContainer &str_array, char c) const
Découpe la chaîne suivant le caractère c.
 
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
 
Int32 Integer
Type représentant un entier.
 
UniqueArray< String > StringUniqueArray
Tableau dynamique à une dimension de chaînes de caractères.