osg::Referenced Class Reference

Inheritance diagram for osg::Referenced:

osg::ApplicationUsage osg::BlendColor::Extensions osg::BlendEquation::Extensions osg::BlendFunc::Extensions osg::BufferObject::Extensions osg::ClampColor::Extensions osg::CullingSet osg::CullSettings::ClampProjectionMatrixCallback osg::DisplaySettings osg::Drawable::Extensions osg::FBOExtensions osg::FragmentProgram::Extensions osg::FrameStamp osg::GL2Extensions osg::GraphicsContext::ResizedCallback osg::GraphicsContext::Traits osg::GraphicsContext::WindowingSystemInterface osg::LineSegment osg::Multisample::Extensions osg::NodeVisitor osg::NodeVisitor::DatabaseRequestHandler osg::Object osg::Operation osg::OperationQueue osg::OperationThread osg::Point::Extensions osg::Program::PerContextProgram osg::RefBlock osg::RefBlockCount osg::Shader::PerContextShader osg::State osg::State::DynamicObjectRenderingCompletedCallback osg::Stats osg::StencilTwoSided::Extensions osg::Texture1D::SubloadCallback osg::Texture2D::SubloadCallback osg::Texture2DArray::Extensions osg::Texture2DArray::SubloadCallback osg::Texture3D::Extensions osg::Texture3D::SubloadCallback osg::Texture::Extensions osg::Texture::TextureObject osg::TextureCubeMap::Extensions osg::TextureCubeMap::SubloadCallback osg::TextureRectangle::SubloadCallback osg::TransferFunction osg::VertexProgram::Extensions osgDB::DatabasePager::DatabaseRequest osgDB::DotOsgWrapper osgDB::DynamicLibrary osgDB::ImageOptions::TexCoordRange osgDB::Registry osgDB::Registry::ReadFileCallback osgDB::Registry::WriteFileCallback osgFX::Registry osgFX::Technique osgGA::EventQueue osgGA::MatrixManipulator::CoordinateFrameCallback osgManipulator::CommandManager osgManipulator::Constraint osgManipulator::MotionCommand osgManipulator::Projector osgSim::GeographicLocation osgSim::ImpostorSpriteManager osgSim::ScalarBar::ScalarPrinter osgSim::ScalarsToColors osgTerrain::ValidDataOperator osgText::Font3D::Font3DImplementation osgText::Font3D::Glyph3D osgText::Font::FontImplementation osgUtil::CubeMapGenerator osgUtil::DelaunayTriangulator osgUtil::EdgeCollector::Edge osgUtil::EdgeCollector::Edgeloop osgUtil::EdgeCollector::Point osgUtil::EdgeCollector::Triangle osgUtil::IntersectionVisitor::ReadCallback osgUtil::Intersector osgUtil::IntersectVisitor::IntersectState osgUtil::Optimizer::IsOperationPermissibleForObjectCallback osgUtil::Optimizer::TextureAtlasBuilder::Atlas osgUtil::Optimizer::TextureAtlasBuilder::Source osgUtil::RenderBin::DrawCallback osgUtil::RenderBin::SortCallback osgUtil::RenderLeaf osgUtil::SceneView::ComputeStereoMatricesCallback osgUtil::Simplifier::ContinueSimplificationCallback osgUtil::StateGraph osgUtil::TangentSpaceGenerator osgUtil::Tessellator osgUtil::Tessellator::Prim osgViewer::GraphicsWindowWin32::WindowData osgViewer::GraphicsWindowX11::WindowData osgViewer::Scene

List of all members.

Public Member Functions

 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
virtual void setThreadSafeRefUnref (bool threadSafe)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
void ref () const
void unref () const
void unref_nodelete () const
int referenceCount () const
void addObserver (Observer *observer)
void removeObserver (Observer *observer)

Static Public Member Functions

static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
static bool getThreadSafeReferenceCounting ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()

Protected Member Functions

virtual ~Referenced ()
void deleteUsingDeleteHandler () const

Protected Attributes

OpenThreads::Mutex_refMutex
int _refCount
void * _observers

Friends

class DeleteHandler


Detailed Description

Base class from providing referencing counted objects.

Constructor & Destructor Documentation

osg::Referenced::Referenced (  ) 

osg::Referenced::Referenced ( bool  threadSafeRefUnref  )  [explicit]

osg::Referenced::Referenced ( const Referenced  ) 

virtual osg::Referenced::~Referenced (  )  [protected, virtual]


Member Function Documentation

Referenced& osg::Referenced::operator= ( const Referenced  )  [inline]

virtual void osg::Referenced::setThreadSafeRefUnref ( bool  threadSafe  )  [virtual]

bool osg::Referenced::getThreadSafeRefUnref (  )  const [inline]

Get whether a mutex is used to ensure ref() and unref() are thread safe.

OpenThreads::Mutex* osg::Referenced::getRefMutex (  )  const [inline]

Get the mutex used to ensure thread safety of ref()/unref().

void osg::Referenced::ref (  )  const [inline]

Increment the reference count by one, indicating that this object has another pointer which is referencing it.

References _refCount, and _refMutex.

void osg::Referenced::unref (  )  const [inline]

Decrement the reference count by one, indicating that a pointer to this object is referencing it. If the reference count goes to zero, it is assumed that this object is no longer referenced and is automatically deleted.

References _refCount, _refMutex, deleteUsingDeleteHandler(), and getDeleteHandler().

void osg::Referenced::unref_nodelete (  )  const

Decrement the reference count by one, indicating that a pointer to this object is referencing it. However, do not delete it, even if ref count goes to 0. Warning, unref_nodelete() should only be called if the user knows exactly who will be responsible for, one should prefer unref() over unref_nodelete() as the later can lead to memory leaks.

int osg::Referenced::referenceCount (  )  const [inline]

Return the number pointers currently referencing this object.

void osg::Referenced::addObserver ( Observer observer  ) 

Add a Observer that is observing this object, notify the Observer when this object gets deleted.

void osg::Referenced::removeObserver ( Observer observer  ) 

Add a Observer that is observing this object, notify the Observer when this object gets deleted.

static void osg::Referenced::setThreadSafeReferenceCounting ( bool  enableThreadSafeReferenceCounting  )  [static]

Set whether reference counting should be use a mutex to create thread reference counting.

static bool osg::Referenced::getThreadSafeReferenceCounting (  )  [static]

Get whether reference counting is active.

static void osg::Referenced::setDeleteHandler ( DeleteHandler handler  )  [static]

Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to.

static DeleteHandler* osg::Referenced::getDeleteHandler (  )  [static]

Get a DeleteHandler.

Referenced by unref().

void osg::Referenced::deleteUsingDeleteHandler (  )  const [protected]

Referenced by unref().


Friends And Related Function Documentation

friend class DeleteHandler [friend]


Member Data Documentation

Referenced by ref(), and unref().

int osg::Referenced::_refCount [mutable, protected]

Referenced by ref(), and unref().

void* osg::Referenced::_observers [protected]


The documentation for this class was generated from the following file:

Generated on Wed Nov 17 16:52:49 2010 for openscenegraph by  doxygen 1.5.6