Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ArcaneDirectExecution.cc
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/* ArcaneDirectExecution.cc (C) 2000-2011 */
9/* */
10/* Service d'exécution directe. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/ArcanePrecomp.h"
15
16#include "arcane/ISubDomain.h"
17#include "arcane/IDirectExecution.h"
18
19#include "arcane/std/ArcaneDirectExecution_axl.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24ARCANE_BEGIN_NAMESPACE
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
36{
37 public:
38
40 : ArcaneArcaneDirectExecutionObject(sb), m_parallel_mng(0)
41 {
42 sb.subDomain()->setDirectExecution(this);
43 }
44 virtual ~ArcaneDirectExecution(){}
45
46 public:
47
48 virtual void build() {}
49 virtual void initialize(){}
50 virtual void execute()
51 {
52 Integer nb_tool = options()->tool().size();
53 for( Integer i=0; i<nb_tool; ++i )
54 options()->tool()[i]->execute();
55 }
56 virtual bool isActive() const
57 {
58 Integer nb_tool = options()->tool().size();
59 info() << "** NB_TOOL2=" << nb_tool;
60 return options()->tool().size()!=0;
61 }
62 virtual void setParallelMng(IParallelMng* pm)
63 {
64 m_parallel_mng = pm;
65 }
66 public:
67
68 IParallelMng* parallelMng() const { return m_parallel_mng; }
69
70 private:
71 IParallelMng* m_parallel_mng;
72};
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77ARCANE_REGISTER_SERVICE_ARCANEDIRECTEXECUTION(ArcaneDirectExecution,ArcaneDirectExecution);
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82ARCANE_END_NAMESPACE
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
Generation de la classe de base du Service.
Service d'exécution directe.
virtual void execute()
Exécute l'opération du service.
virtual void setParallelMng(IParallelMng *pm)
Positionne le gestionnaire de parallèlisme associé. Cette méthode doit être appelée avant execute()
virtual void build()
Construction de niveau build du service.
virtual bool isActive() const
Vrai si le service est actif.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual void setDirectExecution(IDirectExecution *v)=0
Positionne le service d'exécution directe.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Structure contenant les informations pour créer un service.