scim::Pointer< T > Class Template Reference
[Helper, Helper]
Smart pointer template class.
More...
#include <scim_pointer.h>
Collaboration diagram for scim::Pointer< T >:
[legend]List of all members.
Detailed Description
template<typename T>
class scim::Pointer< T >
Smart pointer template class.
Pointer is a standard auto_ptr-like smart pointer for managing heap allocated reference counted objects. T must be a class derived from scim::ReferencedObject.
Definition at line 56 of file scim_pointer.h.
Constructor & Destructor Documentation
|
Construct a new smart pointer. < - Parameters:
-
| object | - a pointer to an object allocated on the heap. < <
Initialize a new Pointer with any dumb pointer. |
Definition at line 80 of file scim_pointer.h. |
|
Copy constructor. < - Parameters:
-
| src | - a reference to a smart pointer. < <
Initialize a new Pointer with any compatible Pointer. |
Definition at line 89 of file scim_pointer.h. |
|
Copy constructor. < - Parameters:
-
| src | - a Pointer to type T1 where T1 is derived from T. < <
Initialize a new Pointer of type T from a Pointer of type T1, < only if T1 is derived from T. |
Definition at line 99 of file scim_pointer.h. |
|
Destructor. < Decreases the object reference count. Definition at line 109 of file scim_pointer.h. |
Member Function Documentation
|
Assignment operator. < - Parameters:
-
| object | - a pointer to an object allocated on the heap. < <
Releases the current dumb pointer, if any and assigns object < to this Pointer, incrementing its reference count. |
Definition at line 116 of file scim_pointer.h. |
|
Assignment operator. < - Parameters:
-
| src | - a reference to a smart pointer. < <
Releases the current dumb pointer, if any and assigns the dumb pointer < managed by src to this Pointer, incrementing its reference count. |
Definition at line 127 of file scim_pointer.h. |
|
Assignment operator. < - Parameters:
-
| src | - a Pointer to type T1 where T1 is derived from T. < <
Releases the current dumb pointer, if any and assigns the dumb pointer < of type T1 managed by src to this Pointer as a dumb pointer of type T, < only if T1 is derived from T. The reference count is incremented. |
Definition at line 139 of file scim_pointer.h. |
template<typename T> |
T& scim::Pointer< T >::operator * |
( |
|
) |
const [inline] |
|
|
Dereference operator. < - Returns:
- a reference to the object pointed to by the dumb pointer.
Definition at line 155 of file scim_pointer.h. |
template<typename T> |
T* scim::Pointer< T >::operator-> |
( |
|
) |
const [inline] |
|
|
Member selection operator. < - Returns:
- the dumb pointer.
Definition at line 162 of file scim_pointer.h. |
template<typename T> |
scim::Pointer< T >::operator T * |
( |
|
) |
const [inline] |
|
|
Conversion operator. < Converts a Pointer into its dumb pointer: the C pointer it manages. < Normally it is considered pretty evil to mix smart and regular pointers. < In scim you can safely if you just follow the reference counting rules < for each of them. You can never call delete on Pointer either because < you don't call delete on scim objects; you call unref(). Definition at line 169 of file scim_pointer.h. |
template<typename T> |
T* scim::Pointer< T >::get |
( |
|
) |
const [inline] |
|
template<typename T> |
bool scim::Pointer< T >::null |
( |
|
) |
const [inline] |
|
|
Releases the dumb pointer. < - Returns:
- the regular C pointer previously managed by the Pointer. < <
Before releasing the dumb pointer its reference count is incremented < to prevent it being destroyed. You must call unref() on the pointer to < prevent a memory leak.
Definition at line 197 of file scim_pointer.h. |
template<typename T> |
void scim::Pointer< T >::reset |
( |
T * |
object = 0 |
) |
[inline] |
|
|
Sets a new dumb pointer for the Pointer to manage. < - Parameters:
-
| object | - the new dumb pointer. < <
Releases the current dumb pointer, if any, and assigns object < to the Pointer, incrementing its reference count. |
Definition at line 212 of file scim_pointer.h. |
Friends And Related Function Documentation
template<typename T> |
template<typename T1, typename T2> |
bool operator== |
( |
const Pointer< T1 > & |
t1, |
|
|
const Pointer< T2 > & |
t2 |
|
) |
[friend] |
|
|
Compares two Pointers. < - Returns:
- true if both Pointers manage to same dumb pointer.
Definition at line 229 of file scim_pointer.h. |
The documentation for this class was generated from the following file:
Generated on Thu Dec 30 21:03:23 2004 for scim by
1.3.8