## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iRefTracker Struct Reference

The reference tracker interface. More...

`#include <iutil/reftrack.h>`

Inheritance diagram for iRefTracker:

[legend]
List of all members.

## Public Member Functions

virtual void | AddAlias (void *obj, void *mapTo)=0
| Add an alias.
virtual void | MatchDecRef (void *object, int refCount, void *tag)=0
| Match the most recent DecRef() to a 'tag' so it can be tracked what DecRef()ed a ref.
virtual void | MatchIncRef (void *object, int refCount, void *tag)=0
| Match the most recent IncRef() to a 'tag' so it can be tracked what IncRef()ed a ref.
virtual void | RemoveAlias (void *obj, void *mapTo)=0
| Remove an alias.
virtual void | SetDescription (void *obj, const char *description)=0
| @@ Document me.
virtual void | TrackConstruction (void *object)=0
| Called by an object if it constructed.
virtual void | TrackDecRef (void *object, int refCount)=0
| Called by an object if it has been DecRef()ed.
virtual void | TrackDestruction (void *object, int refCount)=0
| Called by an object if it destructed.
virtual void | TrackIncRef (void *object, int refCount)=0
| Called by an object if it has been IncRef()ed.

## Detailed Description

The reference tracker interface.

Exposed by iSCF::SCF if enabled at compile-time.

Definition at line 31 of file reftrack.h.

## Member Function Documentation

virtual void iRefTracker::AddAlias | ( | void * | obj,
|  | void * | mapTo
| ) | `[pure virtual]`

| Add an alias. Basically says "mapTO is the same as obj." Used for embedded interfaces.

virtual void iRefTracker::MatchDecRef | ( | void * | object,
|  | int | refCount,
|  | void * | tag
| ) | `[pure virtual]`

| Match the most recent DecRef() to a 'tag' so it can be tracked what DecRef()ed a ref. csRef<>s employ this mechanism and tag DecRef()s with 'this'.

virtual void iRefTracker::MatchIncRef | ( | void * | object,
|  | int | refCount,
|  | void * | tag
| ) | `[pure virtual]`

| Match the most recent IncRef() to a 'tag' so it can be tracked what IncRef()ed a ref. csRef<>s employ this mechanism and tag IncRef()s with 'this'.

virtual void iRefTracker::RemoveAlias | ( | void * | obj,
|  | void * | mapTo
| ) | `[pure virtual]`

| Remove an alias.

virtual void iRefTracker::SetDescription | ( | void * | obj,
|  | const char * | description
| ) | `[pure virtual]`

| @@ Document me.

virtual void iRefTracker::TrackConstruction | ( | void * | object | ) | `[pure virtual]`

| Called by an object if it constructed.

virtual void iRefTracker::TrackDecRef | ( | void * | object,
|  | int | refCount
| ) | `[pure virtual]`

| Called by an object if it has been DecRef()ed.

virtual void iRefTracker::TrackDestruction | ( | void * | object,
|  | int | refCount
| ) | `[pure virtual]`

| Called by an object if it destructed.

virtual void iRefTracker::TrackIncRef | ( | void * | object,
|  | int | refCount
| ) | `[pure virtual]`

| Called by an object if it has been IncRef()ed.

The documentation for this struct was generated from the following file:

- iutil/reftrack.h