Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
TextWriter2.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* TextWriter2.h (C) 2000-2024 */
9/* */
10/* Data writer. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_STD_INTERNAL_TEXTWRITER2_H
13#define ARCANE_STD_INTERNAL_TEXTWRITER2_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/utils/String.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class IDataCompressor;
26}
27
28namespace Arcane::impl
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
38class TextWriter2
39{
40 class Impl;
41
42 public:
43
44 explicit TextWriter2(const String& filename);
45 TextWriter2(const TextWriter2& rhs) = delete;
46 ~TextWriter2();
47 TextWriter2& operator=(const TextWriter2& rhs) = delete;
48
49 public:
50
51 void write(Span<const std::byte> values);
52
53 public:
54
55 String fileName() const;
56 void setDataCompressor(Ref<IDataCompressor> ds);
57 Ref<IDataCompressor> dataCompressor() const;
58 Int64 fileOffset();
59 std::ostream& stream();
60
61 private:
62
63 Impl* m_p;
64
65 private:
66
67 void _open(const String& filename);
68 void _binaryWrite(Span<const std::byte> values);
69};
70
71/*---------------------------------------------------------------------------*/
72/*---------------------------------------------------------------------------*/
73
74} // End namespace Arcane::impl
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79#endif
Declarations of types used in Arcane.
Interface of a service for compressing/decompressing data.
Reference to an instance.
View of an array of elements of type T.
Definition Span.h:635
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
std::int64_t Int64
Signed integer type of 64 bits.