Arcane  v3.15.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IDataVisitor.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* IDataVisitor.h (C) 2000-2024 */
9/* */
10/* Interface du pattern visitor pour une donnée. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IDATAVISITOR_H
13#define ARCANE_CORE_IDATAVISITOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IData;
29class IScalarData;
30class IArrayData;
31class IArray2Data;
32class IMultiArray2Data;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36/*!
37 * \brief Interface du pattern visitor pour une donnée.
38 *
39 * Ce pattern se contente de transférer le visiteur sur le
40 * visiteur IScalarDataVisitor, IArrayDataVisitor et IArray2DataVisitor.
41 */
42class ARCANE_CORE_EXPORT IDataVisitor
43{
44 public:
45
46 virtual ~IDataVisitor() {}
47
48 public:
49
50 virtual void applyDataVisitor(IScalarData* data) = 0;
51 virtual void applyDataVisitor(IArrayData* data) = 0;
52 virtual void applyDataVisitor(IArray2Data* data) = 0;
53 // No longer used. Throw NotSupportedException
54 virtual void applyDataVisitor(IMultiArray2Data*);
55};
56
57/*---------------------------------------------------------------------------*/
58/*---------------------------------------------------------------------------*/
59/*!
60 * \brief Interface du pattern visitor pour une donnée scalaire.
61 */
62class ARCANE_CORE_EXPORT IScalarDataVisitor
63{
64 public:
65
66 virtual ~IScalarDataVisitor() {}
67
68 public:
69
70 virtual void applyVisitor(IScalarDataT<Byte>* data) = 0;
71 virtual void applyVisitor(IScalarDataT<Real>* data) = 0;
72 virtual void applyVisitor(IScalarDataT<Int8>* data) = 0;
73 virtual void applyVisitor(IScalarDataT<Int16>* data) = 0;
74 virtual void applyVisitor(IScalarDataT<Int32>* data) = 0;
75 virtual void applyVisitor(IScalarDataT<Int64>* data) = 0;
76 virtual void applyVisitor(IScalarDataT<Real2>* data) = 0;
77 virtual void applyVisitor(IScalarDataT<Real3>* data) = 0;
78 virtual void applyVisitor(IScalarDataT<Real2x2>* data) = 0;
79 virtual void applyVisitor(IScalarDataT<Real3x3>* data) = 0;
80 virtual void applyVisitor(IScalarDataT<Float16>* data) = 0;
81 virtual void applyVisitor(IScalarDataT<BFloat16>* data) = 0;
82 virtual void applyVisitor(IScalarDataT<Float32>* data) = 0;
83 virtual void applyVisitor(IScalarDataT<String>* data) = 0;
84};
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
88/*!
89 * \brief Interface du pattern visitor pour une donnée tableau.
90 */
91class ARCANE_CORE_EXPORT IArrayDataVisitor
92{
93 public:
94
95 virtual ~IArrayDataVisitor() {}
96
97 public:
98
99 virtual void applyVisitor(IArrayDataT<Byte>* data) = 0;
100 virtual void applyVisitor(IArrayDataT<Real>* data) = 0;
101 virtual void applyVisitor(IArrayDataT<Int8>* data) = 0;
102 virtual void applyVisitor(IArrayDataT<Int16>* data) = 0;
103 virtual void applyVisitor(IArrayDataT<Int32>* data) = 0;
104 virtual void applyVisitor(IArrayDataT<Int64>* data) = 0;
105 virtual void applyVisitor(IArrayDataT<Real2>* data) = 0;
106 virtual void applyVisitor(IArrayDataT<Real3>* data) = 0;
107 virtual void applyVisitor(IArrayDataT<Real2x2>* data) = 0;
108 virtual void applyVisitor(IArrayDataT<Real3x3>* data) = 0;
109 virtual void applyVisitor(IArrayDataT<Float16>* data) = 0;
110 virtual void applyVisitor(IArrayDataT<BFloat16>* data) = 0;
111 virtual void applyVisitor(IArrayDataT<Float32>* data) = 0;
112 virtual void applyVisitor(IArrayDataT<String>* data) = 0;
113};
114
115/*---------------------------------------------------------------------------*/
116/*---------------------------------------------------------------------------*/
117/*!
118 * \brief Interface du pattern visitor pour une donnée tableau 2D.
119 */
120class ARCANE_CORE_EXPORT IArray2DataVisitor
121{
122 public:
123
124 virtual ~IArray2DataVisitor() {}
125
126 public:
127
128 virtual void applyVisitor(IArray2DataT<Byte>* data) = 0;
129 virtual void applyVisitor(IArray2DataT<Real>* data) = 0;
130 virtual void applyVisitor(IArray2DataT<Int8>* data) = 0;
131 virtual void applyVisitor(IArray2DataT<Int16>* data) = 0;
132 virtual void applyVisitor(IArray2DataT<Int32>* data) = 0;
133 virtual void applyVisitor(IArray2DataT<Int64>* data) = 0;
134 virtual void applyVisitor(IArray2DataT<Real2>* data) = 0;
135 virtual void applyVisitor(IArray2DataT<Real3>* data) = 0;
136 virtual void applyVisitor(IArray2DataT<Real2x2>* data) = 0;
137 virtual void applyVisitor(IArray2DataT<Real3x3>* data) = 0;
138 virtual void applyVisitor(IArray2DataT<Float16>* data) = 0;
139 virtual void applyVisitor(IArray2DataT<BFloat16>* data) = 0;
140 virtual void applyVisitor(IArray2DataT<Float32>* data) = 0;
141};
142
143/*---------------------------------------------------------------------------*/
144/*---------------------------------------------------------------------------*/
145/*!
146 * \brief Interface du pattern visitor pour une donnée tableau 2D à taille variable
147 *
148 * \deprecated Ne plus utiliser car le type sous-jacent n'est plus utilisé
149 */
150class ARCANE_CORE_EXPORT IMultiArray2DataVisitor
151{
152 public:
153
154 virtual ~IMultiArray2DataVisitor() {}
155
156 public:
157
158 virtual void applyVisitor(IMultiArray2DataT<Byte>*) {}
159 virtual void applyVisitor(IMultiArray2DataT<Real>*) {}
160 virtual void applyVisitor(IMultiArray2DataT<Int16>*) {}
161 virtual void applyVisitor(IMultiArray2DataT<Int32>*) {}
162 virtual void applyVisitor(IMultiArray2DataT<Int64>*) {}
163 virtual void applyVisitor(IMultiArray2DataT<Real2>*) {}
164 virtual void applyVisitor(IMultiArray2DataT<Real3>*) {}
165 virtual void applyVisitor(IMultiArray2DataT<Real2x2>*) {}
166 virtual void applyVisitor(IMultiArray2DataT<Real3x3>*) {}
167};
168
169/*---------------------------------------------------------------------------*/
170/*---------------------------------------------------------------------------*/
171
172} // namespace Arcane
173
174/*---------------------------------------------------------------------------*/
175/*---------------------------------------------------------------------------*/
176
177#endif
Déclarations des types généraux de Arcane.
Interface du pattern visitor pour une donnée tableau 2D.
Interface d'une donnée tableau 2D.
Definition IData.h:340
Interface du pattern visitor pour une donnée tableau.
Interface d'une donnée tableau 1D.
Definition IData.h:276
Interface du pattern visitor pour une donnée.
Interface du pattern visitor pour une donnée tableau 2D à taille variable.
Interface d'une donnée tableau multi 2D.
Definition IData.h:351
Interface du pattern visitor pour une donnée scalaire.
Interface d'une donnée scalaire.
Definition IData.h:227
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-