nux-0.9.46

nux::Trackable Class Reference

Base class of heap allocated objects. More...

#include <NuxCore/Object.h>

Inheritance diagram for nux::Trackable:
nux::Object nux::ActionItem nux::CachedResourceData nux::FontTexture nux::InitiallyUnownedObject nux::IOpenGLResource nux::MenuBarItem nux::RadioButtonGroup nux::ResourceData nux::Timeline

Public Member Functions

 NUX_DECLARE_ROOT_OBJECT_TYPE (Trackable)
bool OwnsTheReference ()
 Test if object reference is owned.
bool IsHeapAllocated ()
 Test if object was allocated dynamically.
bool IsDynamic () const
 Test if object was allocated dynamically.
virtual bool Reference ()
 Increase the reference count.
virtual bool UnReference ()
 Decrease the reference count.
virtual bool SinkReference ()
 Mark the object as owned.
virtual bool Dispose ()
 Destroy and object that has a floating reference.
virtual int GetObjectSize ()
 Return the size of allocated for this object.

Static Public Member Functions

static std::new_handler set_new_handler (std::new_handler handler)
static void * operator new (size_t size)
static void * operator new (size_t size, void *ptr)
static void operator delete (void *ptr)

Protected Member Functions

 Trackable ()
virtual ~Trackable ()=0
void SetOwnedReference (bool b)

Protected Attributes

int _heap_allocated

Detailed Description

Base class of heap allocated objects.

Trackable does not implement reference counting. It only defines the API. It is up to the class that inherit from Trackable to implement the reference counting.


Constructor & Destructor Documentation

nux::Trackable::Trackable ( ) [protected]
virtual nux::Trackable::~Trackable ( ) [protected, pure virtual]

Member Function Documentation

virtual bool nux::Trackable::Dispose ( ) [virtual]

Destroy and object that has a floating reference.

If this object is not owned, calling SinkReference() as the same effect as calling Reference().

Returns:
True if the object has been destroyed

Reimplemented in nux::Object.

virtual int nux::Trackable::GetObjectSize ( ) [virtual]

Return the size of allocated for this object.

Returns:
The size allocated for this object.
bool nux::Trackable::IsDynamic ( ) const

Test if object was allocated dynamically.

bool nux::Trackable::IsHeapAllocated ( )

Test if object was allocated dynamically.

nux::Trackable::NUX_DECLARE_ROOT_OBJECT_TYPE ( Trackable  )
static void nux::Trackable::operator delete ( void *  ptr) [static]
static void* nux::Trackable::operator new ( size_t  size,
void *  ptr 
) [static]
static void* nux::Trackable::operator new ( size_t  size) [static]
bool nux::Trackable::OwnsTheReference ( )

Test if object reference is owned.

virtual bool nux::Trackable::Reference ( ) [virtual]

Increase the reference count.

Reimplemented in nux::Object.

static std::new_handler nux::Trackable::set_new_handler ( std::new_handler  handler) [static]
void nux::Trackable::SetOwnedReference ( bool  b) [protected]
virtual bool nux::Trackable::SinkReference ( ) [virtual]

Mark the object as owned.

Returns:
True if the object was not owned previously

Reimplemented in nux::Object.

virtual bool nux::Trackable::UnReference ( ) [virtual]

Decrease the reference count.

Returns:
True if the object has been destroyed

Reimplemented in nux::Object.


Field Documentation


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