Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members  

xplc_ptr< T > Class Template Reference

Smart pointer class for XPLC interfaces. More...

List of all members.

Public Methods

 xplc_ptr (T *aObj)
 Construct an xplc_ptr from a raw pointer.

template<class P>  xplc_ptr (const xplc_ptr< P > &aObj)
 Construct an xplc_ptr from another xplc_ptr.

ProtectedPtr * operator-> () const
 Provide an operator->.

 operator ProtectedPtr * () const
 Provide an operator *.

xplc_ptr & operator= (T *_ptr)
 Assign a raw pointer to an xplc_ptr.


Detailed Description

template<class T>
class xplc_ptr< T >

Smart pointer class for XPLC interfaces.


Constructor & Destructor Documentation

template<class T>
xplc_ptr< T >::xplc_ptr T *    aObj [inline, explicit]
 

Construct an xplc_ptr from a raw pointer.

This is the only way that an xplc_ptr will take ownership of an interface from its previous owner.

template<class T>
template<class P>
xplc_ptr< T >::xplc_ptr const xplc_ptr< P > &    aObj [inline, explicit]
 

Construct an xplc_ptr from another xplc_ptr.

This will addRef the interface, if the xplc_ptr is non-NULL.


Member Function Documentation

template<class T>
xplc_ptr< T >::operator ProtectedPtr *   const [inline]
 

Provide an operator *.

This is so you can use "*foo" with an xplc_ptr like you could with the raw pointer. It also applies some basic protection.

template<class T>
ProtectedPtr* xplc_ptr< T >::operator->   const [inline]
 

Provide an operator->.

This allows you to invoke methods on the interface pointed at by the xplc_ptr. As with a raw pointer, if the xplc_ptr is NULL, this will cause a crash. The interface is wrapped in some basic protection, to avoid accidental addRef or release.

template<class T>
xplc_ptr& xplc_ptr< T >::operator= T *    _ptr [inline]
 

Assign a raw pointer to an xplc_ptr.

This will addRef the interface, and release the interface previously pointed at by the xplc_ptr, if any.


The documentation for this class was generated from the following file:
Generated on Sun Sep 26 04:02:02 2004 for XPLC by doxygen1.2.18