8 #if !defined (__AJAREFPTR__)
11 #include "../system/atomic.h"
32 TRef *
get ()
const throw();
101 AJARefPtr<TRef>& operator = (TRef * pobRHS) throw ();
104 bool operator == (const
AJARefPtr< TRef > & inRHS) const throw ();
105 bool operator != (const
AJARefPtr< TRef > & inRHS) const throw ();
106 bool operator < (const
AJARefPtr< TRef > & inRHS) const throw ();
109 TRef & operator * () const throw ();
110 TRef * operator -> () const throw ();
111 TRef *
get () const throw ();
114 operator
bool () const throw ();
122 template <class TRef>
128 template <
class TRef>
135 template <
class TRef>
141 m_pRef->RemoveRef ();
142 m_pRef = inRHS.m_pRef;
149 template <
class TRef>
152 if (pobRHS !=
get ())
155 m_pRef->RemoveRef ();
162 template <
class TRef>
165 m_pRef->RemoveRef ();
169 template <
class TRef>
172 return get() == inRHS.get();
176 template <
class TRef>
179 return get() != inRHS.get ();
183 template <
class TRef>
186 return get() < inRHS.get ();
190 template <
class TRef>
193 return *(m_pRef->get());
197 template <
class TRef>
200 return m_pRef ? m_pRef->
get () :
NULL;
204 template <
class TRef>
207 return m_pRef ? m_pRef->
get () :
NULL;
211 template <
class TRef>
214 return m_pRef && m_pRef->
get () != 0;
217 #endif // __AJAREFPTR__