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";
48EntryPoint(
const EntryPointBuildInfo& bi)
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())
61 m_sub_domain->entryPointMng()->addEntryPoint(
this);
65 sb.append(m_module->name());
70 m_full_name = sb.toString();
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
106 if (platform::hasDotNETRuntime())
109 char address[48 + 1];
110 snprintf(address,
sizeof(address) - 1,
"%p", next_entry_point_address);
116#pragma GCC reset_options
126 if (m_module->disabled() && m_where == WComputeLoop)
131 if (!platform::hasDotNETRuntime()) {
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();
194 return totalElapsedTime();
203 return lastElapsedTime();
Informations pour construire un point d'entrée.
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 -*-