12#ifndef ARCANE_UTILS_IMEMORYINFO_H
13#define ARCANE_UTILS_IMEMORYINFO_H
17#include "arcane/utils/String.h"
18#include "arcane/utils/IFunctorWithArgument.h"
33 MemoryInfoChunk() : m_owner(0), m_size(0), m_alloc_id(0), m_iteration(0) {}
35 : m_owner(aowner), m_size(asize), m_alloc_id(alloc_id), m_iteration(aiteration) {}
37 const void* owner()
const {
return m_owner; }
38 Int64 size()
const {
return m_size; }
39 Int64 allocId()
const {
return m_alloc_id; }
40 Integer iteration()
const {
return m_iteration; }
41 const String& stackTrace()
const {
return m_stack_trace; }
43 void setOwner(
const void* o) { m_owner = o; }
44 void setStackTrace(
const String& st) { m_stack_trace = st; }
83 virtual void addInfo(
const void* owner,
const void* ptr,
Int64 size) =0;
85 virtual void addInfo(
const void* owner,
const void* ptr,
Int64 size,
const void* old_ptr) =0;
87 virtual void changeOwner(
const void* new_owner,
const void* ptr) =0;
89 virtual void removeInfo(
const void* owner,
const void* ptr,
bool can_fail=
false) =0;
91 virtual void printInfos(std::ostream& ostr) =0;
95 virtual void beginCollect() =0;
96 virtual void endCollect() =0;
97 virtual bool isCollecting()
const =0;
104 virtual void printAllocatedMemory(std::ostream& ostr,
Integer iteration) =0;
139 virtual Int64 nbAllocation()
const =0;
146arcaneGlobalMemoryInfo();
Interface d'un fonctor avec argument mais sans valeur de retour.
virtual void setIteration(Integer iteration)=0
Positionne le numéro de l'itération courante.
virtual void setStackTraceMinAllocSize(Int64 alloc_size)=0
Positionne la taille minimale des allocations dont on trace la pile d'appel.
virtual void removeOwner(const void *owner)=0
Supprime la référence sur owner.
virtual void createOwner(const void *owner, const TraceInfo &trace_info)=0
Crée une référence sur owner avec les infos de trace trace_info.
virtual void setTraceMng(ITraceMng *msg)=0
Positionne le ITraceMng pour les messages.
virtual void visitAllocatedBlocks(IFunctorWithArgumentT< const MemoryInfoChunk & > *functor) const =0
Visiteur sur l'ensemble des blocs alloués.
virtual void setOwner(const void *owner, const TraceInfo &new_info)=0
Modifie les infos de la référence owner.
virtual ~IMemoryInfo()
Libère les ressources.
virtual Int64 stackTraceMinAllocSize() const =0
Taille minimale des allocations dont on trace la pile d'appel.
virtual void setKeepStackTrace(bool is_active)=0
Indique si on active la sauvegarde de la pile d'appel.
virtual bool keepStackTrace() const =0
Indique si la sauvegarde de la pile d'appel est activée.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.