You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.5 KiB
72 lines
2.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: CValObject is used for tracking individual objects that report |
|
// in to CValidator. Whenever a new object reports in (via CValidator::Push), |
|
// we create a new CValObject to aggregate stats for it. |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef VALOBJECT_H |
|
#define VALOBJECT_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
#ifdef DBGFLAG_VALIDATE |
|
class CValObject |
|
{ |
|
public: |
|
// Constructors & destructors |
|
CValObject( void ) { }; |
|
~CValObject( void ); |
|
|
|
void Init( tchar *pchType, void *pvObj, tchar *pchName, CValObject *pValObjectParent, |
|
CValObject *pValObjectPrev ); |
|
|
|
// Our object has claimed ownership of a memory block |
|
void ClaimMemoryBlock( void *pvMem ); |
|
|
|
// A child of ours has claimed ownership of a memory block |
|
void ClaimChildMemoryBlock( int cubUser ); |
|
|
|
// Accessors |
|
tchar *PchType( void ) { return m_rgchType; }; |
|
void *PvObj( void ) { return m_pvObj; }; |
|
tchar *PchName( void ) { return m_rgchName; }; |
|
CValObject *PValObjectParent( void ) { return m_pValObjectParent; }; |
|
int NLevel( void ) { return m_nLevel; }; |
|
CValObject *PValObjectNext( void ) { return m_pValObjectNext; }; |
|
int CpubMemSelf( void ) { return m_cpubMemSelf; }; |
|
int CubMemSelf( void ) { return m_cubMemSelf; }; |
|
int CpubMemTree( void ) { return m_cpubMemTree; }; |
|
int CubMemTree( void ) { return m_cubMemTree; }; |
|
int NUser( void ) { return m_nUser; }; |
|
void SetNUser( int nUser ) { m_nUser = nUser; }; |
|
void SetBNewSinceSnapshot( bool bNewSinceSnapshot ) { m_bNewSinceSnapshot = bNewSinceSnapshot; } |
|
bool BNewSinceSnapshot( void ) { return m_bNewSinceSnapshot; } |
|
|
|
private: |
|
bool m_bNewSinceSnapshot; // If this block is new since the snapshot. |
|
tchar m_rgchType[64]; // Type of the object we represent |
|
tchar m_rgchName[64]; // Name of this particular object |
|
void *m_pvObj; // Pointer to the object we represent |
|
|
|
CValObject *m_pValObjectParent; // Our parent object in the tree. |
|
int m_nLevel; // Our depth in the tree |
|
|
|
CValObject *m_pValObjectNext; // Next ValObject in the linked list |
|
|
|
int m_cpubMemSelf; // # of memory blocks we own directly |
|
int m_cubMemSelf; // Total size of the memory blocks we own directly |
|
|
|
int m_cpubMemTree; // # of memory blocks owned by us and our children |
|
int m_cubMemTree; // Total size of the memory blocks owned by us and our children |
|
|
|
int m_nUser; // Field provided for use by our users |
|
}; |
|
#endif // DBGFLAG_VALIDATE |
|
|
|
|
|
#endif // VALOBJECT_H
|
|
|