openscenegraph
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
osg::Referenced Class Reference

#include <Referenced>

Inheritance diagram for osg::Referenced:
osg::ApplicationUsage osg::AttributeDispatch osg::AttributeDispatchers osg::CullSettings::ClampProjectionMatrixCallback osg::CullingSet osg::DisplaySettings osg::FrameStamp osg::GLBufferObjectSet osg::GLExtensions osg::GeometryCostEstimator osg::GraphicsContext::ResizedCallback osg::GraphicsContext::SwapCallback osg::GraphicsContext::Traits osg::GraphicsContext::WindowingSystemInterface osg::GraphicsContext::WindowingSystemInterfaces osg::GraphicsCostEstimator osg::GraphicsObject osg::GraphicsObjectManager osg::Identifier osg::Image::DimensionsChangedCallback osg::LineSegment osg::NodeVisitor::DatabaseRequestHandler osg::NodeVisitor::ImageRequestHandler osg::NotifyHandler osg::Object osg::ObserverSet osg::Operation osg::OperationQueue osg::OperationThread osg::Program::PerContextProgram osg::ProgramCostEstimator osg::RefBlock osg::RefBlockCount osg::Shader::PerContextShader osg::Shader::ShaderObjects osg::State osg::State::DynamicObjectRenderingCompletedCallback osg::Stats osg::TestResult osg::Texture1D::SubloadCallback osg::Texture2D::SubloadCallback osg::Texture2DArray::SubloadCallback osg::Texture3D::SubloadCallback osg::TextureCostEstimator osg::TextureCubeMap::SubloadCallback osg::TextureObjectSet osg::TextureRectangle::SubloadCallback osg::VertexArrayState osg::VertexArrayState::ArrayDispatch osg::View::Slave::UpdateSlaveCallback osgAnimation::ActionVisitor osgAnimation::KeyframeContainer osgAnimation::Motion osgAnimation::Sampler osgAnimation::Target osgAnimation::TemplateCompositeSampler< VALUESAMPLERTYPE, TIMESAMPLERTYPE > osgDB::AuthenticationDetails osgDB::AuthenticationMap osgDB::BaseCompressor osgDB::BaseSerializer osgDB::DatabasePager::DatabaseRequest osgDB::DatabasePager::DatabaseThread osgDB::DatabasePager::PagedLODList osgDB::DatabasePager::RequestQueue osgDB::DeprecatedDotOsgWrapperManager osgDB::DotOsgWrapper osgDB::DynamicLibrary osgDB::FileCache osgDB::FileLocationCallback osgDB::FindFileCallback osgDB::FinishedObjectReadCallback osgDB::ImageOptions::TexCoordRange osgDB::ImagePager::ImageRequest osgDB::ImagePager::ImageThread osgDB::ImagePager::RequestQueue osgDB::InputException osgDB::InputIterator osgDB::MethodObject osgDB::ObjectCache osgDB::ObjectWrapper osgDB::ObjectWrapperManager osgDB::OutputException osgDB::OutputIterator osgDB::ReadFileCallback osgDB::ReaderWriterInfo osgDB::Registry osgDB::Registry::ReadFunctor osgDB::WriteFileCallback osgDB::XmlNode osgFX::Registry osgFX::Technique osgGA::AnimationPathManipulator::AnimationCompletedCallback osgGA::CameraManipulator::CoordinateFrameCallback osgGA::EventQueue osgGA::PointerData osgGA::StandardManipulator::AnimationData osgManipulator::CommandManager osgManipulator::Constraint osgManipulator::MotionCommand osgManipulator::Projector osgPresentation::FilePathData osgPresentation::HUDSettings osgPresentation::LayerAttributes osgPresentation::LayerCallback osgPresentation::ObjectOperator osgShadow::ParallelSplitShadowMap::FragmentShaderGenerator osgShadow::ViewDependentShadowMap::LightData osgShadow::ViewDependentShadowMap::ShadowData osgShadow::ViewDependentShadowMap::ViewDependentData osgShadow::ViewDependentShadowTechnique::ViewData osgSim::GeographicLocation osgSim::ImpostorSpriteManager osgSim::OverlayNode::OverlayData osgSim::ScalarBar::ScalarPrinter osgSim::ScalarsToColors osgTerrain::GeometryPool osgTerrain::GeometryTechnique::BufferData osgTerrain::TerrainTile::TileLoadedCallback osgTerrain::ValidDataOperator osgText::Font::FontImplementation osgText::Glyph3D osgText::Glyph::TextureInfo osgText::GlyphGeometry osgUtil::CubeMapGenerator osgUtil::CullVisitor::Identifier osgUtil::DelaunayTriangulator osgUtil::EdgeCollector::Edge osgUtil::EdgeCollector::Edgeloop osgUtil::EdgeCollector::Point osgUtil::EdgeCollector::Triangle osgUtil::IncrementalCompileOperation::CompileCompletedCallback osgUtil::IncrementalCompileOperation::CompileOp osgUtil::IncrementalCompileOperation::CompileSet osgUtil::IntersectVisitor::IntersectState osgUtil::IntersectionVisitor::ReadCallback osgUtil::Intersector 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::TangentSpaceGenerator osgUtil::Tessellator osgUtil::Tessellator::Prim osgViewer::DepthPartitionSettings osgViewer::GraphicsWindowWin32::WindowData osgViewer::GraphicsWindowX11::WindowData osgViewer::OpenGLQuerySupport osgViewer::Scene osgViewer::ScreenCaptureHandler::CaptureOperation osgVolume::TileData osgVolume::VolumeScene::ViewData osgWidget::Callback osgWidget::CallbackInterface osgWidget::ScriptEngine

