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;
143 EntryPoint(
const EntryPoint&) =
delete;
144 void operator=(
const EntryPoint&) =
delete;
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.
IFunctor * m_caller
Point d'appel.
int m_property
Propriétés du point d'entrée.
Timer * m_elapsed_timer
Timer horloge du point d'entrée.
ISubDomain * m_sub_domain
Gestionnaire de sous-domaine.
Integer m_nb_call
Nombre de fois que le point d'entrée a été exécuté
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.
bool m_is_destroy_caller
Indique si on doit détruire le functor d'appel.
Integer nbCall() const override
Retourne le nombre de fois que le point d'entrée a été exécuté
IModule * m_module
Module associé
String m_where
Endroit de l'appel.
int property() const override
Retourne les propriétés du point d'entrée.
String m_full_name
Nom du point d'entrée.
ISubDomain * subDomain() const override
Retourne le gestionnaire principal.
String m_name
Nom du point d'entrée.
FunctorWithAddress associé à une méthode d'une classe T.
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.