12#ifndef ARCANE_ENUMERATORTRACEWRAPPER_H
13#define ARCANE_ENUMERATORTRACEWRAPPER_H
17#include "arcane/utils/ArrayView.h"
18#include "arcane/utils/TraceInfo.h"
25#ifndef ARCANE_TRACE_ENUMERATOR
59 m_has_trace_info =
true;
62 m_has_trace_info =
false;
68 return (m_has_trace_info) ? &m_trace_info :
nullptr;
73 std::array<Int64, 8> m_counters = {};
74 Int64 m_begin_time = 0;
75 TraceInfo m_trace_info;
76 bool m_has_trace_info =
false;
91template <
typename TrueEnumerator,
typename TracerInterface>
93:
public TrueEnumerator
98 : TrueEnumerator(
tenum)
100#ifndef ARCCORE_DEVICE_CODE
101 m_tracer = TracerInterface::singleton();
103 m_tracer->enterEnumerator(*
this, m_infos);
107 : TrueEnumerator(
tenum)
109#ifndef ARCCORE_DEVICE_CODE
110 m_tracer = TracerInterface::singleton();
113 m_tracer->enterEnumerator(*
this, m_infos);
119#ifndef ARCCORE_DEVICE_CODE
121 m_tracer->exitEnumerator(*
this, m_infos);
134#if defined(ARCANE_TRACE_ENUMERATOR)
135#define A_TRACE_ITEM_ENUMERATOR(_EnumeratorClassName) \
136 ::Arcane::EnumeratorTraceWrapper<_EnumeratorClassName, ::Arcane::IItemEnumeratorTracer>
137#define A_TRACE_ENUMERATOR_WHERE , A_FUNCINFO
139#define A_TRACE_ITEM_ENUMERATOR(_EnumeratorClassName) \
141#define A_TRACE_ENUMERATOR_WHERE
Informations pour les traces d'un énumérator.
const TraceInfo * traceInfo() const
Informations de trace (ou nullptr) si aucune.
Int64 beginTime() const
Temps du début en nanoseconde.
Int64ArrayView counters()
Valeurs de compteurs hardware.
void setTraceInfo(const TraceInfo *ti)
Positionne les informations de trace.
void setBeginTime(Int64 v)
Positionne le temps de début.
Wrapper autour d'un énumérator pour les traces.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Vue modifiable d'un tableau d'un type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ArrayView< Int64 > Int64ArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.