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;
150 EntryPoint(
const EntryPoint&) =
delete;
151 void operator=(
const EntryPoint&) =
delete;
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.
IFunctor * m_caller
Call point.
int m_property
Entry point properties.
Timer * m_elapsed_timer
Entry point clock timer.
ISubDomain * m_sub_domain
Sub-domain manager.
Integer m_nb_call
Number of times the entry point has been executed.
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.
bool m_is_destroy_caller
Indicates whether the calling functor should be destroyed.
Integer nbCall() const override
Returns the number of times the entry point has been executed.
IModule * m_module
Associated module.
String m_where
Call location.
int property() const override
Returns the properties of the entry point.
String m_full_name
Entry point name.
ISubDomain * subDomain() const override
Returns the main manager.
String m_name
Entry point name.
FunctorWithAddress associated with a method of a class T.
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.