Public Member Functions

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

Static Public Member Functions

static OpenThreads::MutexgetGlobalReferencedMutex ()
 
static void setDeleteHandler (DeleteHandler *handler)
 
static DeleteHandlergetDeleteHandler ()
 

Protected Member Functions

virtual ~Referenced ()
 
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
 
void deleteUsingDeleteHandler () const
 

Protected Attributes

OpenThreads::AtomicPtr _observerSet
 
OpenThreads::Atomic _refCount
 

Friends

class DeleteHandler
 

Detailed Description

Base class for providing reference counted objects.

Constructor & Destructor Documentation

◆ Referenced() [1/3]

osg::Referenced::Referenced ( )

◆ Referenced() [2/3]

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

Deprecated, Referenced is now always uses thread safe ref/unref, use default Referenced() constructor instead

◆ Referenced() [3/3]

osg::Referenced::Referenced ( const Referenced )

◆ ~Referenced()

virtual osg::Referenced::~Referenced ( )
protectedvirtual

Member Function Documentation

◆ addObserver()

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

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

◆ deleteUsingDeleteHandler()

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

◆ getDeleteHandler()

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

Get a DeleteHandler.

◆ getGlobalReferencedMutex()

static OpenThreads::Mutex * osg::Referenced::getGlobalReferencedMutex ( )
static

Get the optional global Referenced mutex, this can be shared between all osg::Referenced.

◆ getObserverSet()

ObserverSet * osg::Referenced::getObserverSet ( ) const
inline

Get the ObserverSet if one is attached, otherwise return NULL.

◆ getOrCreateObserverSet()

ObserverSet * osg::Referenced::getOrCreateObserverSet ( ) const

Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet.

◆ getRefMutex()

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

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

◆ getThreadSafeRefUnref()

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

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

◆ operator=()

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

◆ ref()

int osg::Referenced::ref ( ) const
inline

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

◆ referenceCount()

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

Return the number of pointers currently referencing this object.

◆ removeObserver()

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

Remove Observer that is observing this object.

◆ setDeleteHandler()

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

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

◆ setThreadSafeRefUnref()

virtual void osg::Referenced::setThreadSafeRefUnref ( bool  )
inlinevirtual

◆ signalObserversAndDelete()

void osg::Referenced::signalObserversAndDelete ( bool  signalDelete,
bool  doDelete 
) const
protected

◆ unref()

int osg::Referenced::unref ( ) const
inline

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

◆ unref_nodelete()

int osg::Referenced::unref_nodelete ( ) const

Decrement the reference count by one, indicating that a pointer to this object is no longer 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 latter can lead to memory leaks.

Friends And Related Symbol Documentation

◆ DeleteHandler

friend class DeleteHandler
friend

Member Data Documentation

◆ _observerSet

OpenThreads::AtomicPtr osg::Referenced::_observerSet
mutableprotected

◆ _refCount

OpenThreads::Atomic osg::Referenced::_refCount
mutableprotected

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