Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IModuleFactory.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/* IModuleFactory.h (C) 2000-2019 */
9/* */
10/* Interface de la manufacture des modules. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMODULEFACTORY_H
13#define ARCANE_IMODULEFACTORY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/base/ReferenceCounter.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25class MeshHandle;
26class IModuleFactory2;
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
41class ARCANE_CORE_EXPORT IModuleFactoryInfo
42{
43 protected:
44
47
48 public:
49
50 virtual void addReference() =0;
51 virtual void removeReference() =0;
58 virtual bool isAutoload() const =0;
59
70
82
84 virtual String moduleName() const =0;
85
92 virtual const IServiceInfo* serviceInfo() const =0;
93};
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
104class ARCANE_CORE_EXPORT IModuleFactory2
105{
106 public:
107 virtual ~IModuleFactory2(){}
108 public:
117
127
129 virtual String moduleName() const =0;
130
132 virtual const IServiceInfo* serviceInfo() const =0;
133};
134
135/*---------------------------------------------------------------------------*/
136/*---------------------------------------------------------------------------*/
140class ARCANE_CORE_EXPORT ModuleFactoryReference
141: ReferenceCounter<IModuleFactoryInfo>
142{
143 public:
145 public:
147 : Base(f){}
149 public:
150 IModuleFactoryInfo* factory() const { return get(); }
151};
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156} // End namespace Arcane
157
158/*---------------------------------------------------------------------------*/
159/*---------------------------------------------------------------------------*/
160
161#endif
Fichier de configuration d'Arcane.
Interface d'une fabrique de module (V2).
virtual Ref< IModule > createModuleInstance(ISubDomain *sd, const MeshHandle &mesh_handle)=0
Créé un module.
virtual String moduleName() const =0
Nom du module créé par cette fabrique.
virtual void initializeModuleFactory(ISubDomain *sd)=0
Initialisation statique du module.
virtual const IServiceInfo * serviceInfo() const =0
Informations sur le module pouvant être créé par cette fabrique.
Informations sur la fabrique d'un module.
virtual String moduleName() const =0
Nom du module créé par cette fabrique.
virtual ~IModuleFactoryInfo()
Libère les ressources.
virtual void initializeModuleFactory(ISubDomain *sub_domain)=0
Si la fabrique est un pour un module, l'initialise sur le sous-domaine sub_domain.
virtual Ref< IModule > createModule(ISubDomain *parent, const MeshHandle &mesh_handle)=0
Créé un module.
virtual bool isAutoload() const =0
Indique si le module et doit être chargé automatiquement.
virtual const IServiceInfo * serviceInfo() const =0
Informations sur le module pouvant être créé par cette fabrique.
Interface des informations d'un service ou d'un module.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Handle sur un maillage.
Definition MeshHandle.h:47
Compteur de référence sur une fabrique de module.
Encapsulation d'un pointeur avec compteur de référence.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-