Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IDataFactoryMng.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/* IDataFactoryMng.h (C) 2000-2021 */
9/* */
10/* Interface du gestionnaire de fabrique de données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IDATAFACTORYMNG_H
13#define ARCANE_IDATAFACTORYMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/Parallel.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class IDataFactory;
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \internal
31 * \brief Interface du gestionnaire de fabrique d'une donnée.
32 *
33 * \note Cette interface remplace 'IDataFactory'
34 *
35 * Cette interface permet d'enregistrer des fabriques pour créér des 'IData'
36 * (via registerDataStorageFactory()) et de construire la bonne instance de
37 * IData via l'appel à createSimpleDataRef().
38 */
40{
41 public:
42
43 virtual ~IDataFactoryMng() = default;
44
45 public:
46
47 //! Construit l'instance
48 virtual void build() =0;
49
50 //! Gestionnaire de trace associé
51 virtual ITraceMng* traceMng() const =0;
52
53 //! Enregistre la fabrique \a factory.
54 virtual void registerDataStorageFactory(Ref<IDataStorageFactory> factory) =0;
55
56 /*
57 * \brief Créé une donnée.
58 *
59 * La fabrique utilisée pour créér la donnée est issu d'une instance de DataStorageTypeInfo via
60 * l'utilisation de la méthode DataStorageTypeInfo::fullName().
61 */
62 virtual Ref<IData>
63 createSimpleDataRef(const String& storage_type,const DataStorageBuildInfo& build_info) =0;
64
65 /*!
66 * \brief Créé une opération effectuant une réduction de type \a rt.
67 */
69
70 /*!
71 * \brief Créé des données sérialisées.
72 *
73 * les tableaux \a dimensions et \a values ne sont pas dupliqués et ne doivent
74 * pas être modifiés tant que l'objet sérialisé est utilisé.
75 *
76 * Le type \a data_type doit être un type parmi \a DT_Byte, \a DT_Int16, \a DT_Int32,
77 * \a DT_Int64 ou DT_Real.
78 *
79 * \deprecated Utiliser arcaneCreateSerializedDataRef() à la place
80 */
81 ARCCORE_DEPRECATED_2021("Use global method arcaneCreateSerializedDataRef() instead")
82 virtual Ref<ISerializedData>
83 createSerializedDataRef(eDataType data_type,Int64 memory_size,
84 Integer nb_dim,Int64 nb_element,
85 Int64 nb_base_element,bool is_multi_size,
86 Int64ConstArrayView dimensions) =0;
87
88 /*!
89 * \brief Créé des données sérialisées.
90 *
91 * la donnée sérialisée est vide. Elle ne pourra être utilisée qu'après un
92 * appel à ISerializedData::serialize() en mode ISerializer::ModePut.
93 *
94 * \deprecated Utiliser arcaneCreateEmptySerializedDataRef() à la place.
95 */
96 ARCCORE_DEPRECATED_2021("Use global method arcaneCreateEmptySerializedDataRef() instead")
98
99 //! Récupère l'ancienne fabrique (obsolète)
100 ARCCORE_DEPRECATED_2021("Do not use deprecated interface 'IDataFactory'")
102};
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107} // End namespace Arcane
108
109/*---------------------------------------------------------------------------*/
110/*---------------------------------------------------------------------------*/
111
112#endif
Informations pour construire une instance de 'IData'.
virtual ITraceMng * traceMng() const =0
Gestionnaire de trace associé
virtual IDataFactory * deprecatedOldFactory() const =0
Récupère l'ancienne fabrique (obsolète)
virtual IDataOperation * createDataOperation(Parallel::eReduceType rt)=0
Créé une opération effectuant une réduction de type rt.
virtual Ref< ISerializedData > createEmptySerializedDataRef()=0
Créé des données sérialisées.
virtual void registerDataStorageFactory(Ref< IDataStorageFactory > factory)=0
Enregistre la fabrique factory.
virtual Ref< ISerializedData > createSerializedDataRef(eDataType data_type, Int64 memory_size, Integer nb_dim, Int64 nb_element, Int64 nb_base_element, bool is_multi_size, Int64ConstArrayView dimensions)=0
Créé des données sérialisées.
virtual void build()=0
Construit l'instance.
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Ref< ISerializedData > arcaneCreateEmptySerializedDataRef()
Créé des données sérialisées.
eDataType
Type d'une donnée.
Definition DataTypes.h:39
eReduceType
Types des réductions supportées.