14#include "arcane/std/internal/TextWriter2.h"
16#include "arcane/utils/ArrayView.h"
17#include "arcane/utils/CheckedConvert.h"
18#include "arcane/utils/Array.h"
19#include "arcane/utils/FatalErrorException.h"
20#include "arcane/utils/Ref.h"
21#include "arcane/utils/IDataCompressor.h"
23#include "arcane/core/ArcaneException.h"
41 std::ofstream m_ostream;
49TextWriter2(
const String& filename)
68_open(
const String& filename)
70 m_p->m_filename = filename;
71 std::ios::openmode mode = std::ios::out | std::ios::binary;
72 m_p->m_ostream.open(filename.
localstr(), mode);
82write(Span<const std::byte> values)
93 return m_p->m_filename;
97setDataCompressor(Ref<IDataCompressor> dc)
99 m_p->m_data_compressor = dc;
102Ref<IDataCompressor> TextWriter2::
103dataCompressor()
const
105 return m_p->m_data_compressor;
111 return m_p->m_ostream.tellp();
118_binaryWrite(Span<const std::byte> values)
120 std::ostream& o = m_p->m_ostream;
122 IDataCompressor* d = m_p->m_data_compressor.get();
123 if (d && values.size() > d->minCompressSize()) {
124 UniqueArray<std::byte> compressed_values;
125 m_p->m_data_compressor->compress(values, compressed_values);
126 Int64 compressed_size = compressed_values.largeSize();
138std::ostream& TextWriter2::
141 return m_p->m_ostream;
#define ARCANE_THROW(exception_class,...)
Macro pour envoyer une exception avec formattage.
Informations sur le type flottant.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Exception dans un lecteur ou écrivain.
Chaîne de caractères unicode.
const char * localstr() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
detail::SpanTypeFromSize< conststd::byte, SizeType >::SpanType asBytes(const SpanImpl< DataType, SizeType, Extent > &s)
Converti la vue en un tableau d'octets non modifiables.
void binaryWrite(std::ostream &ostr, const Span< const std::byte > &bytes)
Ecrit en binaire le contenu de bytes sur le flot ostr.