Urho3D
|
Weak pointer template class with intrusive reference counting. Does not keep the object pointed to alive. More...
#include <Ptr.h>
Public Member Functions | |
WeakPtr () | |
Construct a null weak pointer. | |
WeakPtr (const SharedPtr< T > &rhs) | |
Construct from a shared pointer. | |
WeakPtr (const WeakPtr< T > &rhs) | |
Copy-construct from another weak pointer. | |
WeakPtr (T *ptr) | |
Construct from a raw pointer. | |
~WeakPtr () | |
Destruct. Release the weak reference to the object. | |
WeakPtr< T > & | operator= (const SharedPtr< T > &rhs) |
Assign from a shared pointer. | |
WeakPtr< T > & | operator= (const WeakPtr< T > &rhs) |
Assign from a weak pointer. | |
WeakPtr< T > & | operator= (T *ptr) |
Assign from a raw pointer. | |
SharedPtr< T > | Lock () const |
Convert to a shared pointer. If expired, return a null shared pointer. | |
T * | Get () const |
Return raw pointer. If expired, return null. | |
T * | operator-> () const |
Point to the object. | |
T & | operator* () const |
Dereference the object. | |
T & | operator[] (const int index) |
Subscript the object if applicable. | |
bool | operator== (const WeakPtr< T > &rhs) const |
Test for equality with another weak pointer. | |
bool | operator!= (const WeakPtr< T > &rhs) const |
Test for inequality with another weak pointer. | |
bool | operator< (const SharedPtr< T > &rhs) const |
Test for less than with another weak pointer. | |
operator bool () const | |
Return true if points to an object which is not expired. | |
operator T * () const | |
Convert to a raw pointer, null if the object is expired. | |
void | Reset () |
Reset to null and release the weak reference. | |
template<class U > | |
void | StaticCast (const WeakPtr< U > &rhs) |
Perform a static cast from a weak pointer of another type. | |
template<class U > | |
void | DynamicCast (const WeakPtr< U > &rhs) |
Perform a dynamic cast from a weak pointer of another type. | |
bool | Null () const |
Check if the pointer is null. | |
bool | NotNull () const |
Check if the pointer is not null. It does not matter whether the object has expired or not. | |
int | Refs () const |
Return the object's reference count, or 0 if null pointer or if object has expired. | |
int | WeakRefs () const |
Return the object's weak reference count. | |
bool | Expired () const |
Return whether the object has expired. If null pointer, always return true. | |
RefCount * | RefCountPtr () const |
Return pointer to the RefCount structure. | |
unsigned | ToHash () const |
Return hash value for HashSet & HashMap. |
Private Member Functions | |
template<class U > | |
WeakPtr< T > & | operator= (const WeakPtr< U > &rhs) |
Prevent direct assignment from a weak pointer of different type. | |
void | Release () |
Release the weak reference. Delete the Refcount structure if necessary. |
Private Attributes | |
T * | ptr_ |
Pointer to the object. | |
RefCount * | refCount_ |
Pointer to the RefCount structure. |
Weak pointer template class with intrusive reference counting. Does not keep the object pointed to alive.