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

RefContainer< T, Arg, TStar > Class Template Reference

#include <refcontainer.h>

Inherits RefClass< T, Arg, KillableTStar< TStar, Arg > >.

Inheritance diagram for RefContainer:

Inheritance graph
[legend]
Collaboration diagram for RefContainer< T, Arg, TStar >:

Collaboration graph
[legend]
List of all members.

Public Methods

 RefContainer ()
 RefContainer (const Arg &a)
 RefContainer (const ThisType &a)
RefContainer< T, Arg, TStar > & operator= (const SuperType &r)
void Kill ()
void SetNull ()
bool nullCheck ()
bool IsNull () const
const T * Get () const
T * Get ()
T * operator * ()
const T * operator * () const
bool operator== (const ThisType &o) const
bool operator!= (const ThisType &o) const
bool operator< (const ThisType &o) const

Protected Methods

void DestroyObject ()

template<class T, class Arg, class TStar = TRef<T,Arg>>
class RefContainer< T, Arg, TStar >


Constructor & Destructor Documentation

template<class T, class Arg, class TStar = TRef<T,Arg>>
RefContainer< T, Arg, TStar >::RefContainer   [inline]
 

template<class T, class Arg, class TStar = TRef<T,Arg>>
RefContainer< T, Arg, TStar >::RefContainer const Arg &    a [inline]
 

00020 : SuperType (a) {}

template<class T, class Arg, class TStar = TRef<T,Arg>>
RefContainer< T, Arg, TStar >::RefContainer const ThisType &    a [inline]
 

00021 : SuperType (a) {}


Member Function Documentation

template<class T, class Arg, class TStar = TRef<T,Arg>>
void RefContainer< T, Arg, TStar >::DestroyObject   [inline, protected]
 

Reimplemented from RefClass< T, Arg, KillableTStar< TStar, Arg > >.

00014                        {
00015     SuperType::DestroyObject();
00016     SuperType::SetNull();
00017   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
T* RefContainer< T, Arg, TStar >::Get   [inline]
 

Reimplemented from RefClass< T, Arg, KillableTStar< TStar, Arg > >.

00058              {
00059     if (SuperType ::IsNull())
00060       return 0;
00061     else if ((*t).killed()) {
00062       DestroyObject();
00063       return 0;
00064     }
00065     return SuperType ::Get();
00066   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
const T* RefContainer< T, Arg, TStar >::Get   const [inline]
 

Reimplemented from RefClass< T, Arg, KillableTStar< TStar, Arg > >.

00053                         {
00054     if (IsNull())
00055       return 0;
00056     return SuperType ::Get();
00057   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
bool RefContainer< T, Arg, TStar >::IsNull   const [inline]
 

00046                       {
00047     if ( SuperType ::IsNull()) {
00048       return true;
00049     }else {
00050       return (*t).killed;
00051     }
00052   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
void RefContainer< T, Arg, TStar >::Kill   [inline]
 

00026               {
00027     if (! SuperType ::IsNull()){
00028       (*t).second.killed=true;
00029       DestroyObject();
00030     }
00031   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
bool RefContainer< T, Arg, TStar >::nullCheck   [inline]
 

00037                    {
00038     if ( SuperType ::IsNull())
00039       return true;
00040     else if ((*t).killed()) {
00041       DestroyObject();
00042       return true;
00043     }
00044     return false;    
00045   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
const T* RefContainer< T, Arg, TStar >::operator *   const [inline]
 

Reimplemented from RefClass< T, Arg, KillableTStar< TStar, Arg > >.

00068 {return Get();}

template<class T, class Arg, class TStar = TRef<T,Arg>>
T* RefContainer< T, Arg, TStar >::operator *   [inline]
 

Reimplemented from RefClass< T, Arg, KillableTStar< TStar, Arg > >.

00067 {return Get();}

template<class T, class Arg, class TStar = TRef<T,Arg>>
bool RefContainer< T, Arg, TStar >::operator!= const ThisType &    o const [inline]
 

00076                                              {
00077     return !((*this)==o);
00078   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
bool RefContainer< T, Arg, TStar >::operator< const ThisType &    o const [inline]
 

00079                                             {
00080     bool a= IsNull();bool b = o.IsNull();
00081     if (a||b)
00082       return (!a)&&b;
00083     return SuperType ::operator < (o);
00084   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
RefContainer<T,Arg,TStar>& RefContainer< T, Arg, TStar >::operator= const SuperType &    r [inline]
 

00022                                                                {
00023     SuperType ::operator = (r);
00024     return *this;
00025   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
bool RefContainer< T, Arg, TStar >::operator== const ThisType &    o const [inline]
 

00070                                              {
00071     bool a= IsNull();bool b = o.IsNull();
00072     if (a||b)
00073       return a==b;
00074     return SuperType ::operator == (o);
00075   }

template<class T, class Arg, class TStar = TRef<T,Arg>>
void RefContainer< T, Arg, TStar >::SetNull   [inline]
 

00032                 {
00033     if (! SuperType ::IsNull()) {
00034       DestroyObject();
00035     }
00036   }


The documentation for this class was generated from the following file:
Generated on Mon Jul 7 21:13:55 2003 for Ethereal by doxygen1.2.15