Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IRangeFunctor.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IRangeFunctor.h (C) 2000-2021 */
9/* */
10/* Interface d'un fonctor sur un interval d'itération. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_UTILS_IRANGEFUNCTOR_H
13#define ARCANE_UTILS_IRANGEFUNCTOR_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Interface d'un fonctor sur un interval d'itération.
29 * \ingroup Core
30 */
31class ARCANE_UTILS_EXPORT IRangeFunctor
32{
33 public:
34
35 //! Libère les ressources
36 virtual ~IRangeFunctor(){}
37
38 public:
39
40 /*!
41 * \brief Exécute la méthode associée.
42 * \param begin indice du début de l'itération.
43 * \param size nombre d'éléments à itérer.
44 */
45 virtual void executeFunctor(Integer begin,Integer size) =0;
46};
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50/*!
51 * \brief Interface d'un fonctor sur un interval d'itération multi-dimensionnel
52 * de dimension \a RankValue
53 * \ingroup Core
54 */
55template<int RankValue>
57{
58 public:
59
60 //! Libère les ressources
61 virtual ~IMDRangeFunctor() = default;
62
63 public:
64
65 /*!
66 * \brief Exécute la méthode associée.
67 */
68 virtual void executeFunctor(const ComplexForLoopRanges<RankValue>& loop_range) =0;
69};
70
71/*---------------------------------------------------------------------------*/
72/*---------------------------------------------------------------------------*/
73
74} // End namespace Arcane
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79#endif
Déclarations des types utilisés dans Arcane.
Interface d'un fonctor sur un interval d'itération multi-dimensionnel de dimension RankValue.
virtual void executeFunctor(const ComplexForLoopRanges< RankValue > &loop_range)=0
Exécute la méthode associée.
virtual ~IMDRangeFunctor()=default
Libère les ressources.
Interface d'un fonctor sur un interval d'itération.
virtual void executeFunctor(Integer begin, Integer size)=0
Exécute la méthode associée.
virtual ~IRangeFunctor()
Libère les ressources.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-