HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
refPtrTracker.h File Reference
#include "pxr/pxr.h"
#include "pxr/base/tf/api.h"
#include "pxr/base/tf/hash.h"
#include "pxr/base/tf/hashmap.h"
#include "pxr/base/tf/weakBase.h"
#include "pxr/base/tf/singleton.h"
#include <iosfwd>
#include <mutex>
#include <vector>
+ Include dependency graph for refPtrTracker.h:

Go to the source code of this file.

Classes

class  TfRefPtr< T >
 
class  TfRefPtrTracker
 
struct  TfRefPtrTracker::Trace
 A track trace. More...
 
class  Tf_RefPtrTrackerUtil
 

Macros

#define TF_DECLARE_REFPTR_TRACK(T)
 
#define TF_DEFINE_REFPTR_TRACK(T, COND)
 

Functions

 TF_API_TEMPLATE_CLASS (TfSingleton< TfRefPtrTracker >)
 

Macro Definition Documentation

#define TF_DECLARE_REFPTR_TRACK (   T)
Value:
inline void \
Tf_RefPtrTracker_FirstRef(const void*, const TfRefBase *obj, T*); \
inline void \
Tf_RefPtrTracker_LastRef(const void*, const TfRefBase *obj, T*); \
inline void \
Tf_RefPtrTracker_New(const void* owner, const TfRefBase *obj, T*); \
inline void \
Tf_RefPtrTracker_Delete(const void* owner, const TfRefBase *obj, T*); \
inline void \
Tf_RefPtrTracker_Assign(const void* owner, \
const TfRefBase *obj, const TfRefBase *oldObj, T*);
void Tf_RefPtrTracker_Delete(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:458
void Tf_RefPtrTracker_LastRef(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:454
void Tf_RefPtrTracker_Assign(const void *, const TfRefBase *, const TfRefBase *, const void *)
Definition: refPtr.h:460
void Tf_RefPtrTracker_New(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:456
void Tf_RefPtrTracker_FirstRef(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:452

Definition at line 219 of file refPtrTracker.h.

#define TF_DEFINE_REFPTR_TRACK (   T,
  COND 
)
Value:
inline void \
Tf_RefPtrTracker_FirstRef(const void*, const TfRefBase *obj, T*) { \
if (obj && COND(obj)) Tf_RefPtrTrackerUtil::Watch(obj); \
} \
inline void \
Tf_RefPtrTracker_LastRef(const void*, const TfRefBase *obj, T*) { \
} \
inline void \
Tf_RefPtrTracker_New(const void* owner, const TfRefBase *obj, T*) { \
} \
inline void \
Tf_RefPtrTracker_Delete(const void* owner, const TfRefBase *obj, T*) { \
} \
inline void \
Tf_RefPtrTracker_Assign(const void* owner, const TfRefBase *obj, \
const TfRefBase *oldObj, T*) { \
if (oldObj != obj) { \
owner, obj, TfRefPtrTracker::Assign); \
} \
}
static void AddTrace(const void *owner, const TfRefBase *obj, TfRefPtrTracker::TraceType type=TfRefPtrTracker::Add)
void Tf_RefPtrTracker_Delete(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:458
static void Unwatch(const TfRefBase *obj)
Stop watching obj. Existing traces for obj are kept.
void Tf_RefPtrTracker_LastRef(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:454
void Tf_RefPtrTracker_Assign(const void *, const TfRefBase *, const TfRefBase *, const void *)
Definition: refPtr.h:460
static void RemoveTraces(const void *owner)
Remove traces for owner owner.
void Tf_RefPtrTracker_New(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:456
void Tf_RefPtrTracker_FirstRef(const void *, const TfRefBase *, const void *)
Definition: refPtr.h:452
if(num_boxed_items<=0)
Definition: UT_RTreeImpl.h:697

Definition at line 232 of file refPtrTracker.h.

Function Documentation

TF_API_TEMPLATE_CLASS ( TfSingleton< TfRefPtrTracker )