| ## 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
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]`

Todo:
  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