Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
driverlib/ArcaneCodeService.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/* ArcaneCodeService.cc (C) 2000-2012 */
9/* */
10/* Service de code générique Arcane. */
11/* Ce service est une recopie locale de celui de tests pour le driver */
12/*---------------------------------------------------------------------------*/
13/*---------------------------------------------------------------------------*/
14
15#include "arcane/CodeService.h"
16#include "arcane/utils/ArcanePrecomp.h"
17
18#include "arcane/ISession.h"
19#include "arcane/ISubDomain.h"
20#include "arcane/IParallelMng.h"
21#include "arcane/Service.h"
22
23#include "arcane/impl/TimeLoopReader.h"
24
25#include "arcane/std/ArcaneSession.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30ARCANE_BEGIN_NAMESPACE
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
36: public CodeService
37{
38 public:
39
41 virtual ~ArcaneCodeService();
42
43 public:
44
45 virtual bool parseArgs(StringList& args);
46 virtual ISession* createSession();
47 virtual void initCase(ISubDomain* sub_domain,bool is_continue);
48
49 public:
50
51 void build() {}
52
53 protected:
54
55 virtual void _preInitializeSubDomain(ISubDomain* sd);
56
57 private:
58};
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
63ArcaneCodeService::
64ArcaneCodeService(const ServiceBuildInfo& sbi)
66{
67 _addExtension(String("arc"));
68}
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
73ArcaneCodeService::
74~ArcaneCodeService()
75{
76}
77
78/*---------------------------------------------------------------------------*/
79/*---------------------------------------------------------------------------*/
80
81void ArcaneCodeService::
82_preInitializeSubDomain(ISubDomain*)
83{
84}
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
88
91{
92 {
93 TimeLoopReader stl(_application());
94 stl.readTimeLoops();
95 stl.registerTimeLoops(sub_domain);
96 stl.setUsedTimeLoop(sub_domain);
97 }
99 if (sub_domain->parallelMng()->isMasterIO())
100 sub_domain->session()->writeExecInfoFile();
101}
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
108{
109 ArcaneSession* session = new ArcaneSession(_application());
110 session->build();
111 _application()->addSession(session);
112 return session;
113}
114
115/*---------------------------------------------------------------------------*/
116/*---------------------------------------------------------------------------*/
117
120{
121 ARCANE_UNUSED(args);
122 return false;
123}
124
125/*---------------------------------------------------------------------------*/
126/*---------------------------------------------------------------------------*/
127
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133ARCANE_END_NAMESPACE
134
135/*---------------------------------------------------------------------------*/
136/*---------------------------------------------------------------------------*/
#define ARCANE_REGISTER_APPLICATION_FACTORY(aclass, ainterface, aname)
Enregistre un service de fabrique pour la classe aclass.
virtual bool parseArgs(StringList &args)
Analyse les arguments de la ligne de commandes.
virtual ISession * createSession()
Crée une session.
virtual void initCase(ISubDomain *sub_domain, bool is_continue)
Initialise la session session.
virtual void build()
Construit les membres de l'instance. L'instance n'est pas utilisable tant que cette méthode n'a pas é...
Classe abstraite d'un service de code.
Definition CodeService.h:44
virtual void initCase(ISubDomain *sub_domain, bool is_continue)
Initialise la session session.
virtual void addSession(ISession *session)=0
Ajoute la session session.
Interface d'un chargeur de cas.
Interface d'une session d'exécution d'un cas.
Definition ISession.h:44
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
Structure contenant les informations pour créer un service.
Functor de chargement d'une boucle en temps.
Chaîne de caractères unicode.