14#include "arcane/utils/ArcanePrecomp.h"
16#include "arcane/utils/Array.h"
17#include "arcane/utils/String.h"
18#include "arcane/utils/Real2.h"
19#include "arcane/utils/Real3.h"
20#include "arcane/utils/Real2x2.h"
21#include "arcane/utils/Real3x3.h"
23#include "arcane/datatype/ArrayVariant.h"
24#include "arcane/datatype/BadVariantTypeException.h"
36ArrayVariant(eType type,
Integer asize)
43 m_allocated_array = v;
48 m_allocated_array = v;
53 m_allocated_array = v;
58 m_allocated_array = v;
63 m_allocated_array = v;
68 m_allocated_array = v;
73 m_allocated_array = v;
78 m_allocated_array = v;
83 m_allocated_array = v;
87 throw BadVariantTypeException(
"ArrayVariant::ArrayVariant(eType,Integer)", type);
95ArrayVariant(ArrayView<Real> data)
96: VariantBase(1, TReal)
106ArrayVariant(ArrayView<Real2> data)
107: VariantBase(1, TReal2)
109, m_allocated_array(0)
117ArrayVariant(ArrayView<Real3> data)
118: VariantBase(1, TReal3)
120, m_allocated_array(0)
128ArrayVariant(ArrayView<Real2x2> data)
129: VariantBase(1, TReal2x2)
130, m_real2x2_value(data)
131, m_allocated_array(0)
139ArrayVariant(ArrayView<Real3x3> data)
140: VariantBase(1, TReal3x3)
141, m_real3x3_value(data)
142, m_allocated_array(0)
150ArrayVariant(ArrayView<Int32> data)
151: VariantBase(1, TInt32)
153, m_allocated_array(0)
161ArrayVariant(ArrayView<Int64> data)
162: VariantBase(1, TInt64)
164, m_allocated_array(0)
172ArrayVariant(ArrayView<bool> data)
173: VariantBase(1, TBool)
175, m_allocated_array(0)
183ArrayVariant(ArrayView<String> data)
184: VariantBase(1, TString)
185, m_string_value(data)
186, m_allocated_array(0)
205 if (!m_allocated_array)
209 delete reinterpret_cast<RealArray*
>(m_allocated_array);
212 delete reinterpret_cast<Real2Array*
>(m_allocated_array);
215 delete reinterpret_cast<Real3Array*
>(m_allocated_array);
218 delete reinterpret_cast<Real2x2Array*
>(m_allocated_array);
221 delete reinterpret_cast<Real3x3Array*
>(m_allocated_array);
224 delete reinterpret_cast<Int64Array*
>(m_allocated_array);
227 delete reinterpret_cast<Int32Array*
>(m_allocated_array);
230 delete reinterpret_cast<BoolArray*
>(m_allocated_array);
233 delete reinterpret_cast<StringArray*
>(m_allocated_array);
248 return m_real_value.size();
250 return m_real2_value.size();
252 return m_real3_value.size();
254 return m_real2x2_value.size();
256 return m_real3x3_value.size();
258 return m_bool_value.size();
260 return m_string_value.size();
262 return m_int32_value.size();
264 return m_int64_value.size();
274extern "C++" ARCANE_DATATYPE_EXPORT std::ostream&
275operator<<(std::ostream& s,
const ArrayVariant& x)
277 s <<
"ArrayVariant [t="
283 case VariantBase::TReal:
284 s << x.asReal().data();
286 size = x.asReal().size();
287 for (Integer i = 0; i < size; ++i)
288 s << x.asReal()[i] <<
" ";
290 case VariantBase::TReal2:
291 s << x.asReal2().data();
293 size = x.asReal2().size();
294 for (Integer i = 0; i < size; ++i)
295 s << x.asReal2()[i] <<
" ";
297 case VariantBase::TReal3:
298 s << x.asReal3().data();
300 size = x.asReal3().size();
301 for (Integer i = 0; i < size; ++i)
302 s << x.asReal3()[i] <<
" ";
304 case VariantBase::TReal2x2:
305 s << x.asReal2().data();
307 size = x.asReal2().size();
308 for (Integer i = 0; i < size; ++i)
309 s << x.asReal2x2()[i] <<
" ";
311 case VariantBase::TReal3x3:
312 s << x.asReal3x3().data();
314 size = x.asReal3x3().size();
315 for (Integer i = 0; i < size; ++i)
316 s << x.asReal3x3()[i] <<
" ";
318 case VariantBase::TInt64:
319 s << x.asInt64().data();
321 size = x.asInt64().size();
322 for (Integer i = 0; i < size; ++i)
323 s << x.asInt64()[i] <<
" ";
325 case VariantBase::TInt32:
326 s << x.asInteger().data();
328 size = x.asInteger().size();
329 for (Integer i = 0; i < size; ++i)
330 s << x.asInteger()[i] <<
" ";
332 case VariantBase::TBool:
333 s << x.asBool().data();
335 size = x.asBool().size();
336 for (Integer i = 0; i < size; ++i)
337 s << x.asBool()[i] <<
" ";
339 case VariantBase::TString:
340 s << x.asString().data();
342 size = x.asString().size();
343 for (Integer i = 0; i < size; ++i)
344 s << x.asString()[i] <<
" ";
361 return m_int64_value;
363 return m_int32_value;
374 return m_int64_value;
376 return m_int32_value;
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Array< Real2 > Real2Array
Dynamic one-dimensional array of rank 2 vectors.
UniqueArray< Real2x2 > Real2x2UniqueArray
Dynamic 1D array of rank 2 tensors.
Array< Int64 > Int64Array
Dynamic one-dimensional array of 64-bit integers.
UniqueArray< Real3x3 > Real3x3UniqueArray
Dynamic 1D array of rank 3 tensors.
UniqueArray< Int64 > Int64UniqueArray
Dynamic 1D array of 64-bit integers.
Array< String > StringArray
Dynamic one-dimensional array of strings.
Array< bool > BoolArray
Dynamic one-dimensional array of booleans.
Array< Real3x3 > Real3x3Array
Dynamic one-dimensional array of rank 3 tensors.
Int32 Integer
Type representing an integer.
UniqueArray< Real3 > Real3UniqueArray
Dynamic 1D array of rank 3 vectors.
UniqueArray< bool > BoolUniqueArray
Dynamic 1D array of booleans.
ArrayView< Integer > IntegerArrayView
C equivalent of a 1D array of integers.
UniqueArray< Int32 > Int32UniqueArray
Dynamic 1D array of 32-bit integers.
UniqueArray< Real > RealUniqueArray
Dynamic 1D array of reals.
Array< Real2x2 > Real2x2Array
Dynamic one-dimensional array of rank 2 tensors.
Array< Int32 > Int32Array
Dynamic one-dimensional array of 32-bit integers.
Array< Real > RealArray
Dynamic one-dimensional array of reals.
UniqueArray< String > StringUniqueArray
Dynamic 1D array of strings.
UniqueArray< Real2 > Real2UniqueArray
Dynamic 1D array of rank 2 vectors.
ConstArrayView< Integer > IntegerConstArrayView
C equivalent of a 1D array of integers.
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Output operator for a stream.
Array< Real3 > Real3Array
Dynamic one-dimensional array of rank 3 vectors.