Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IModuleMaster.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/* IModuleMaster.h (C) 2000-2012 */
9/* */
10/* Interface du module Maître. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMODULEMASTER_H
13#define ARCANE_IMODULEMASTER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27class CaseOptionsMain;
28class ModuleBuildInfo;
29class IModuleMaster;
30class IModule;
31class CommonVariables;
32class ITimeLoopService;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36/*!
37 * \internal
38 * \brief Interface du module principal.
39 *
40 * Le module principal est le module encadrant les différentes actions des points d'entrée.
41 * Voir l'implémentation \a ModuleMaster pour plus de détails.
42 */
43class ARCANE_CORE_EXPORT IModuleMaster
44{
45 public:
46
47 //! Destructeur.
48 /*! Libère les ressources */
49 virtual ~IModuleMaster(){}
50
51 public:
52
53 //! Création d'une instance de IModuleMaster
54 /*! Actuellement implémenté dans \a ModuleMaster */
56
57 public:
58
59 //! Retourne les options de ce module
61
62 //! Conversion en module standard
63 /*! Le succès de la conversion est liée à l'implémentation de \a IModuleMaster en tant que \a IModule */
64 virtual IModule* toModule() =0;
65
66 //! Accès aux variables 'communes' partagés entre tout service et module
68
69 //! Ajoute le service de boucle en temps
70 virtual void addTimeLoopService(ITimeLoopService* tls) =0;
71
72 /*!
73 * \brief Sort les courbes classiques.
74 *
75 * Cet appel ajoute dans le ITimeHistoryMng les courbes classiques
76 * (telles que CPUTime, ElapsedTime, TotalMemory, ...) pour l'itération
77 * courante. Par défaut, si cette fonction n'est pas appelée, les
78 * sorties se font à la fin de l'itération.
79 */
80 virtual void dumpStandardCurves() =0;
81};
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86ARCANE_END_NAMESPACE
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91#endif
92
Variables communes d'un cas.
virtual void dumpStandardCurves()=0
Sort les courbes classiques.
static IModuleMaster * createDefault(const ModuleBuildInfo &)
Création d'une instance de IModuleMaster.
virtual IModule * toModule()=0
Conversion en module standard.
virtual void addTimeLoopService(ITimeLoopService *tls)=0
Ajoute le service de boucle en temps.
virtual CommonVariables * commonVariables()=0
Accès aux variables 'communes' partagés entre tout service et module.
virtual CaseOptionsMain * caseoptions()=0
Retourne les options de ce module.
virtual ~IModuleMaster()
Destructeur.
Interface d'un module.
Definition IModule.h:39
Interface d'un service opérant lors de la boucle en temps.
Informations pour construire un module.