TMCSMPCountedObject Class Reference
[MCCore]

Inheritance diagram for TMCSMPCountedObject:
IMCUnknown FacetMesh MeshDataStructure::TMeshList TBasicKeyFrame TBasicParamType TBasicRemoteInstructions TBasicSmpThread TCountedRenderable TCountedRenderingCallbacks TCountedTimeBased TFacetCache TInstanceList TInstancePath TLevelOfDetailsData TMCCountedBlock< T > TMCSocket

List of all members.

Public Member Functions

void * operator new (MCSize byteCount) throw ()
void operator delete (void *block)
void * operator new[] (MCSize byteCount) throw ()
void operator delete[] (void *block)
virtual MCErr MCCOMAPI QueryInterface (const MCIID &riid, void **ppvObj)
virtual uint32 MCCOMAPI AddRef ()
virtual uint32 MCCOMAPI Release ()
int32 GetReferenceCount ()

Static Public Member Functions

static void Create (TMCSMPCountedObject **outObject)

Protected Member Functions

 TMCSMPCountedObject ()
virtual ~TMCSMPCountedObject ()

Protected Attributes

TMCAtomicCounterHolder fRefCountAC

Detailed Description

Counted objects are objects that use a counter to keep track of how many other objects need them, and delete themselves when nobody needs them anymore. A counted object has an AddRef method that increments its counter, and a Release method that decrements it. When the value of the counter reaches zero, the object is deleted.

Take a look at TMCCountedCreateHelper to see how to create and return a counted object


Constructor & Destructor Documentation

TMCSMPCountedObject::TMCSMPCountedObject (  )  [protected]
virtual TMCSMPCountedObject::~TMCSMPCountedObject (  )  [protected, virtual]

Member Function Documentation

uint32 TMCSMPCountedObject::AddRef (  )  [inline, virtual]

Increments the reference count of the object

Implements IMCUnknown.

Reimplemented in TCountedTimeBased, TCountedRenderable, TCountedRenderingCallbacks, TBasicParamType, TBasicRemoteInstructions, TBasicSmpThread, and TMCSocket.

static void TMCSMPCountedObject::Create ( TMCSMPCountedObject **  outObject  )  [static]
int32 TMCSMPCountedObject::GetReferenceCount (  )  [inline]
void TMCSMPCountedObject::operator delete ( void *  block  ) 

Reimplemented in TTimeBasedList, and TInstanceList.

void TMCSMPCountedObject::operator delete[] ( void *  block  ) 

Reimplemented in TTimeBasedList, and TInstanceList.

void* TMCSMPCountedObject::operator new ( MCSize  byteCount  )  throw ()

Reimplemented in TTimeBasedList, and TInstanceList.

void* TMCSMPCountedObject::operator new[] ( MCSize  byteCount  )  throw ()

Reimplemented in TTimeBasedList, and TInstanceList.

virtual MCErr MCCOMAPI TMCSMPCountedObject::QueryInterface ( const MCIID riid,
void **  ppvObj 
) [virtual]

Check if the object supports a given interface and returns a pointer to that interface if it does. Note that QueryInterface will increment the reference count of the object by one if the interface is found.

Parameters:
riid GUID of the interface
ppvObj A pointer to the pointer being returned.

Implements IMCUnknown.

Reimplemented in TCountedTimeBased, TCountedRenderable, TCountedRenderingCallbacks, TBasicParamType, TBasicRemoteInstructions, TBasicSmpThread, and TMCSocket.

uint32 TMCSMPCountedObject::Release (  )  [inline, virtual]

Decrements the reference count of the object. If the reference count reaches zero, the object is destroyed.

Implements IMCUnknown.

Reimplemented in TCountedTimeBased, TCountedRenderable, TCountedRenderingCallbacks, TBasicParamType, TBasicRemoteInstructions, TBasicSmpThread, and TMCSocket.


Member Data Documentation


The documentation for this class was generated from the following file:
Generated on Mon Apr 26 22:48:07 2010 for Carrara SDK Doc by  doxygen 1.6.3