Base class for intrusively reference-counted objects. These are noncopyable and non-assignable. More...

#include <RefCounted.h>

Inherited by Urho3D::Animation2D, Urho3D::AnimationState, Urho3D::AttributeAccessor, Urho3D::BackgroundLoader, Urho3D::CollisionGeometryData, Urho3D::Context, Urho3D::FontFace, Urho3D::HttpRequest, Urho3D::LuaFunction, Urho3D::Object, Urho3D::ObjectFactory, Urho3D::Pass, Urho3D::PropertySet2D, Urho3D::RenderPath, Urho3D::RenderSurface, Urho3D::RenderSurface, Urho3D::ShaderProgram, Urho3D::ShaderProgram, Urho3D::ShaderVariation, Urho3D::ShaderVariation, Urho3D::SoundStream, Urho3D::Tile2D, Urho3D::TileMapObject2D, Urho3D::TmxLayer2D, Urho3D::ValueAnimationInfo, Urho3D::VertexDeclaration, Urho3D::WorkerThread, and Urho3D::WorkItem.

Collaboration diagram for Urho3D::RefCounted:
[legend]

Public Member Functions

 RefCounted ()
 Construct. Allocate the reference count structure and set an initial self weak reference.
 
virtual ~RefCounted ()
 Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
 
void AddRef ()
 Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting.
 
void ReleaseRef ()
 Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting.
 
int Refs () const
 Return reference count.
 
int WeakRefs () const
 Return weak reference count.
 
RefCountRefCountPtr ()
 Return pointer to the reference count structure.
 

Private Member Functions

 RefCounted (const RefCounted &rhs)
 Prevent copy construction.
 
RefCountedoperator= (const RefCounted &rhs)
 Prevent assignment.
 

Private Attributes

RefCountrefCount_
 Pointer to the reference count structure.
 

Detailed Description

Base class for intrusively reference-counted objects. These are noncopyable and non-assignable.


The documentation for this class was generated from the following files:
  • /home/travis/build/urho3d/Urho3D/Source/Urho3D/Container/RefCounted.h
  • /home/travis/build/urho3d/Urho3D/Source/Urho3D/Container/RefCounted.cpp