Inherited by 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 [virtual], osg::NodeVisitor::DatabaseRequestHandler, osg::Object, osg::Operation [virtual], osg::OperationQueue, osg::OperationThread, osg::Point::Extensions, osg::Program::PerContextProgram, osg::RefBlock [virtual], osg::RefBlockCount [virtual], 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 [virtual], osgDB::Registry::WriteFileCallback [virtual], 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::Font::FontImplementation, osgUtil::CubeMapGenerator, osgUtil::DelaunayTriangulator, 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, and osgViewer::Scene.
Public Member Functions | |
| Referenced () | |
| Referenced (bool threadSafeRefUnref) | |
| Referenced (const Referenced &) | |
| Referenced & | operator= (const Referenced &) |
| virtual void | setThreadSafeRefUnref (bool threadSafe) |
| Set whether to use a mutex to ensure ref() and unref() are thread safe. | |
| bool | getThreadSafeRefUnref () const |
| Get whether a mutex is used to ensure ref() and unref() are thread safe. | |
| OpenThreads::Mutex * | getRefMutex () const |
| Get the mutex used to ensure thread safety of ref()/unref(). | |
| void | ref () const |
| Increment the reference count by one, indicating that this object has another pointer which is referencing it. | |
| void | unref () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
| void | unref_nodelete () const |
| Decrement the reference count by one, indicating that a pointer to this object is referencing it. | |
| int | referenceCount () const |
| Return the number pointers currently referencing this object. | |
| void | addObserver (Observer *observer) |
| Add a Observer that is observering this object, notify the Observer when this object gets deleted. | |
| void | removeObserver (Observer *observer) |
| Add a Observer that is observering this object, notify the Observer when this object gets deleted. | |
Static Public Member Functions | |
| static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
| Set whether reference counting should be use a mutex to create thread reference counting. | |
| static bool | getThreadSafeReferenceCounting () |
| Get whether reference counting is active. | |
| static void | setDeleteHandler (DeleteHandler *handler) |
| Set a DeleteHandler to which deletion of all referenced counted objects will be delegated to. | |
| static DeleteHandler * | getDeleteHandler () |
| Get a DeleteHandler. | |
Protected Member Functions | |
| virtual | ~Referenced () |
| void | deleteUsingDeleteHandler () const |
Protected Attributes | |
| OpenThreads::Mutex * | _refMutex |
| int | _refCount |
| void * | _observers |
Friends | |
| class | DeleteHandler |
| osg::Referenced::Referenced | ( | ) |
| osg::Referenced::Referenced | ( | bool | threadSafeRefUnref | ) | [explicit] |
| osg::Referenced::Referenced | ( | const Referenced & | ) |
| virtual osg::Referenced::~Referenced | ( | ) | [protected, virtual] |
| Referenced& osg::Referenced::operator= | ( | const Referenced & | ) | [inline] |
| virtual void osg::Referenced::setThreadSafeRefUnref | ( | bool | threadSafe | ) | [virtual] |
Set whether to use a mutex to ensure ref() and unref() are thread safe.
Reimplemented in osg::Drawable, osg::Geode, osg::Group, osg::LightSource, osg::Node, osg::Program, osg::StateSet, osg::TexGenNode, osgSim::OverlayNode, osgText::Font, osgText::Font::GlyphTexture, and osgText::Text.
| bool osg::Referenced::getThreadSafeRefUnref | ( | ) | const [inline] |
| 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.
| 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.
| 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 resonsible 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 | ) |
| void osg::Referenced::removeObserver | ( | Observer * | observer | ) |
| 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.
| void osg::Referenced::deleteUsingDeleteHandler | ( | ) | const [protected] |
friend class DeleteHandler [friend] |
OpenThreads::Mutex* osg::Referenced::_refMutex [mutable, protected] |
int osg::Referenced::_refCount [mutable, protected] |
void* osg::Referenced::_observers [protected] |