Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
DataTracer.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/* DataTracer.h (C) 2000-2007 */
9/* */
10/* Traceur d'une donnée. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_DATATYPE_DATATRACER_H
13#define ARCANE_DATATYPE_DATATRACER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ITraceMng.h"
18#include "arcane/utils/String.h"
19
20#include "arcane/datatype/IDataTracer.h"
21#include "arcane/datatype/DataTypes.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26ARCANE_BEGIN_NAMESPACE
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
37template<typename DataType>
39: public IDataTracerT<DataType>
40{
41 public:
43 : m_msg(msg), m_index(index), m_trace_type(trace_type), m_var_name(var_name)
44 {
45 }
46 virtual ~DataTracerT() {}
47 public:
48 virtual void traceAccess(const DataType& value)
49 {
50 m_msg->info() << "TraceAccess " << m_var_name << " i=" << m_index
51 << " V=" << value;
53 }
54 virtual void traceRead(const DataType& value)
55 {
56 if (m_trace_type==TT_Read)
57 m_msg->info() << "TraceRead " << m_var_name << " i=" << m_index
58 << " V=" << value;
60 }
61 virtual void traceWrite(const DataType& old_value,const DataType& new_value)
62 {
63 if (m_trace_type==TT_Write)
64 m_msg->info() << "TraceWrite " << m_var_name << " i=" << m_index
65 << " V=" << old_value << ' ' << new_value;
67 }
68 private:
69 ITraceMng* m_msg;
70 Integer m_index;
71 eTraceType m_trace_type;
72 String m_var_name;
73};
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78ARCANE_END_NAMESPACE
79
80/*---------------------------------------------------------------------------*/
81/*---------------------------------------------------------------------------*/
82
83#endif
84
DataTracer pour une donées d'un type DataType.
Definition DataTracer.h:40
virtual void traceWrite(const DataType &old_value, const DataType &new_value)
Message de trace pour un accès en écriture d'une valeur.
Definition DataTracer.h:61
virtual void traceAccess(const DataType &value)
Message de trace pour un accès (lecture ou écriture) à une valeur.
Definition DataTracer.h:48
virtual void traceRead(const DataType &value)
Message de trace pour un accès en lecture d'une valeur.
Definition DataTracer.h:54
Interface d'un tracer.
Definition IDataTracer.h:40
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
TraceMessage info() const
Flot pour un message d'information.
void arcaneTraceBreakpoint()
Point d'arrêt utilisable par un débuggeur pour une trace.
Definition DataTracer.cc:30
eTraceType
Type de trace possible.
Definition DataTypes.h:184