Arcane  v3.16.4.0
Documentation utilisateur
Tout Classes Espaces de nommage Fichiers Fonctions Variables Définitions de type Énumérations Valeurs énumérées Amis Macros Groupes Pages Concepts
VariableComputeFunction.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* VariableComputeFunction.h (C) 2000-2025 */
9/* */
10/* Classe functor de re-calcul d'une variable. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_VARIABLECOMPUTEFUNCTION_H
13#define ARCANE_CORE_VARIABLECOMPUTEFUNCTION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Functor.h"
18#include "arcane/utils/TraceInfo.h"
19
20#include "arcane/core/IVariableComputeFunction.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \brief Interface de la classe functor de re-calcul d'une variable.
32 */
33class VariableComputeFunction
35{
36 public:
37
38 template <typename ClassType>
39 VariableComputeFunction(ClassType* instance, void (ClassType::*func)())
40 : m_functor(new FunctorT<ClassType>(instance, func))
41 {
42 }
43 template <typename ClassType>
44 VariableComputeFunction(ClassType* instance, void (ClassType::*func)(), const TraceInfo& tinfo)
45 : m_functor(new FunctorT<ClassType>(instance, func))
46 , m_trace_info(tinfo)
47 {
48 }
49
50 //! Libère les ressources
52 {
53 delete m_functor;
54 }
55
56 public:
57
58 //! Exécute la fonction de calcul
59 void execute() override { m_functor->executeFunctor(); }
60
61 const TraceInfo& traceInfo() const override { return m_trace_info; }
62
63 private:
64
65 IFunctor* m_functor = nullptr;
66 TraceInfo m_trace_info;
67};
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
71
72} // namespace Arcane
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77#endif
78
Interface de la classe functor de re-calcul d'une variable.
~VariableComputeFunction() override
Libère les ressources.
const TraceInfo & traceInfo() const override
Informations de trace de la définition de la fonction de calcul.
void execute() override
Exécute la fonction de calcul.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-