CrystalSpace

Public API Reference

Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

csWeakRef< T > Class Template Reference

A weak reference. More...

#include <weakref.h>

List of all members.

Public Methods

 csWeakRef ()
 Construct an empty weak reference.

 csWeakRef (T *newobj)
 Construct a weak reference from a normal pointer.

 csWeakRef (csWeakRef const &other)
 Weak pointer copy constructor.

 ~csWeakRef ()
 Weak pointer destructor.

csWeakRef & operator= (T *newobj)
 Assign a raw object reference to this weak reference.

csWeakRef & operator= (csWeakRef const &other)
 Assign another object to this weak reference.

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.

bool IsValid () const
 Weak pointer validity check.


Friends

bool operator== (const csWeakRef &r1, const csWeakRef &r2)
 Test if the two references point to same object.

bool operator!= (const csWeakRef &r1, const csWeakRef &r2)
 Test if the two references point to different object.

bool operator== (const csWeakRef &r1, T *obj)
 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 different from obj.

bool operator== (T *obj, const csWeakRef &r1)
 Test if object pointed to by reference is same as obj.

bool operator!= (T *obj, const csWeakRef &r1)
 Test if object pointed to by reference is different from obj.


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:

Definition at line 39 of file weakref.h.


Constructor & Destructor Documentation

template<class T>
csWeakRef< T >::csWeakRef   [inline]
 

Construct an empty weak reference.

Definition at line 66 of file weakref.h.

template<class T>
csWeakRef< T >::csWeakRef T *    newobj [inline]
 

Construct a weak reference from a normal pointer.

Definition at line 71 of file weakref.h.

template<class T>
csWeakRef< T >::csWeakRef csWeakRef< T > const &    other [inline]
 

Weak pointer copy constructor.

Definition at line 80 of file weakref.h.

template<class T>
csWeakRef< T >::~csWeakRef   [inline]
 

Weak pointer destructor.

Definition at line 88 of file weakref.h.


Member Function Documentation

template<class T>
bool csWeakRef< T >::IsValid   const [inline]
 

Weak pointer validity check.

Returns true if weak reference is pointing at an actual object, otherwise returns false.

Definition at line 163 of file weakref.h.

template<class T>
T& csWeakRef< T >::operator *   const [inline]
 

Dereference underlying object.

Definition at line 156 of file weakref.h.

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

Cast weak reference to a pointer to the underlying object.

Definition at line 152 of file weakref.h.

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

Dereference underlying object.

Definition at line 148 of file weakref.h.

template<class T>
csWeakRef& csWeakRef< T >::operator= csWeakRef< T > const &    other [inline]
 

Assign another object to this weak reference.

Definition at line 110 of file weakref.h.

template<class T>
csWeakRef& csWeakRef< T >::operator= T *    newobj [inline]
 

Assign a raw object reference to this weak reference.

Definition at line 96 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]
 

Test if object pointed to by reference is different from obj.

Definition at line 142 of file weakref.h.

template<class T>
bool operator!= const csWeakRef< T > &    r1,
T *    obj
[friend]
 

Test if object pointed to by reference is different from obj.

Definition at line 132 of file weakref.h.

template<class T>
bool operator!= const csWeakRef< T > &    r1,
const csWeakRef< T > &    r2
[friend]
 

Test if the two references point to different object.

Definition at line 122 of file weakref.h.

template<class T>
bool operator== T *    obj,
const csWeakRef< T > &    r1
[friend]
 

Test if object pointed to by reference is same as obj.

Definition at line 137 of file weakref.h.

template<class T>
bool operator== const csWeakRef< T > &    r1,
T *    obj
[friend]
 

Test if object pointed to by reference is same as obj.

Definition at line 127 of file weakref.h.

template<class T>
bool operator== const csWeakRef< T > &    r1,
const csWeakRef< T > &    r2
[friend]
 

Test if the two references point to same object.

Definition at line 117 of file weakref.h.


The documentation for this class was generated from the following file:
Generated for Crystal Space by doxygen 1.2.18