14#include "arcane/core/CodeService.h"
16#include "arcane/utils/List.h"
17#include "arcane/utils/ScopedPtr.h"
18#include "arcane/utils/Exception.h"
19#include "arcane/utils/String.h"
20#include "arcane/utils/ITraceMng.h"
21#include "arcane/utils/IProfilingService.h"
22#include "arcane/utils/PlatformUtils.h"
23#include "arcane/utils/Array.h"
24#include "arcane/utils/ValueConvert.h"
25#include "arcane/utils/JSONWriter.h"
27#include "arcane/core/IApplication.h"
28#include "arcane/core/ISession.h"
29#include "arcane/core/IServiceLoader.h"
30#include "arcane/core/IMainFactory.h"
31#include "arcane/core/ISubDomain.h"
32#include "arcane/core/ServiceBuildInfo.h"
33#include "arcane/core/ICheckpointMng.h"
34#include "arcane/core/ICaseMng.h"
35#include "arcane/core/ITimeLoopMng.h"
36#include "arcane/core/IVariableMng.h"
37#include "arcane/core/CheckpointInfo.h"
38#include "arcane/core/internal/IVariableMngInternal.h"
65, m_application(application)
76CodeService(
const ServiceBuildInfo& sbi)
77: m_p(new CodeServicePrivate(sbi.application(),sbi.serviceInfo()))
105 return m_p->m_extensions;
119 _preInitializeSubDomain(sub_domain);
126 trace->
error() << ex;
130 trace->
error() <<
"Unknown exception thrown";
144 bool is_profile_init =
false;
146 is_profile_init = (v.value()!=0);
161 sub_domain->setIsContinue();
162 sub_domain->allocateMeshes();
166 ci.setIsRestart(
true);
174 sub_domain->readOrReloadMeshes();
179 sub_domain->initializeMeshVariablesFromCaseFile();
184 sub_domain->doInitMeshPartition();
186 sub_domain->setIsInitialized();
189 if (is_profile_init && ps){
192 JSONWriter json_writer(JSONWriter::FormatFlags::None);
193 json_writer.beginObject();
195 json_writer.endObject();
196 String file_name =
String(
"profiling_init-") + platform::getProcessId() +
String(
".json");
197 std::ofstream ofile(file_name.
localstr());
198 ofile << json_writer.getBuffer();
208 return m_p->m_service_info;
217 return m_p->m_application;
224_addExtension(
const String& extension)
226 m_p->m_extensions.add(extension);
232IApplication* CodeService::
235 return m_p->m_application;
Informations sur une protection.
virtual StringCollection validExtensions() const
Retourne la liste des extensions de fichier traitées par l'instance. L'extension ne comprend pas le '...
virtual bool allowExecution() const
Retourne si le code accepte l'exécution.
virtual void initCase(ISubDomain *sub_domain, bool is_continue)
Initialise la session session.
virtual IServiceInfo * serviceInfo() const
Informations du service.
virtual ISubDomain * createAndLoadCase(ISession *session, const SubDomainBuildInfo &sdbi)
Créé et charge le cas avec les infos sdbi pour la session session.
virtual IBase * serviceParent() const
Parent de ce service.
Interface de l'application.
Interface de la classe de base des objets principaux arcane.
virtual ITraceMng * traceMng() const =0
Gestionnaire de traces.
Interface du gestionnaire de cas.
virtual void printOptions()=0
Affiche les valeurs des options.
virtual void readOptions(bool is_phase1)=0
Lit les options du jeu de donnée correspondant aux modules utilisés.
Interface du gestionnaire des informations des protections.
virtual ARCANE_DEPRECATED_122 void readCheckpoint()=0
Lit une protection.
virtual CheckpointInfo readDefaultCheckpointInfo()=0
Lit les informations de protection par défaut.
virtual void dumpJSON(JSONWriter &writer)=0
Ecrit les infos de profiling dans l'écrivain writer.
Interface des informations d'un service ou d'un module.
Interface d'une session d'exécution d'un cas.
virtual ISubDomain * createSubDomain(const SubDomainBuildInfo &sdbi)=0
Créé un sous-domaine avec les paramètres contenus dans sdbi.
Interface du gestionnaire d'un sous-domaine.
virtual ICheckpointMng * checkpointMng() const =0
Gestionnaire de protections.
virtual ITimeLoopMng * timeLoopMng()=0
Retourne le gestionnaire de la boucle en temps.
virtual IVariableMng * variableMng()=0
Retourne le gestionnaire de variables.
virtual void readCaseMeshes()=0
Lit les informations de maillage du jeu de données.
virtual ICaseMng * caseMng()=0
Retourne le gestionnaire du jeu de données.
Interface du gestionnaire de la boucle en temps.
virtual void execBuildEntryPoints()=0
Exécute les points d'entrée de construction.
virtual void execInitEntryPoints(bool is_continue)=0
Exécute les points d'entrée d'initialisation.
Interface du gestionnaire de variables.
virtual IVariableMngInternal * _internalApi()=0
API interne à Arcane.
Classe permettant de démarrer et arrêter automatiquement un service.
void setPrintAtEnd(bool v)
Indique si on imprime les résultats à la fin du profiling.
Paramètres nécessaires à la construction d'un sous-domaine.
Classe de base d'une exception.
Interface du gestionnaire de traces.
virtual TraceMessage error()=0
Flot pour un message d'erreur.
Chaîne de caractères unicode.
const char * localstr() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-