csWeakRef< T > Class Template Reference
A weak reference. More...
#include <csutil/weakref.h>
Public Member Functions | |
csWeakRef (const csPtr< T > &newobj) | |
Construct a weak reference from a csPtr. | |
csWeakRef (csWeakRef const &other) | |
Weak pointer copy constructor. | |
csWeakRef (csRef< T > const &newobj) | |
Construct a weak reference from a csRef<>. | |
csWeakRef (T *newobj) | |
Construct a weak reference from a normal pointer. | |
csWeakRef () | |
Construct an empty weak reference. | |
bool | IsValid () const |
Weak pointer validity check. | |
T & | operator * () const |
Dereference underlying object. | |
operator T * () const | |
Cast weak reference to a pointer to the underlying object. | |
T * | operator-> () const |
Dereference underlying object. | |
csWeakRef & | operator= (csWeakRef const &other) |
Assign another object to this weak reference. | |
csWeakRef & | operator= (csPtr< T > newobj) |
Assign a csPtr reference to this weak reference. | |
csWeakRef & | operator= (csRef< T > const &newobj) |
Assign a csRef<> to this weak reference. | |
csWeakRef & | operator= (T *newobj) |
Assign a raw object reference to this weak reference. | |
~csWeakRef () | |
Weak pointer destructor. | |
Friends | |
bool | operator!= (T *obj, const csWeakRef &r1) |
Test if object pointed to by reference is different from obj. | |
bool | operator!= (const csWeakRef &r1, T *obj) |
Test if object pointed to by reference is different from obj. | |
bool | operator!= (const csWeakRef &r1, const csWeakRef &r2) |
Test if the two references point to different object. | |
bool | operator== (T *obj, const csWeakRef &r1) |
Test if object pointed to by reference is same as obj. | |
bool | operator== (const csWeakRef &r1, T *obj) |
Test if object pointed to by reference is same as obj. | |
bool | operator== (const csWeakRef &r1, const csWeakRef &r2) |
Test if the two references point to same object. |
Detailed Description
template<class T>
class csWeakRef< T >
A weak reference.
This is a reference to a reference counted object but in itself it doesn't increment the ref counter. As soon as the object is destroyed (i.e. the last REAL reference to it is removed) all weak references pointing to that object are cleared. This kind of reference is useful if you want to maintain some kind of cached objects that can safely be removed as soon as the last reference to it is gone.
Note: this class assumes that the T type implements at least the following functions:
- AddRefOwner()
- RemoveRefOwner()
- Remarks:
- An extended explanation on smart pointers - how they work and what type to use in what scenario - is contained in the User's manual, section "Correctly Using Smart Pointers".
Definition at line 50 of file weakref.h.
Constructor & Destructor Documentation
Member Function Documentation
template<class T>
bool csWeakRef< T >::IsValid | ( | ) | const [inline] |
template<class T>
T& csWeakRef< T >::operator * | ( | ) | const [inline] |
template<class T>
csWeakRef< T >::operator T * | ( | ) | const [inline] |
template<class T>
T* csWeakRef< T >::operator-> | ( | ) | const [inline] |
Assign a raw object reference to this weak reference.
Definition at line 131 of file weakref.h.
Referenced by csWeakRef< csEventQueue >::operator=().
Friends And Related Function Documentation
template<class T>
bool operator!= | ( | T * | obj, | |
const csWeakRef< T > & | r1 | |||
) | [friend] |
template<class T>
bool operator!= | ( | const csWeakRef< T > & | r1, | |
T * | obj | |||
) | [friend] |
template<class T>
bool operator== | ( | T * | obj, | |
const csWeakRef< T > & | r1 | |||
) | [friend] |
template<class T>
bool operator== | ( | const csWeakRef< T > & | r1, | |
T * | obj | |||
) | [friend] |
The documentation for this class was generated from the following file:
- csutil/weakref.h
Generated for Crystal Space by doxygen 1.4.7