14#include "arcane/EntryPoint.h"
16#include "arcane/utils/ITraceMng.h"
17#include "arcane/utils/PlatformUtils.h"
18#include "arcane/utils/StringBuilder.h"
20#include "arcane/IModule.h"
21#include "arcane/IEntryPointMng.h"
22#include "arcane/ISubDomain.h"
23#include "arcane/Timer.h"
42const char*
const IEntryPoint::WExit =
"Exit";
49: m_sub_domain(bi.module()->subDomain())
50, m_caller(bi.caller())
51, m_elapsed_timer(new
Timer(m_sub_domain, bi.name(),
Timer::TimerReal))
53, m_module(bi.module())
55, m_property(bi.property())
57, m_is_destroy_caller(bi.isDestroyCaller())
65 sb.append(m_module->name());
70 m_full_name = sb.toString();
77EntryPoint* EntryPoint::
80 EntryPoint* x =
new EntryPoint(bi);
90 delete m_elapsed_timer;
92 if (m_is_destroy_caller)
100#pragma GCC optimize "O0"
103_getAddressForHyoda(
void* next_entry_point_address)
105#ifndef ARCANE_OS_WIN32
109 char address[48 + 1];
110 snprintf(address,
sizeof(address) - 1,
"%p", next_entry_point_address);
116#pragma GCC reset_options
135 _getAddressForHyoda();
139 Trace::Setter mclass(m_sub_domain->traceMng(), m_module->name());
146 m_caller->executeFunctor();
158 return m_elapsed_timer->lastActivationTime();
167 return m_elapsed_timer->totalTime();
174lastElapsedTime()
const
176 return m_elapsed_timer->lastActivationTime();
183totalElapsedTime()
const
185 return m_elapsed_timer->totalTime();
Informations pour construire un point d'entrée.
Real lastElapsedTime() const override
Temps d'exécution (temps horloge) de la dernière itération (en milli-s).
Real totalElapsedTime() const override
Temps d'exécution passé (temps horloge) dans ce point d'entrée en (en milli-s)
static const char *const WComputeLoop
appelé pendant la boucle de calcul
static const char *const WBuild
appelé pour la construction du module
static const char *const WStartInit
appelé pendant l'initialisation d'un nouveau cas
static const char *const WRestore
appelé pour restaurer les variables lors d'un retour arrière
static const char *const WOnMeshRefinement
appelé après un raffinement de maillage
static const char *const WOnMeshChanged
appelé après un changement de maillage
static const char *const WContinueInit
appelé pendant l'initialisation d'une reprise
static const char *const WInit
appelé pendant l'initialisation
Postionne le nom de l'action en cours d'exécution.
Positionne la phase de l'action en cours d'exécution.
Sentinelle pour le timer. La sentinelle associée à un timer permet de déclancher celui-ci au moment d...
Positionne une classe de message.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
double Real
Type représentant un réel.
void addEntryPoint(ModuleType *module, const char *name, void(ModuleType::*func)(), const String &where=IEntryPoint::WComputeLoop, int property=IEntryPoint::PNone)
Routine template permettant de référencer un point d'entrée dans un module.