Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IDataReader2.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/* IDataReader2.h (C) 2000-2025 */
9/* */
10/* Interface for reading data of a variable. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IDATAREADER2_H
13#define ARCANE_CORE_IDATAREADER2_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
29class IData;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
37class ARCANE_CORE_EXPORT DataReaderInfo
38{
39 public:
40
41 DataReaderInfo() {}
42
43 public:
44};
45
46/*---------------------------------------------------------------------------*/
47/*---------------------------------------------------------------------------*/
48
52class ARCANE_CORE_EXPORT VariableDataReadInfo
53{
54 public:
55
56 VariableDataReadInfo(VariableMetaData* varmd, IData* data)
57 : m_varmd(varmd)
58 , m_data(data)
59 {}
60
61 public:
62
63 VariableMetaData* variableMetaData() const { return m_varmd; }
64 IData* data() const { return m_data; }
65
66 private:
67
68 VariableMetaData* m_varmd;
69 IData* m_data;
70};
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
96{
97 public:
98
100 virtual ~IDataReader2() {}
101
102 public:
103
105 virtual void fillMetaData(ByteArray& bytes) = 0;
107 virtual void beginRead(const DataReaderInfo& infos) = 0;
109 virtual void read(const VariableDataReadInfo& infos) = 0;
111 virtual void endRead() = 0;
112};
113
114/*---------------------------------------------------------------------------*/
115/*---------------------------------------------------------------------------*/
116
117} // End namespace Arcane
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122#endif
Declarations of Arcane's general types.
Data reading information.
Interface for reading data of a variable (Version 2).
virtual ~IDataReader2()
Releases resources.
virtual void read(const VariableDataReadInfo &infos)=0
Reads the data specified by infos.
virtual void fillMetaData(ByteArray &bytes)=0
Fills bytes with the metadata content.
virtual void beginRead(const DataReaderInfo &infos)=0
Notifies the start of data reading.
virtual void endRead()=0
Notifies the end of data reading.
Interface of a data item.
Definition IData.h:34
Data reading information for a variable.
Metadata on a variable.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Array< Byte > ByteArray
Dynamic one-dimensional array of characters.
Definition UtilsTypes.h:121