Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IItemEnumeratorTracer.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/* IItemEnumeratorTracer.h (C) 2000-2022 */
9/* */
10/* Interface de trace des appels aux énumérateur sur les entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IITEMENUMERATORTRACER_H
13#define ARCANE_IITEMENUMERATORTRACER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ItemTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \internal
29 * \brief Interface d'un traceur d'énumérateur sur les entités.
30 *
31 * Cette interface fournit des méthodes qui sont appelées automatiquement
32 * lors de l'utilisation des macros permettant d'itérer sur les entités
33 * comme ENUMERATE_CELL ou ENUMERATE_SIMD_CELL. Pour des raisons de performance,
34 * ces macros ne sont tracées que si le fichier source qui les utilise est
35 * compilé avec la macro ARCANE_TRACE_ENUMERATOR.
36 *
37 * La méthode singleton() permet de récupérer l'implémentation actuelle.
38 *
39 */
40class ARCANE_CORE_EXPORT IItemEnumeratorTracer
41{
42 public:
43
44 static IItemEnumeratorTracer* singleton();
45
46 public:
47
48 virtual ~IItemEnumeratorTracer() = default;
49
50 public:
51
52 //! Méthode appelée lors avant d'exécuter un ENUMERATE_
53 virtual void enterEnumerator(const ItemEnumerator& e, EnumeratorTraceInfo& eti) = 0;
54
55 //! Méthode appelée lors après l'exécution d'un ENUMERATE_
56 virtual void exitEnumerator(const ItemEnumerator& e, EnumeratorTraceInfo& eti) = 0;
57
58 //! Méthode appelée lors avant d'exécuter un ENUMERATE_SIMD_
60
61 //! Méthode appelée lors après l'exécution d'un ENUMERATE_SIMD_
63
64 public:
65
66 virtual void dumpStats() = 0;
67 virtual IPerformanceCounterService* perfCounter() = 0;
68 virtual Ref<IPerformanceCounterService> perfCounterRef() = 0;
69
70 public:
71};
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76} // namespace Arcane
77
78/*---------------------------------------------------------------------------*/
79/*---------------------------------------------------------------------------*/
80
81#endif
Informations pour les traces d'un énumérator.
virtual void enterEnumerator(const SimdItemEnumeratorBase &e, EnumeratorTraceInfo &eti)=0
Méthode appelée lors avant d'exécuter un ENUMERATE_SIMD_.
virtual void enterEnumerator(const ItemEnumerator &e, EnumeratorTraceInfo &eti)=0
Méthode appelée lors avant d'exécuter un ENUMERATE_.
virtual void exitEnumerator(const SimdItemEnumeratorBase &e, EnumeratorTraceInfo &eti)=0
Méthode appelée lors après l'exécution d'un ENUMERATE_SIMD_.
virtual void exitEnumerator(const ItemEnumerator &e, EnumeratorTraceInfo &eti)=0
Méthode appelée lors après l'exécution d'un ENUMERATE_.
Interface d'un service d'accès aux compteurs de performance.
Enumérateur sur une liste d'entités.
Classe de base des énumérateurs sur les entités vectortielles (SimdItem).
Definition SimdItem.h:376
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-