Arcane  v4.1.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
BaseTypes.h
Aller à la documentation de ce fichier.
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* BaseTypes.h (C) 2000-2025 */
9/* */
10/* Définition des types de la composante 'base' de Arccore. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_BASE_BASETYPES_H
13#define ARCCORE_BASE_BASETYPES_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/base/ArccoreGlobal.h"
18
19#include <cstddef>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
35
36template <typename T> class IterT;
37template <typename T> class ConstIterT;
38
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41
43typedef unsigned char Byte;
45typedef signed char SByte;
47typedef unsigned short UChar;
49typedef unsigned short UInt16;
51typedef float Single;
52
54inline constexpr Int32 DynExtent = -1;
55
56template <typename T> class ConstArrayView;
57template <typename T> class ArrayView;
58template <typename T> class ConstArray2View;
59template <typename T> class Array2View;
60template <typename T> class ConstArray3View;
61template <typename T> class Array3View;
62template <typename T> class ConstArray4View;
63template <typename T> class Array4View;
64template <typename T, typename SizeType, SizeType Extent = DynExtent> class SpanImpl;
65template <typename T, Int64 Extent = DynExtent> class Span;
66template <typename T, Int32 Extent = DynExtent> class SmallSpan;
67template <typename T, Int64 Extent = DynExtent> using LargeSpan = Span<T, Extent>;
68template <typename T, typename SizeType, SizeType Extent1 = DynExtent, SizeType Extent2 = DynExtent> class Span2Impl;
69template <typename T, Int64 Extent1 = DynExtent, Int64 Extent2 = DynExtent> class Span2;
70template <typename T, Int32 Extent1 = DynExtent, Int32 Extent2 = DynExtent> class SmallSpan2;
71template <typename Iterator_>
72class ArrayIterator;
73
74class StringImpl;
75class String;
76class StringVector;
77class StringBuilder;
80
81class IRangeFunctor;
82template<int RankValue> class IMDRangeFunctor;
83template<typename InstanceType> class RangeFunctorT;
84template<typename LambdaType> class LambdaRangeFunctorT;
85template<typename LambdaType, typename... Views> class LambdaRangeFunctorTVa;
87class ForLoopRange;
88template<int RankValue, typename IndexType_ = Int32> class SimpleForLoopRanges;
89template<int RankValue, typename IndexType_ = Int32> class ComplexForLoopRanges;
91class ForLoopRunInfo;
93
94class TraceInfo;
95class StackTrace;
96class Exception;
97class StackFrame;
100template <typename T>
101class CheckedPointer;
102template <class T>
104template <typename T>
105class ReferenceCounter;
112class TimeoutException;
113enum class eBasicDataType : unsigned char;
114class IFunctor;
115template <typename ArgType>
117template <typename ReturnType, typename Arg1, typename Arg2>
119template <typename T>
120class FunctorT;
121template <typename ClassType, typename ArgType>
123template <typename ArgType>
126template <typename InstanceType, class T = void>
127struct RefTraits;
128template <typename InstanceType, int ImplTagId = RefTraits<InstanceType>::TagId>
129class Ref;
130
131namespace impl
132{
133 template <typename InstanceType>
135}
136
137/*---------------------------------------------------------------------------*/
138/*---------------------------------------------------------------------------*/
139
140// Ces classes sont internes à Arccore/Arcane
141template <typename T>
142class ArrayRange;
143namespace Impl
144{
145class BasicTranscoder;
146template <class DataType> class CoreArray;
147class ForLoopStatInfoList;
148class ForLoopStatInfoListImpl;
149class ForLoopCumulativeStat;
150}
151
152/*---------------------------------------------------------------------------*/
153/*---------------------------------------------------------------------------*/
154
155// Ces classes ne sont pas accessibles dans 'utils' mais il est possible
156// d'utiliser des pointeurs sur ces instances.
157// La définition est dans 'arcane_accelerator_core'
158namespace Accelerator
159{
160class Runner;
161class RunQueue;
162}
165
166/*---------------------------------------------------------------------------*/
167/*---------------------------------------------------------------------------*/
168
169class DefaultLayout;
170template<int RankValue> class RightLayoutN;
171template<int RankValue> class LeftLayoutN;
172template<int RankValue> class MDDimType;
173class ConstMemoryView;
176// TODO: Rendre obsolète
177using IMemoryRessourceMng = IMemoryResourceMng;
178template <typename IndexType_ = Int32, Int32... RankSize> class ExtentsV;
179template<class DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
180class MDSpan;
181template<typename DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
182using MDSpanBase ARCCORE_DEPRECATED_REASON("Use 'MDSpan' type instead") = MDSpan<DataType,Extents,LayoutPolicy>;
183template<typename ExtentType> class ArrayBounds;
184
185template<class DataType,typename Extents,typename LayoutType = DefaultLayout >
186class NumArray;
187template<typename DataType,typename Extents,typename LayoutPolicy = DefaultLayout >
188using NumArrayBase ARCCORE_DEPRECATED_REASON("Use 'NumArray' type instead") = NumArray<DataType,Extents,LayoutPolicy>;
189
190template<typename Extents,typename LayoutPolicy> class ArrayExtentsWithOffset;
191template<int RankValue, typename IndexType_ = Int32> class MDIndexBase;
192template<int RankValue, typename IndexType_ = Int32> class MDIndex;
193template<int RankValue, typename IndexType_ = Int32> using ArrayIndexBase = MDIndexBase<RankValue,IndexType_>;
194template<int RankValue, typename IndexType_ = Int32> using ArrayIndex = MDIndex<RankValue,IndexType_>;
195template<int RankValue> using ArrayBoundsIndexBase ARCCORE_DEPRECATED_REASON("Use 'MDIndexBase' type instead") = ArrayIndexBase<RankValue>;
196template<int RankValue> using ArrayBoundsIndex ARCCORE_DEPRECATED_REASON("Use 'MDIndex' type instead") = ArrayIndex<RankValue>;
197template<typename Extents> class ArrayExtentsBase;
198template<typename Extents> class ArrayExtents;
199template<int RankValue> class ArrayStridesBase;
200template<int RankValue> class IMDRangeFunctor;
201template<int RankValue> class ArrayExtentsValueDynamic;
202namespace impl
203{
204template<typename IndexType_, Int32... RankSize> class ArrayExtentsValue;
205}
206template <typename T, Int32 NbElement>
207class FixedArray;
208
209class IObservable;
210class IObserver;
211class Observable;
212class Observer;
213
214/*---------------------------------------------------------------------------*/
215/*---------------------------------------------------------------------------*/
216
237
258
259/*---------------------------------------------------------------------------*/
260/*---------------------------------------------------------------------------*/
261
265typedef Span<std::byte> ByteSpan;
267typedef Span<UChar> UCharSpan;
269typedef Span<Int64> Int64Span;
271typedef Span<Int32> Int32Span;
273typedef Span<Int16> Int16Span;
277typedef Span<Real> RealSpan;
279typedef Span<bool> BoolSpan;
282
286typedef Span<const std::byte> ByteConstSpan;
303
304/*---------------------------------------------------------------------------*/
305/*---------------------------------------------------------------------------*/
306
307} // End namespace Arccore
308
309/*---------------------------------------------------------------------------*/
310/*---------------------------------------------------------------------------*/
311
312namespace Arccore
313{
325using Arcane::IterT;
328using Arcane::LargeSpan;
329using Arcane::Span;
330using Arcane::Span2;
332using Arcane::SpanImpl;
336
347using Arcane::Ref;
354
355using Arcane::IFunctor;
358using Arcane::FunctorT;
361
362using Arcane::Byte;
363using Arcane::SByte;
364using Arcane::Single;
365using Arcane::UChar;
366using Arcane::UInt16;
367
378
389
391using Arcane::ByteSpan;
397using Arcane::RealSpan;
398using Arcane::BoolSpan;
400
402using Arcane::ByteConstSpan;
411
413
414// Ces classes sont internes à Arccore/Arcane
416}
417
418/*---------------------------------------------------------------------------*/
419/*---------------------------------------------------------------------------*/
420
421#endif
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Definition core/Runner.h:67
Exception lorsqu'un argument est invalide.
Vue modifiable pour un tableau 2D.
Classe pour conserver le nombre d'éléments dans chaque dimension.
Itérateur sur les classes tableau de Arccore.
Intervalle sur les classes tableau de Arccore.
Classe pour conserver le pas dans chaque dimension.
Vue modifiable d'un tableau d'un type T.
Encapsulation d'un pointeur.
Vue constante d'un tableau de type T.
interval d'itérateurs constant
Vue constante sur une zone mémoire contigue contenant des éléments de taille fixe.
Le layout par défaut est toujours RightLayout.
Classe de base d'une exception.
Exception lorsqu'une erreur fatale est survenue.
Conserve une liste de taille fixe maximale de StackFrame.
Classe pour gérer le profiling d'une seule exécution d'une boucle.
Intervalle d'itération pour une boucle.
Informations d'exécution d'une boucle.
Informations de trace pour une boucle 'for'.
Functor associé à une méthode d'une classe T.
Functor associé à une méthode d'une classe T.
Interface d'un fonctor avec 2 arguments et une valeur de retour.
Interface d'un fonctor avec argument mais sans valeur de retour.
Interface d'un fonctor sur un interval d'itération multi-dimensionnel de dimension RankValue.
Gestion des ressources mémoire pour les CPU et accélérateurs.
Interface d'un fonctor sur un interval d'itération.
Interface d'un service de trace des appels de fonctions.
Exception lorsqu'une valeur n'est pas dans un intervalle donné.
interval d'itérateursCette classe gère un couple d'itérateurs autorisant la modification des éléments...
Fonctor sur un interval d'itération instancié via une lambda fonction.
Fonctor sur un interval d'itération instancié via une lambda fonction.
Classe de base de la gestion des indices d'un tableau N-dimension.
Classe de base des vues multi-dimensionnelles.
Vue modifiable sur une zone mémoire contigue contenant des éléments de taille fixe.
Exception lorsqu'une fonction n'est pas implémentée.
Exception lorsqu'une opération n'est pas supportée.
Tableaux multi-dimensionnels pour les types numériques accessibles sur accélérateurs.
Classe de base d'un observable.
Options d'exécution d'une boucle parallèle en multi-thread.
Fonctor sur un interval d'itération.
Référence à une instance.
Accesseur des méthodes de gestion de compteurs de référence.
Implémentation thread-safe d'un compteur de référence.
Encapsulation d'un pointeur avec compteur de référence.
Vue pour un tableau 2D dont la taille est un 'Int32'.
Definition Span2.h:233
Vue d'un tableau d'éléments de type T.
Definition Span.h:774
Vue pour un tableau 2D.
Definition Span2.h:64
Vue pour un tableau 2D dont la taille est un 'Int64'.
Definition Span2.h:301
Vue d'un tableau d'éléments de type T.
Definition Span.h:176
Vue d'un tableau d'éléments de type T.
Definition Span.h:612
Conserve les adresses correspondantes à une pile d'appel. Cette classe est interne et ne dois pas êtr...
Informations sur la pile d'appel des fonctions.
Functor générique utilisant la classe std::function.
Constructeur de chaîne de caractère unicode.
Classe utilisée pour formatter une chaîne de caractères.
Liste de 'String'.
Chaîne de caractères unicode.
Wrapper autour d'une classe gérant son propre compteur de référence.
Intervalle sur les classes tableau de Arccore.
Espace de nom pour l'utilisation des accélérateurs.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Span< const Real > RealConstSpan
Vue en lecture seule d'un tableau à une dimension de réels.
Definition UtilsTypes.h:576
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:467
Span< Int64 > Int64Span
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:536
Span< const UChar > UCharConstSpan
Vue en lecture seule d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:566
ArrayView< Byte > ByteArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:463
ArrayView< bool > BoolArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:477
Span< const Int64 > Int64ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:568
ArrayView< UChar > UCharArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:465
constexpr Int32 DynExtent
Constante pour indiquer que la dimension d'un tableau est dynamique.
Definition BaseTypes.h:54
ConstArrayView< Pointer > PointerConstArrayView
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:490
ArrayView< Int16 > Int16ArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:471
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:498
ConstArrayView< bool > BoolConstArrayView
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:506
eBasicDataType
Type d'une donnée de base.
ArrayView< Integer > IntegerArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:473
Span< UChar > UCharSpan
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:534
Span< const bool > BoolConstSpan
Vue en lecture seule d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:578
ConstArrayView< Int16 > Int16ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:500
Span< const Pointer > PointerConstSpan
Vue en lecture seule d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:562
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:496
Span< Integer > IntegerSpan
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:542
float Single
Type d'un réel simple précision.
Definition BaseTypes.h:51
Span< bool > BoolSpan
Equivalent C d'un tableau à une dimension de booléens.
Definition UtilsTypes.h:546
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:469
Span< const Integer > IntegerConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:574
Span< Pointer > PointerSpan
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:530
ConstArrayView< UChar > UCharConstArrayView
Equivalent C d'un tableau à une dimension de caractères unicode.
Definition UtilsTypes.h:494
ConstArrayView< Byte > ByteConstArrayView
Equivalent C d'un tableau à une dimension de caractères.
Definition UtilsTypes.h:492
unsigned char Byte
Type d'un octet.
Definition BaseTypes.h:43
unsigned short UInt16
Type d'un Int16 non signé
Definition BaseTypes.h:49
Span< Int16 > Int16Span
Equivalent C d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:540
Span< Real > RealSpan
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:544
Span< Int32 > Int32Span
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:538
Span< const Int16 > Int16ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 16 bits.
Definition UtilsTypes.h:572
Span< const Int32 > Int32ConstSpan
Vue en lecture seule d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:570
unsigned short UChar
Type d'un caractère unicode.
Definition BaseTypes.h:47
ConstArrayView< Integer > IntegerConstArrayView
Equivalent C d'un tableau à une dimension d'entiers.
Definition UtilsTypes.h:502
signed char SByte
Type d'un octet.
Definition BaseTypes.h:45
ArrayView< Real > RealArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:475
std::int32_t Int32
Type entier signé sur 32 bits.
ArrayView< Pointer > PointerArrayView
Equivalent C d'un tableau à une dimension de pointeurs.
Definition UtilsTypes.h:461
ConstArrayView< Real > RealConstArrayView
Equivalent C d'un tableau à une dimension de réels.
Definition UtilsTypes.h:504
Espace de nom de Arccore.
Caractéristiques pour gérer les compteurs de référence.
Structure servant à tagger les interfaces/classes qui utilisent un compteur de référence interne.