Arcane
v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ArrayVariant.h
1
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
//-----------------------------------------------------------------------------
3
// Copyright 2000-2022 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
/* ArrayVariant.h (C) 2000-2018 */
9
/* */
10
/* Type de base polymorphe pour les tableaux mono-dim (dimension 1). */
11
/*---------------------------------------------------------------------------*/
12
#ifndef ARCANE_DATATYPE_ARRAYVARIANT_H
13
#define ARCANE_DATATYPE_ARRAYVARIANT_H
14
/*---------------------------------------------------------------------------*/
15
/*---------------------------------------------------------------------------*/
16
17
#include "arcane/utils/ArrayView.h"
18
#include "arcane/utils/Iostream.h"
19
20
#include "arcane/datatype/VariantBase.h"
21
22
/*---------------------------------------------------------------------------*/
23
/*---------------------------------------------------------------------------*/
24
25
ARCANE_BEGIN_NAMESPACE
26
27
/*---------------------------------------------------------------------------*/
28
/*---------------------------------------------------------------------------*/
29
30
class
Real2;
31
class
Real3;
32
class
Real2x2;
33
class
Real3x3;
34
35
/*---------------------------------------------------------------------------*/
36
/*---------------------------------------------------------------------------*/
37
/*!
38
* \internal
39
*
40
* \brief Type de base polymorphe pour les tableaux (dimension 1).
41
*
42
*/
43
class
ARCANE_DATATYPE_EXPORT
ArrayVariant
44
:
public
VariantBase
45
{
46
public
:
47
ArrayVariant
(eType type,Integer size);
48
ArrayVariant
(
ArrayView<Real>
data);
49
ArrayVariant
(
ArrayView<Real2>
data);
50
ArrayVariant
(
ArrayView<Real3>
data);
51
ArrayVariant
(
ArrayView<Real2x2>
data);
52
ArrayVariant
(
ArrayView<Real3x3>
data);
53
ArrayVariant
(
ArrayView<Int32>
data);
54
ArrayVariant
(
ArrayView<Int64>
data);
55
ArrayVariant
(
ArrayView<bool>
data);
56
ArrayVariant
(
ArrayView<String>
data);
57
~ArrayVariant
();
58
59
public
:
60
61
Integer size()
const
;
62
63
void
value(
ArrayView<Real>
& v)
const
{ v = m_real_value; }
64
void
value(
ArrayView<Real2>
& v)
const
{ v = m_real2_value; }
65
void
value(
ArrayView<Real3>
& v)
const
{ v = m_real3_value; }
66
void
value(
ArrayView<Real2x2>
& v)
const
{ v = m_real2x2_value; }
67
void
value(
ArrayView<Real3x3>
& v)
const
{ v = m_real3x3_value; }
68
void
value(
ArrayView<Int32>
& v)
const
{ v = m_int32_value; }
69
void
value(
ArrayView<Int64>
& v)
const
{ v = m_int64_value; }
70
void
value(
ArrayView<bool>
& v)
const
{ v = m_bool_value; }
71
void
value(
ArrayView<String>
& v)
const
{ v = m_string_value; }
72
73
ArrayView<Real>
asReal() {
return
m_real_value; }
74
ArrayView<Real2>
asReal2() {
return
m_real2_value; }
75
ArrayView<Real3>
asReal3() {
return
m_real3_value; }
76
ArrayView<Real2x2>
asReal2x2() {
return
m_real2x2_value; }
77
ArrayView<Real3x3>
asReal3x3() {
return
m_real3x3_value; }
78
ArrayView<Integer>
asInteger();
79
ArrayView<Int32>
asInt32() {
return
m_int32_value; }
80
ArrayView<bool>
asBool() {
return
m_bool_value; }
81
ArrayView<String>
asString() {
return
m_string_value; }
82
83
ConstArrayView<Real>
asReal()
const
{
return
m_real_value; }
84
ConstArrayView<Real2>
asReal2()
const
{
return
m_real2_value; }
85
ConstArrayView<Real3>
asReal3()
const
{
return
m_real3_value; }
86
ConstArrayView<Real2x2>
asReal2x2()
const
{
return
m_real2x2_value; }
87
ConstArrayView<Real3x3>
asReal3x3()
const
{
return
m_real3x3_value; }
88
ConstArrayView<Integer>
asInteger()
const
;
89
ConstArrayView<Int32>
asInt32()
const
{
return
m_int32_value; }
90
ConstArrayView<Int64>
asInt64()
const
{
return
m_int64_value; }
91
ConstArrayView<bool>
asBool()
const
{
return
m_bool_value; }
92
ConstArrayView<String>
asString()
const
{
return
m_string_value; }
93
94
public
:
95
96
97
private
:
98
ArrayView<Real>
m_real_value;
//!< Valeur de type tableau de reels
99
ArrayView<Real2>
m_real2_value;
//!< Valeur de type tableau de Real2
100
ArrayView<Real3>
m_real3_value;
//!< Valeur de type tableau de Real3
101
ArrayView<Real2x2>
m_real2x2_value;
//!< Valeur de type tableau de Real2x2
102
ArrayView<Real3x3>
m_real3x3_value;
//!< Valeur de type tableau de Real3x3
103
ArrayView<Int32>
m_int32_value;
//!< Valeur de type tableau d'entiers 32 bits
104
ArrayView<Int64>
m_int64_value;
//!< Valeur de type tableau d'entiers 64 bits
105
ArrayView<bool>
m_bool_value;
//!< Valeur de type tableau de booleens
106
ArrayView<String>
m_string_value;
//!< Valeur de type tableau de chaines
107
void
* m_allocated_array;
//!< Non nul si tableau alloué par le variant
108
109
void
_destroy();
110
};
111
112
ARCANE_DATATYPE_EXPORT std::ostream&
113
operator<<
(std::ostream& s,
const
ArrayVariant
& x);
114
115
/*---------------------------------------------------------------------------*/
116
/*---------------------------------------------------------------------------*/
117
118
ARCANE_END_NAMESPACE
119
120
/*---------------------------------------------------------------------------*/
121
/*---------------------------------------------------------------------------*/
122
123
#endif
Arcane::ArrayVariant
Definition
ArrayVariant.h:45
Arcane::VariantBase
Definition
VariantBase.h:32
Arccore::ArrayView
Vue modifiable d'un tableau d'un type T.
Definition
arccore/src/base/arccore/base/ArrayView.h:94
Arccore::ConstArrayView
Vue constante d'un tableau de type T.
Definition
arccore/src/base/arccore/base/ArrayView.h:533
Arcane::operator<<
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Opérateur de sortie sur un flot.
Definition
ArcaneTypes.cc:71
arcane
core
datatype
ArrayVariant.h
Généré le Lundi 18 Novembre 2024 02:56:48 pour Arcane par
1.9.8