Xfce Foundation Classes
Main Page  | IndexNamespace List  |  Alphabetical List  |  Class List  |  File List


Public Member Functions
Xfc::Pointer< T > Class Template Reference

Smart pointer template class. More...

#include <xfc/pointer.hh>

List of all members.

Public Member Functions

Constructors

Detailed Description

template<typename T>
class Xfc::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 Xfc::G::Object or Xfc::Object.


Constructor & Destructor Documentation

template<typename T>
Xfc::Pointer< T >::Pointer ( T *  object = 0) [inline]

Construct a new smart pointer.

Parameters:
objectA pointer to an object allocated on the heap.

Initialize a new Pointer with any dumb pointer.

template<typename T>
Xfc::Pointer< T >::Pointer ( const Pointer< T > &  src) [inline]

Copy constructor.

Parameters:
srcA reference to a smart pointer.

Initialize a new Pointer with any compatible Pointer.

References Xfc::Pointer< T >::get().

template<typename T>
template<typename T1 >
Xfc::Pointer< T >::Pointer ( const Pointer< T1 > &  src) [inline]

Copy constructor.

Parameters:
srcA 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.

References Xfc::Pointer< T >::get().

template<typename T>
Xfc::Pointer< T >::~Pointer ( ) [inline]

Destructor.

Decreases the object reference count.


Member Function Documentation

template<typename T>
T* Xfc::Pointer< T >::get ( ) const [inline]

Returns the dumb pointer; the regular C pointer managed by the Pointer.

Returns:
The dumb pointer.

Referenced by Xfc::cast_const(), Xfc::cast_dynamic(), Xfc::cast_static(), Xfc::Pointer< T >::operator!=(), Xfc::Pointer< T >::operator=(), Xfc::Pointer< T >::operator==(), and Xfc::Pointer< T >::Pointer().

template<typename T>
Xfc::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 XFC 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 XFC objects; you call unref().

template<typename T>
template<typename T1 >
bool Xfc::Pointer< T >::operator!= ( const Pointer< T1 > &  other) [inline]

Compares the dumb pointer with other's dumb pointer, for inequality.

Parameters:
otherAnother smart pointer.
Returns:
true if both Pointers manage a different dumb pointer.

References Xfc::Pointer< T >::get().

template<typename T>
T& Xfc::Pointer< T >::operator* ( ) const [inline]

Dereference operator.

Returns:
A reference to the object pointed to by the dumb pointer.
template<typename T>
T* Xfc::Pointer< T >::operator-> ( ) const [inline]

Member selection operator.

Returns:
The dumb pointer.
template<typename T>
Pointer& Xfc::Pointer< T >::operator= ( const Pointer< T > &  src) [inline]

Assignment operator.

Parameters:
srcA 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.

References Xfc::Pointer< T >::get().

template<typename T>
template<typename T1 >
Pointer& Xfc::Pointer< T >::operator= ( const Pointer< T1 > &  src) [inline]

Assignment operator.

Parameters:
srcA 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.

References Xfc::Pointer< T >::get().

template<typename T>
template<typename T1 >
bool Xfc::Pointer< T >::operator== ( const Pointer< T1 > &  other) [inline]

Compares the dumb pointer with other's dumb pointer, for equality.

Parameters:
otherAnother smart pointer.
Returns:
true if both Pointers manage to same dumb pointer.

References Xfc::Pointer< T >::get().

template<typename T>
T* Xfc::Pointer< T >::release ( ) [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.

template<typename T>
void Xfc::Pointer< T >::reset ( T *  object = 0) [inline]

Sets a new dumb pointer for the Pointer to manage.

Parameters:
objectThe new dumb pointer.

Releases the current dumb pointer, if any, and assigns object to the Pointer, incrementing its reference count.

template<typename T>
void Xfc::Pointer< T >::swap ( Pointer< T > &  other) [inline]

Swaps the dumb pointer with other's dumb pointer.

Parameters:
otherAnother smart pointer.

The documentation for this class was generated from the following file:
Xfce Foundation Classes
Copyright © 2004-2005 The XFC Development Team XFC