12#ifndef ARCANE_CORE_ENTRYPOINT_H
13#define ARCANE_CORE_ENTRYPOINT_H
17#include "arcane/utils/String.h"
18#include "arcane/utils/FunctorWithAddress.h"
19#include "arcane/core/IEntryPoint.h"
59 bool is_destroy_caller)
64 , m_property(property)
65 , m_is_destroy_caller(is_destroy_caller)
71 IModule* module()
const {
return m_module; }
72 const String& name()
const {
return m_name; }
73 IFunctor* caller()
const {
return m_caller; }
74 const String& where()
const {
return m_where; }
75 int property()
const {
return m_property; }
76 bool isDestroyCaller()
const {
return m_is_destroy_caller; }
85 bool m_is_destroy_caller;
95class ARCANE_CORE_EXPORT EntryPoint
101 ~EntryPoint()
override;
120 void executeEntryPoint()
override;
121 Real totalCPUTime()
const override;
122 Real lastCPUTime()
const override;
123 Real totalElapsedTime()
const override;
124 Real lastElapsedTime()
const override;
129 int property()
const override {
return m_property; }
135 Timer* m_elapsed_timer =
nullptr;
142 bool m_is_destroy_caller =
false;
155 void _getAddressForHyoda(
void* =
nullptr);
173template <
typename ModuleType>
inline void
174addEntryPoint(ModuleType* module,
const char* name,
void (ModuleType::*func)(),
197template <
typename ModuleType>
inline void
Information to build an entry point.
EntryPointBuildInfo(IModule *module, const String &name, IFunctor *caller, const String &where, int property, bool is_destroy_caller)
Entry point build information.
String where() const override
Returns where the entry point is called.
IModule * module() const override
Returns the module associated with the entry point.
static EntryPoint * create(const EntryPointBuildInfo &bi)
Constructs and returns an entry point.
String name() const override
Returns the name of the entry point.
String fullName() const override
Full name (with the module) of the entry point. This name is unique.
Integer nbCall() const override
Returns the number of times the entry point has been executed.
int property() const override
Returns the properties of the entry point.
ISubDomain * subDomain() const override
Returns the main manager.
Interface of a module entry point.
static const char *const WComputeLoop
called during the calculation loop
Interface of the subdomain manager.
Unicode character string.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
double Real
Type representing a real number.
void addEntryPoint(ModuleType *module, const char *name, void(ModuleType::*func)(), const String &where=IEntryPoint::WComputeLoop, int property=IEntryPoint::PNone)
Template routine allowing an entry point to be referenced in a module.