csRef< T > Class Template Reference
A smart pointer. More...
#include <csutil/ref.h>
Public Member Functions | |
| void | AttachNew (csPtr< T > newObj) |
| Assign an object reference created with the new operator to this smart pointer. | |
| csRef (csRef const &other) | |
| Smart pointer copy constructor. | |
| template<class T2> | |
| csRef (csRef< T2 > const &other) | |
| Smart pointer copy constructor from assignment-compatible csRef<T2>. | |
| csRef (T *newobj) | |
| Construct a smart pointer from a raw object reference. | |
| csRef (const csPtr< T > &newobj) | |
| Construct a smart pointer from a csPtr. | |
| csRef () | |
| Construct an invalid smart pointer (that is, one pointing at nothing). | |
| uint | GetHash () const |
| Return a hash value for this smart pointer. | |
| void | Invalidate () |
| Invalidate the smart pointer by setting it to null. | |
| bool | IsValid () const |
| Smart pointer validity check. | |
| T & | operator * () const |
| Dereference underlying object. | |
| operator T * () const | |
| Cast smart pointer to a pointer to the underlying object. | |
| T * | operator-> () const |
| Dereference underlying object. | |
| csRef & | operator= (csRef const &other) |
| Assign another csRef<> of the same type to this one. | |
| template<class T2> | |
| csRef & | operator= (csRef< T2 > const &other) |
| Assign another assignment-compatible csRef<T2> to this one. | |
| csRef & | operator= (T *newobj) |
| Assign a raw object reference to this smart pointer. | |
| csRef & | operator= (const csPtr< T > &newobj) |
| Assign a csPtr to a smart pointer. | |
| ~csRef () | |
| Smart pointer destructor. | |
Friends | |
| bool | operator!= (T *obj, const csRef &r1) |
| Test if object pointed to by reference is different from obj. | |
| bool | operator!= (const csRef &r1, T *obj) |
| Test if object pointed to by reference is different from obj. | |
| bool | operator!= (const csRef &r1, const csRef &r2) |
| Test if the two references point to different object. | |
| bool | operator< (const csRef &r1, const csRef &r2) |
| Test the relationship of the addresses of two objects. | |
| bool | operator== (T *obj, const csRef &r1) |
| Test if object pointed to by reference is same as obj. | |
| bool | operator== (const csRef &r1, T *obj) |
| Test if object pointed to by reference is same as obj. | |
| bool | operator== (const csRef &r1, const csRef &r2) |
| Test if the two references point to same object. | |
Detailed Description
template<class T>
class csRef< T >
A smart pointer.
Maintains and correctly manages a reference to a reference-counted object. This template requires only that the object type T implement the methods IncRef() and DecRef(). No other requirements are placed upon T.
Definition at line 123 of file ref.h.
Constructor & Destructor Documentation
|
|||||||||
|
Construct an invalid smart pointer (that is, one pointing at nothing). Dereferencing or attempting to use the invalid pointer will result in a run-time error, however it is safe to invoke IsValid(). |
|
||||||||||
|
Construct a smart pointer from a csPtr. Doesn't call IncRef() on the object since it is assumed that the object in csPtr is already IncRef()'ed. |
|
||||||||||
|
Construct a smart pointer from a raw object reference. Calls IncRef() on the object. |
|
||||||||||||||
|
Smart pointer copy constructor from assignment-compatible csRef<T2>.
|
|
||||||||||
|
Smart pointer copy constructor.
|
|
|||||||||
|
Smart pointer destructor. Invokes DecRef() upon the underlying object. |
Member Function Documentation
|
||||||||||
|
Assign an object reference created with the new operator to this smart pointer.
|
|
|||||||||
|
Return a hash value for this smart pointer.
|
|
|||||||||
|
Invalidate the smart pointer by setting it to null.
Definition at line 348 of file ref.h. Referenced by awsEmbeddedComponent::Invalidate(). |
|
|||||||||
|
Smart pointer validity check. Returns true if smart pointer is pointing at an actual object, otherwise returns false. Definition at line 344 of file ref.h. Referenced by csShaderProgram::GetParamFloatVal(), csShaderProgram::GetParamTransformVal(), csShaderProgram::GetParamVectorVal(), and CrystalSpace::DocumentHelper::Implementation::FilterDocumentNodeIterator< T >::HasNext(). |
|
|||||||||
|
Dereference underlying object.
|
|
|||||||||
|
Cast smart pointer to a pointer to the underlying object.
|
|
|||||||||
|
Dereference underlying object.
|
|
||||||||||
|
Assign another csRef<> of the same type to this one.
|
|
||||||||||||||
|
Assign another assignment-compatible csRef<T2> to this one.
|
|
||||||||||
|
Assign a raw object reference to this smart pointer.
|
|
||||||||||
|
Assign a csPtr to a smart pointer. Doesn't call IncRef() on the object since it is assumed that the object in csPtr is already IncRef()'ed.
Definition at line 196 of file ref.h. Referenced by csRef< iGraphics2D >::operator=(). |
Friends And Related Function Documentation
|
||||||||||||||||
|
Test if object pointed to by reference is different from obj.
|
|
||||||||||||||||
|
Test if object pointed to by reference is different from obj.
|
|
||||||||||||||||
|
Test if the two references point to different object.
|
|
||||||||||||||||
|
Test the relationship of the addresses of two objects.
|
|
||||||||||||||||
|
Test if object pointed to by reference is same as obj.
|
|
||||||||||||||||
|
Test if object pointed to by reference is same as obj.
|
|
||||||||||||||||
|
Test if the two references point to same object.
|
The documentation for this class was generated from the following file:
- csutil/ref.h
Generated for Crystal Space by doxygen 1.4.6
