12#ifndef ARCANE_ENTRYPOINT_H
13#define ARCANE_ENTRYPOINT_H
17#include "arcane/utils/String.h"
18#include "arcane/utils/FunctorWithAddress.h"
19#include "arcane/IEntryPoint.h"
57 bool is_destroy_caller)
58 : m_module(module), m_name(name), m_caller(caller), m_where(where),
59 m_property(property), m_is_destroy_caller(is_destroy_caller)
65 IModule* module()
const {
return m_module; }
66 const String& name()
const {
return m_name; }
67 IFunctor* caller()
const {
return m_caller; }
68 const String& where ()
const {
return m_where; }
69 int property()
const {
return m_property; }
70 bool isDestroyCaller()
const {
return m_is_destroy_caller; }
79 bool m_is_destroy_caller;
88class ARCANE_CORE_EXPORT EntryPoint
94 ~EntryPoint()
override;
113 void executeEntryPoint()
override;
114 Real totalCPUTime()
const override;
115 Real lastCPUTime()
const override;
116 Real totalElapsedTime()
const override;
117 Real lastElapsedTime()
const override;
122 int property()
const override {
return m_property; }
128 Timer* m_elapsed_timer =
nullptr;
135 bool m_is_destroy_caller =
false;
148 void _getAddressForHyoda(
void* =
nullptr);
165template<
typename ModuleType>
inline void
166addEntryPoint(ModuleType* module,
const char* name,
void (ModuleType::*func)(),
188template<
typename ModuleType>
inline void
Informations pour construire un point d'entrée.
EntryPointBuildInfo(IModule *module, const String &name, IFunctor *caller, const String &where, int property, bool is_destroy_caller)
Informations de construction d'un point d'entrée.
String where() const override
Retourne l'endroit ou est appelé le point d'entrée.
IModule * module() const override
Retourne le module associé au point d'entrée.
static EntryPoint * create(const EntryPointBuildInfo &bi)
Construit et retourne un point d'entrée.
String name() const override
Retourne le nom du point d'entrée.
String fullName() const override
Nom complet (avec le module) du point d'entrée. Ce nom est unique.
Integer nbCall() const override
Retourne le nombre de fois que le point d'entrée a été exécuté
int property() const override
Retourne les propriétés du point d'entrée.
ISubDomain * subDomain() const override
Retourne le gestionnaire principal.
Interface d'un point d'entrée d'un module.
static const char *const WComputeLoop
appelé pendant la boucle de calcul
@ PNone
Pas de propriétés.
Interface du gestionnaire d'un sous-domaine.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
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.