Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
AbstractDataVisitor.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* AbstractDataVisitor.h (C) 2000-2023 */
9/* */
10/* Visiteur abstrait pour une donnée. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ABSTRACTDATAVISITOR_H
13#define ARCANE_ABSTRACTDATAVISITOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/IDataVisitor.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IData;
29class IScalarData;
30class IArrayData;
31class IArray2Data;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35/*!
36 * \brief Visiteur abstrait pour une donnée scalaire.
37 *
38 * Ce visiteur lève une exception pour chaque fonction applyVisitor()
39 * non réimplémentée.
40 */
41class ARCANE_CORE_EXPORT AbstractScalarDataVisitor
42: public IScalarDataVisitor
43{
44 public:
45
46 virtual void applyVisitor(IScalarDataT<Byte>* data);
47 virtual void applyVisitor(IScalarDataT<Real>* data);
48 virtual void applyVisitor(IScalarDataT<Int16>* data);
49 virtual void applyVisitor(IScalarDataT<Int32>* data);
50 virtual void applyVisitor(IScalarDataT<Int64>* data);
51 virtual void applyVisitor(IScalarDataT<Real2>* data);
52 virtual void applyVisitor(IScalarDataT<Real3>* data);
53 virtual void applyVisitor(IScalarDataT<Real2x2>* data);
54 virtual void applyVisitor(IScalarDataT<Real3x3>* data);
55 virtual void applyVisitor(IScalarDataT<String>* data);
56
57 protected:
58
59 void _throwException(eDataType dt);
60};
61
62/*---------------------------------------------------------------------------*/
63/*---------------------------------------------------------------------------*/
64/*!
65 * \brief Visiteur abstrait pour une donnée tableau.
66 *
67 * Ce visiteur lève une exception pour chaque fonction applyVisitor()
68 * non réimplémentée.
69 */
70class ARCANE_CORE_EXPORT AbstractArrayDataVisitor
71: public IArrayDataVisitor
72{
73 public:
74
75 virtual void applyVisitor(IArrayDataT<Byte>* data);
76 virtual void applyVisitor(IArrayDataT<Real>* data);
77 virtual void applyVisitor(IArrayDataT<Int16>* data);
78 virtual void applyVisitor(IArrayDataT<Int32>* data);
79 virtual void applyVisitor(IArrayDataT<Int64>* data);
80 virtual void applyVisitor(IArrayDataT<Real2>* data);
81 virtual void applyVisitor(IArrayDataT<Real3>* data);
82 virtual void applyVisitor(IArrayDataT<Real2x2>* data);
83 virtual void applyVisitor(IArrayDataT<Real3x3>* data);
84 virtual void applyVisitor(IArrayDataT<String>* data);
85
86 protected:
87
88 void _throwException(eDataType dt);
89};
90
91/*---------------------------------------------------------------------------*/
92/*---------------------------------------------------------------------------*/
93/*!
94 * \brief Visiteur abstrait pour une donnée tableau 2D.
95 *
96 * Ce visiteur lève une exception pour chaque fonction applyVisitor()
97 * non réimplémentée.
98 */
99class ARCANE_CORE_EXPORT AbstractArray2DataVisitor
100: public IArray2DataVisitor
101{
102 public:
103
104 virtual void applyVisitor(IArray2DataT<Byte>* data);
105 virtual void applyVisitor(IArray2DataT<Real>* data);
106 virtual void applyVisitor(IArray2DataT<Int16>* data);
107 virtual void applyVisitor(IArray2DataT<Int32>* data);
108 virtual void applyVisitor(IArray2DataT<Int64>* data);
109 virtual void applyVisitor(IArray2DataT<Real2>* data);
110 virtual void applyVisitor(IArray2DataT<Real3>* data);
111 virtual void applyVisitor(IArray2DataT<Real2x2>* data);
112 virtual void applyVisitor(IArray2DataT<Real3x3>* data);
113
114 protected:
115
116 void _throwException(eDataType dt);
117};
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121/*!
122 * \brief Visiteur abstrait pour une donnée tableau 2D à taille variable.
123 *
124 * Ce visiteur lève une exception pour chaque fonction applyVisitor()
125 * non réimplémentée.
126 */
127class ARCANE_CORE_EXPORT AbstractMultiArray2DataVisitor
129{
130 void _throwException(eDataType dt);
131};
132
133/*---------------------------------------------------------------------------*/
134/*---------------------------------------------------------------------------*/
135/*!
136 * \brief Visiteur abstrait pour une donnée.
137 *
138 * Ce visiteur se contente de rediriger vers le visiteur scalaire,
139 * tableau 1D ou tableau 2D concerné.
140 */
141class ARCANE_CORE_EXPORT AbstractDataVisitor
146, public IDataVisitor
147{
148 public:
149
150 virtual void applyDataVisitor(IScalarData* data);
151 virtual void applyDataVisitor(IArrayData* data);
152 virtual void applyDataVisitor(IArray2Data* data);
153};
154
155/*---------------------------------------------------------------------------*/
156/*---------------------------------------------------------------------------*/
157
158}
159
160/*---------------------------------------------------------------------------*/
161/*---------------------------------------------------------------------------*/
162
163#endif
164
Visiteur abstrait pour une donnée tableau 2D.
Visiteur abstrait pour une donnée tableau.
Visiteur abstrait pour une donnée.
Visiteur abstrait pour une donnée tableau 2D à taille variable.
Visiteur abstrait pour une donnée scalaire.
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 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 -*-
eDataType
Type d'une donnée.
Definition DataTypes.h:39