Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > aa937981cccb78f06312e3cc380fe202 > files > 1169

OpenSceneGraph-devel-2.8.3-3.fc14.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>OpenSceneGraph: osg::Referenced Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath">
    <ul>
      <li><a class="el" href="a01628.html">osg</a>      </li>
      <li><a class="el" href="a00627.html">osg::Referenced</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<h1>osg::Referenced Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="osg::Referenced" -->
<p>Base class from providing referencing counted objects.  
<a href="#_details">More...</a></p>

<p>Inherited by <a class="el" href="a00028.html">osg::ApplicationUsage</a>, <a class="el" href="a00270.html">osg::BlendColor::Extensions</a>, <a class="el" href="a00271.html">osg::BlendEquation::Extensions</a>, <a class="el" href="a00272.html">osg::BlendFunc::Extensions</a>, <a class="el" href="a00265.html">osg::BufferObject::Extensions</a>, <a class="el" href="a00269.html">osg::ClampColor::Extensions</a>, <a class="el" href="a00179.html">osg::CullingSet</a>, <a class="el" href="a00102.html">osg::CullSettings::ClampProjectionMatrixCallback</a>, <a class="el" href="a00212.html">osg::DisplaySettings</a>, <a class="el" href="a00266.html">osg::Drawable::Extensions</a>, <a class="el" href="a00281.html">osg::FBOExtensions</a>, <a class="el" href="a00268.html">osg::FragmentProgram::Extensions</a>, <a class="el" href="a00307.html">osg::FrameStamp</a>, <a class="el" href="a00320.html">osg::GL2Extensions</a>, <a class="el" href="a00658.html">osg::GraphicsContext::ResizedCallback</a>, <a class="el" href="a00919.html">osg::GraphicsContext::Traits</a>, <a class="el" href="a01109.html">osg::GraphicsContext::WindowingSystemInterface</a>, <a class="el" href="a00443.html">osg::LineSegment</a>, <a class="el" href="a00263.html">osg::Multisample::Extensions</a>, <a class="el" href="a00497.html">osg::NodeVisitor</a><code> [virtual]</code>, <a class="el" href="a00198.html">osg::NodeVisitor::DatabaseRequestHandler</a>, <a class="el" href="a00359.html">osg::NodeVisitor::ImageRequestHandler</a>, <a class="el" href="a00500.html">osg::Object</a>, <a class="el" href="a00513.html">osg::Operation</a><code> [virtual]</code>, <a class="el" href="a00515.html">osg::OperationQueue</a>, <a class="el" href="a00516.html">osg::OperationThread</a>, <a class="el" href="a00267.html">osg::Point::Extensions</a>, <a class="el" href="a00546.html">osg::Program::PerContextProgram</a>, <a class="el" href="a00625.html">osg::RefBlock</a><code> [virtual]</code>, <a class="el" href="a00626.html">osg::RefBlockCount</a><code> [virtual]</code>, <a class="el" href="a00547.html">osg::Shader::PerContextShader</a>, <a class="el" href="a00742.html">osg::State</a>, <a class="el" href="a00235.html">osg::State::DynamicObjectRenderingCompletedCallback</a>, <a class="el" href="a00820.html">osg::Stats</a>, <a class="el" href="a00273.html">osg::StencilTwoSided::Extensions</a>, <a class="el" href="a00845.html">osg::Texture1D::SubloadCallback</a>, <a class="el" href="a00847.html">osg::Texture2D::SubloadCallback</a>, <a class="el" href="a00275.html">osg::Texture2DArray::Extensions</a>, <a class="el" href="a00843.html">osg::Texture2DArray::SubloadCallback</a>, <a class="el" href="a00276.html">osg::Texture3D::Extensions</a>, <a class="el" href="a00842.html">osg::Texture3D::SubloadCallback</a>, <a class="el" href="a00274.html">osg::Texture::Extensions</a>, <a class="el" href="a00904.html">osg::Texture::TextureObject</a>, <a class="el" href="a00277.html">osg::TextureCubeMap::Extensions</a>, <a class="el" href="a00846.html">osg::TextureCubeMap::SubloadCallback</a>, <a class="el" href="a00844.html">osg::TextureRectangle::SubloadCallback</a>, <a class="el" href="a00264.html">osg::VertexProgram::Extensions</a>, <a class="el" href="a00009.html">osgAnimation::ActionVisitor</a>, <a class="el" href="a00099.html">osgAnimation::Channel</a>, <a class="el" href="a00421.html">osgAnimation::KeyframeContainer</a>, <a class="el" href="a00480.html">osgAnimation::Motion</a>, <a class="el" href="a00662.html">osgAnimation::RigTransform</a>, <a class="el" href="a00671.html">osgAnimation::Sampler</a>, <a class="el" href="a00857.html">osgAnimation::Target</a>, <a class="el" href="a00861.html">osgAnimation::TemplateCompositeSampler&lt; VALUESAMPLERTYPE, TIMESAMPLERTYPE &gt;</a>, <a class="el" href="a00043.html">osgDB::AuthenticationDetails</a>, <a class="el" href="a00044.html">osgDB::AuthenticationMap</a>, <a class="el" href="a00197.html">osgDB::DatabasePager::DatabaseRequest</a>, <a class="el" href="a00199.html">osgDB::DatabasePager::DatabaseThread</a>, <a class="el" href="a00656.html">osgDB::DatabasePager::RequestQueue</a>, <a class="el" href="a00214.html">osgDB::DotOsgWrapper</a>, <a class="el" href="a00234.html">osgDB::DynamicLibrary</a>, <a class="el" href="a00285.html">osgDB::FileCache</a>, <a class="el" href="a00885.html">osgDB::ImageOptions::TexCoordRange</a>, <a class="el" href="a00358.html">osgDB::ImagePager::ImageRequest</a>, <a class="el" href="a00362.html">osgDB::ImagePager::ImageThread</a>, <a class="el" href="a00657.html">osgDB::ImagePager::RequestQueue</a>, <a class="el" href="a00617.html">osgDB::ReaderWriterInfo</a>, <a class="el" href="a00637.html">osgDB::Registry</a>, <a class="el" href="a00618.html">osgDB::Registry::ReadFileCallback</a><code> [virtual]</code>, <a class="el" href="a01112.html">osgDB::Registry::WriteFileCallback</a><code> [virtual]</code>, <a class="el" href="a00698.html">osgDB::Serializer</a>, <a class="el" href="a00638.html">osgFX::Registry</a>, <a class="el" href="a00858.html">osgFX::Technique</a>, <a class="el" href="a00257.html">osgGA::EventQueue</a>, <a class="el" href="a00167.html">osgGA::MatrixManipulator::CoordinateFrameCallback</a>, <a class="el" href="a00116.html">osgManipulator::CommandManager</a>, <a class="el" href="a00143.html">osgManipulator::Constraint</a>, <a class="el" href="a00481.html">osgManipulator::MotionCommand</a>, <a class="el" href="a00584.html">osgManipulator::Projector</a>, <a class="el" href="a00303.html">osgShadow::ParallelSplitShadowMap::FragmentShaderGenerator</a>, <a class="el" href="a01088.html">osgShadow::ViewDependentShadowTechnique::ViewData</a>, <a class="el" href="a00312.html">osgSim::GeographicLocation</a>, <a class="el" href="a00365.html">osgSim::ImpostorSpriteManager</a>, <a class="el" href="a00531.html">osgSim::OverlayNode::OverlayData</a>, <a class="el" href="a00674.html">osgSim::ScalarBar::ScalarPrinter</a>, <a class="el" href="a00676.html">osgSim::ScalarsToColors</a>, <a class="el" href="a00912.html">osgTerrain::TerrainTile::TileLoadedCallback</a>, <a class="el" href="a01052.html">osgTerrain::ValidDataOperator</a>, <a class="el" href="a00299.html">osgText::Font3D::Font3DImplementation</a>, <a class="el" href="a00324.html">osgText::Font3D::Glyph3D</a>, <a class="el" href="a00300.html">osgText::Font::FontImplementation</a>, <a class="el" href="a00176.html">osgUtil::CubeMapGenerator</a>, <a class="el" href="a00203.html">osgUtil::DelaunayTriangulator</a>, <a class="el" href="a00237.html">osgUtil::EdgeCollector::Edge</a>, <a class="el" href="a00239.html">osgUtil::EdgeCollector::Edgeloop</a>, <a class="el" href="a00561.html">osgUtil::EdgeCollector::Point</a>, <a class="el" href="a00935.html">osgUtil::EdgeCollector::Triangle</a>, <a class="el" href="a00614.html">osgUtil::IntersectionVisitor::ReadCallback</a>, <a class="el" href="a00402.html">osgUtil::Intersector</a>, <a class="el" href="a00404.html">osgUtil::IntersectVisitor::IntersectState</a>, <a class="el" href="a00414.html">osgUtil::Optimizer::IsOperationPermissibleForObjectCallback</a>, <a class="el" href="a00035.html">osgUtil::Optimizer::TextureAtlasBuilder::Atlas</a>, <a class="el" href="a00727.html">osgUtil::Optimizer::TextureAtlasBuilder::Source</a>, <a class="el" href="a00221.html">osgUtil::RenderBin::DrawCallback</a>, <a class="el" href="a00726.html">osgUtil::RenderBin::SortCallback</a>, <a class="el" href="a00654.html">osgUtil::RenderLeaf</a>, <a class="el" href="a00135.html">osgUtil::SceneView::ComputeStereoMatricesCallback</a>, <a class="el" href="a00148.html">osgUtil::Simplifier::ContinueSimplificationCallback</a>, <a class="el" href="a00745.html">osgUtil::StateGraph</a>, <a class="el" href="a00856.html">osgUtil::TangentSpaceGenerator</a>, <a class="el" href="a00884.html">osgUtil::Tessellator</a>, <a class="el" href="a00576.html">osgUtil::Tessellator::Prim</a>, <a class="el" href="a01107.html">osgViewer::GraphicsWindowWin32::WindowData</a>, <a class="el" href="a01108.html">osgViewer::GraphicsWindowX11::WindowData</a>, <a class="el" href="a00683.html">osgViewer::Scene</a>, <a class="el" href="a00095.html">osgViewer::ScreenCaptureHandler::CaptureOperation</a>, <a class="el" href="a00083.html">osgWidget::Callback</a>, <a class="el" href="a00086.html">osgWidget::CallbackInterface</a>, and <a class="el" href="a00691.html">osgWidget::ScriptEngine</a>.</p>

<p><a href="a02220.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a787d1f115f3d9751072e9072d08046b1">Referenced</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a09344466ff0330d2737211a264ecbf51">Referenced</a> (bool threadSafeRefUnref)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a6ef63090fa2f66d166683a4559445c45">Referenced</a> (const <a class="el" href="a00627.html">Referenced</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00627.html">Referenced</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a3174df2fbc79ad22909f566bddb80dfb">operator=</a> (const <a class="el" href="a00627.html">Referenced</a> &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#aafc0e0779a54c6fbd46bdade701d7fa2">setThreadSafeRefUnref</a> (bool threadSafe)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set whether to use a mutex to ensure <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a> and <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref()</a> are thread safe.  <a href="#aafc0e0779a54c6fbd46bdade701d7fa2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a5549db03ef2957000d25aff263420aaa">getThreadSafeRefUnref</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get whether a mutex is used to ensure <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a> and <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref()</a> are thread safe.  <a href="#a5549db03ef2957000d25aff263420aaa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">OpenThreads::Mutex *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a73e477cb7f9215641d88c50f35f7e0de">getRefMutex</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the mutex used to ensure thread safety of <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a>/unref().  <a href="#a73e477cb7f9215641d88c50f35f7e0de"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4">ref</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Increment the reference count by one, indicating that this object has another pointer which is referencing it.  <a href="#acafcbbae9e9d8bfcbc811cc6c36d1cf4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68">unref</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrement the reference count by one, indicating that a pointer to this object is referencing it.  <a href="#a0ee3c1293cceac54bfaabe7c541bcb68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#aead7d535a882a09a40a46b5c4026e9c2">unref_nodelete</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Decrement the reference count by one, indicating that a pointer to this object is referencing it.  <a href="#aead7d535a882a09a40a46b5c4026e9c2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#ace354cb67d548ff2bb907f5e3fb19fb0">referenceCount</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number pointers currently referencing this object.  <a href="#ace354cb67d548ff2bb907f5e3fb19fb0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a6ec2390e110ae9e25af70f15a052f02e">addObserver</a> (<a class="el" href="a00506.html">Observer</a> *observer) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a <a class="el" href="a00506.html">Observer</a> that is observing this object, notify the <a class="el" href="a00506.html">Observer</a> when this object gets deleted.  <a href="#a6ec2390e110ae9e25af70f15a052f02e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a9c6a96c249f699ba18697c2734b6954a">removeObserver</a> (<a class="el" href="a00506.html">Observer</a> *observer) const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add a <a class="el" href="a00506.html">Observer</a> that is observing this object, notify the <a class="el" href="a00506.html">Observer</a> when this object gets deleted.  <a href="#a9c6a96c249f699ba18697c2734b6954a"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static OpenThreads::Mutex *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#ad573cc41a3786cb1653f1112b7c7d168">getGlobalReferencedMutex</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the optional global <a class="el" href="a00627.html" title="Base class from providing referencing counted objects.">Referenced</a> mutex, this can be shared between all <a class="el" href="a00627.html" title="Base class from providing referencing counted objects.">osg::Referenced</a>.  <a href="#ad573cc41a3786cb1653f1112b7c7d168"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#ae92a0e300681130102517ccc5bb2dc87">setThreadSafeReferenceCounting</a> (bool enableThreadSafeReferenceCounting)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set whether reference counting should be use a mutex to create thread reference counting.  <a href="#ae92a0e300681130102517ccc5bb2dc87"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#af2b3dea028a091acb70b5ead1963fe8f">getThreadSafeReferenceCounting</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get whether reference counting is active.  <a href="#af2b3dea028a091acb70b5ead1963fe8f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#aecab01a3e64b088ef106c46a53efd009">setDeleteHandler</a> (<a class="el" href="a00204.html">DeleteHandler</a> *handler)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a <a class="el" href="a00204.html" title="Class for override the default delete behavior so that users can implement their own object deletion ...">DeleteHandler</a> to which deletion of all referenced counted objects will be delegated to.  <a href="#aecab01a3e64b088ef106c46a53efd009"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00204.html">DeleteHandler</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a0ad5ef7d87321dd34379d43e98cbba1f">getDeleteHandler</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a <a class="el" href="a00204.html" title="Class for override the default delete behavior so that users can implement their own object deletion ...">DeleteHandler</a>.  <a href="#a0ad5ef7d87321dd34379d43e98cbba1f"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a6b47b705aee3c00a152000bf6f581ecf">~Referenced</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#ac49e7d30d71cbcde3f3789aed138802a">deleteUsingDeleteHandler</a> () const </td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">OpenThreads::AtomicPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#a88aad6e5a37208572d51d57fd2b29ee4">_observerSetDataPtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">OpenThreads::Atomic&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#ad14ee22c832093e1873099cd623f1c9e">_refCount</a></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00627.html#aeb0764a6e6cbfbe82ab769ea38d22636">DeleteHandler</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Base class from providing referencing counted objects. </p>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a787d1f115f3d9751072e9072d08046b1"></a><!-- doxytag: member="osg::Referenced::Referenced" ref="a787d1f115f3d9751072e9072d08046b1" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osg::Referenced::Referenced </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a09344466ff0330d2737211a264ecbf51"></a><!-- doxytag: member="osg::Referenced::Referenced" ref="a09344466ff0330d2737211a264ecbf51" args="(bool threadSafeRefUnref)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osg::Referenced::Referenced </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>threadSafeRefUnref</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6ef63090fa2f66d166683a4559445c45"></a><!-- doxytag: member="osg::Referenced::Referenced" ref="a6ef63090fa2f66d166683a4559445c45" args="(const Referenced &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">osg::Referenced::Referenced </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00627.html">Referenced</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a6b47b705aee3c00a152000bf6f581ecf"></a><!-- doxytag: member="osg::Referenced::~Referenced" ref="a6b47b705aee3c00a152000bf6f581ecf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual osg::Referenced::~Referenced </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6ec2390e110ae9e25af70f15a052f02e"></a><!-- doxytag: member="osg::Referenced::addObserver" ref="a6ec2390e110ae9e25af70f15a052f02e" args="(Observer *observer) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Referenced::addObserver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00506.html">Observer</a> *&nbsp;</td>
          <td class="paramname"> <em>observer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a <a class="el" href="a00506.html">Observer</a> that is observing this object, notify the <a class="el" href="a00506.html">Observer</a> when this object gets deleted. </p>

<p>Referenced by <a class="el" href="a00742.html#a2346a030c485980b68e45c277c3744fc">osg::State::setLastAppliedProgramObject()</a>.</p>

</div>
</div>
<a class="anchor" id="ac49e7d30d71cbcde3f3789aed138802a"></a><!-- doxytag: member="osg::Referenced::deleteUsingDeleteHandler" ref="ac49e7d30d71cbcde3f3789aed138802a" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Referenced::deleteUsingDeleteHandler </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68">unref()</a>.</p>

</div>
</div>
<a class="anchor" id="a0ad5ef7d87321dd34379d43e98cbba1f"></a><!-- doxytag: member="osg::Referenced::getDeleteHandler" ref="a0ad5ef7d87321dd34379d43e98cbba1f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00204.html">DeleteHandler</a>* osg::Referenced::getDeleteHandler </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get a <a class="el" href="a00204.html" title="Class for override the default delete behavior so that users can implement their own object deletion ...">DeleteHandler</a>. </p>

<p>Referenced by <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68">unref()</a>.</p>

</div>
</div>
<a class="anchor" id="ad573cc41a3786cb1653f1112b7c7d168"></a><!-- doxytag: member="osg::Referenced::getGlobalReferencedMutex" ref="ad573cc41a3786cb1653f1112b7c7d168" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static OpenThreads::Mutex* osg::Referenced::getGlobalReferencedMutex </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the optional global <a class="el" href="a00627.html" title="Base class from providing referencing counted objects.">Referenced</a> mutex, this can be shared between all <a class="el" href="a00627.html" title="Base class from providing referencing counted objects.">osg::Referenced</a>. </p>

</div>
</div>
<a class="anchor" id="a73e477cb7f9215641d88c50f35f7e0de"></a><!-- doxytag: member="osg::Referenced::getRefMutex" ref="a73e477cb7f9215641d88c50f35f7e0de" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OpenThreads::Mutex* osg::Referenced::getRefMutex </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the mutex used to ensure thread safety of <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a>/unref(). </p>

</div>
</div>
<a class="anchor" id="af2b3dea028a091acb70b5ead1963fe8f"></a><!-- doxytag: member="osg::Referenced::getThreadSafeReferenceCounting" ref="af2b3dea028a091acb70b5ead1963fe8f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static bool osg::Referenced::getThreadSafeReferenceCounting </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get whether reference counting is active. </p>

</div>
</div>
<a class="anchor" id="a5549db03ef2957000d25aff263420aaa"></a><!-- doxytag: member="osg::Referenced::getThreadSafeRefUnref" ref="a5549db03ef2957000d25aff263420aaa" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool osg::Referenced::getThreadSafeRefUnref </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get whether a mutex is used to ensure <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a> and <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref()</a> are thread safe. </p>

</div>
</div>
<a class="anchor" id="a3174df2fbc79ad22909f566bddb80dfb"></a><!-- doxytag: member="osg::Referenced::operator=" ref="a3174df2fbc79ad22909f566bddb80dfb" args="(const Referenced &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00627.html">Referenced</a>&amp; osg::Referenced::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="a00627.html">Referenced</a> &amp;&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="acafcbbae9e9d8bfcbc811cc6c36d1cf4"></a><!-- doxytag: member="osg::Referenced::ref" ref="acafcbbae9e9d8bfcbc811cc6c36d1cf4" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Referenced::ref </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>References <a class="el" href="a00627.html#ad14ee22c832093e1873099cd623f1c9e">_refCount</a>.</p>

<p>Referenced by <a class="el" href="a01628.html#a3efa9e06543e44cf2d109679ebe674e4">osg::intrusive_ptr_add_ref()</a>.</p>

</div>
</div>
<a class="anchor" id="ace354cb67d548ff2bb907f5e3fb19fb0"></a><!-- doxytag: member="osg::Referenced::referenceCount" ref="ace354cb67d548ff2bb907f5e3fb19fb0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int osg::Referenced::referenceCount </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the number pointers currently referencing this object. </p>

</div>
</div>
<a class="anchor" id="a9c6a96c249f699ba18697c2734b6954a"></a><!-- doxytag: member="osg::Referenced::removeObserver" ref="a9c6a96c249f699ba18697c2734b6954a" args="(Observer *observer) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Referenced::removeObserver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00506.html">Observer</a> *&nbsp;</td>
          <td class="paramname"> <em>observer</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Add a <a class="el" href="a00506.html">Observer</a> that is observing this object, notify the <a class="el" href="a00506.html">Observer</a> when this object gets deleted. </p>

</div>
</div>
<a class="anchor" id="aecab01a3e64b088ef106c46a53efd009"></a><!-- doxytag: member="osg::Referenced::setDeleteHandler" ref="aecab01a3e64b088ef106c46a53efd009" args="(DeleteHandler *handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Referenced::setDeleteHandler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00204.html">DeleteHandler</a> *&nbsp;</td>
          <td class="paramname"> <em>handler</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set a <a class="el" href="a00204.html" title="Class for override the default delete behavior so that users can implement their own object deletion ...">DeleteHandler</a> to which deletion of all referenced counted objects will be delegated to. </p>

</div>
</div>
<a class="anchor" id="ae92a0e300681130102517ccc5bb2dc87"></a><!-- doxytag: member="osg::Referenced::setThreadSafeReferenceCounting" ref="ae92a0e300681130102517ccc5bb2dc87" args="(bool enableThreadSafeReferenceCounting)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void osg::Referenced::setThreadSafeReferenceCounting </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>enableThreadSafeReferenceCounting</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set whether reference counting should be use a mutex to create thread reference counting. </p>

</div>
</div>
<a class="anchor" id="aafc0e0779a54c6fbd46bdade701d7fa2"></a><!-- doxytag: member="osg::Referenced::setThreadSafeRefUnref" ref="aafc0e0779a54c6fbd46bdade701d7fa2" args="(bool threadSafe)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void osg::Referenced::setThreadSafeRefUnref </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>threadSafe</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set whether to use a mutex to ensure <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4" title="Increment the reference count by one, indicating that this object has another pointer which is refere...">ref()</a> and <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref()</a> are thread safe. </p>

<p>Reimplemented in <a class="el" href="a00216.html#a9a699c0ce7decce06d541e06d4067199">osg::Drawable</a>, <a class="el" href="a00311.html#a462be7f5ffe05a63af24efdc3e2f46fa">osg::Geode</a>, <a class="el" href="a00338.html#a6b86895eb8b3ab999cd6a46f5aaaae64">osg::Group</a>, <a class="el" href="a00434.html#a9a919a7b5eb8c8d34714903018b1f3e0">osg::LightSource</a>, <a class="el" href="a00491.html#aaf10384628ac00e159195d0853e03f5e">osg::Node</a>, <a class="el" href="a00580.html#a579f5abbeae7ad5cd430e501a53c87fc">osg::Program</a>, <a class="el" href="a00746.html#a855dadb4a6f6a971e939b2b9e1c6162d">osg::StateSet</a>, <a class="el" href="a00890.html#a36e96e657117fced6a98dbe2b50afe05">osg::TexGenNode</a>, <a class="el" href="a00532.html#afe693b2f38854da138754ccfa9214160">osgSim::OverlayNode</a>, <a class="el" href="a00531.html#a2ade91e90375ac354af555459de55822">osgSim::OverlayNode::OverlayData</a>, <a class="el" href="a00297.html#aca7af8e53deae2d9e7aebeb217d3f3cf">osgText::Font</a>, <a class="el" href="a00327.html#adba0809cd30ab5bd3279b6433d11e53e">osgText::Font::GlyphTexture</a>, <a class="el" href="a00298.html#aba73febf97187253b94312887d5766d6">osgText::Font3D</a>, <a class="el" href="a00324.html#a028beea1f73b783cc268abce3cfe3bc7">osgText::Font3D::Glyph3D</a>, <a class="el" href="a00892.html#afe5b1590eee9bb9d354ab1f31c8d73de">osgText::Text</a>, <a class="el" href="a00893.html#a3d7fd0e2d11b41ed2e261d691b0669b1">osgText::Text3D</a>, and <a class="el" href="a00894.html#a4a556861372bde7c10a07df0c052c5fe">osgText::TextBase</a>.</p>

</div>
</div>
<a class="anchor" id="a0ee3c1293cceac54bfaabe7c541bcb68"></a><!-- doxytag: member="osg::Referenced::unref" ref="a0ee3c1293cceac54bfaabe7c541bcb68" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Referenced::unref </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

<p>References <a class="el" href="a00627.html#ad14ee22c832093e1873099cd623f1c9e">_refCount</a>, <a class="el" href="a00627.html#ac49e7d30d71cbcde3f3789aed138802a">deleteUsingDeleteHandler()</a>, and <a class="el" href="a00627.html#a0ad5ef7d87321dd34379d43e98cbba1f">getDeleteHandler()</a>.</p>

<p>Referenced by <a class="el" href="a01628.html#a9cfa8cffac83949b0009c8dfd8428f7b">osg::intrusive_ptr_release()</a>.</p>

</div>
</div>
<a class="anchor" id="aead7d535a882a09a40a46b5c4026e9c2"></a><!-- doxytag: member="osg::Referenced::unref_nodelete" ref="aead7d535a882a09a40a46b5c4026e9c2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void osg::Referenced::unref_nodelete </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decrement the reference count by one, indicating that a pointer to this object is referencing it. </p>
<p>However, do not delete it, even if ref count goes to 0. Warning, <a class="el" href="a00627.html#aead7d535a882a09a40a46b5c4026e9c2" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref_nodelete()</a> should only be called if the user knows exactly who will be responsible for, one should prefer <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref()</a> over <a class="el" href="a00627.html#aead7d535a882a09a40a46b5c4026e9c2" title="Decrement the reference count by one, indicating that a pointer to this object is referencing it...">unref_nodelete()</a> as the later can lead to memory leaks. </p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="aeb0764a6e6cbfbe82ab769ea38d22636"></a><!-- doxytag: member="osg::Referenced::DeleteHandler" ref="aeb0764a6e6cbfbe82ab769ea38d22636" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="a00204.html">DeleteHandler</a><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a88aad6e5a37208572d51d57fd2b29ee4"></a><!-- doxytag: member="osg::Referenced::_observerSetDataPtr" ref="a88aad6e5a37208572d51d57fd2b29ee4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OpenThreads::AtomicPtr <a class="el" href="a00627.html#a88aad6e5a37208572d51d57fd2b29ee4">osg::Referenced::_observerSetDataPtr</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad14ee22c832093e1873099cd623f1c9e"></a><!-- doxytag: member="osg::Referenced::_refCount" ref="ad14ee22c832093e1873099cd623f1c9e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">OpenThreads::Atomic <a class="el" href="a00627.html#ad14ee22c832093e1873099cd623f1c9e">osg::Referenced::_refCount</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Referenced by <a class="el" href="a00627.html#acafcbbae9e9d8bfcbc811cc6c36d1cf4">ref()</a>, and <a class="el" href="a00627.html#a0ee3c1293cceac54bfaabe7c541bcb68">unref()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>osg/<a class="el" href="a01238.html">Referenced</a></li>
</ul>
</div>
<hr>
<table border="0"><tr><td>
  <img src="osg32-32.png" alt="osg logo" />
</td><td>
  <address><small>Generated at Thu Aug 19 2010 16:22:43 for the <a href="http://www.openscenegraph.org/">OpenSceneGraph</a>
by <a href="http://www.doxygen.org">doxygen</a> 1.7.1.</small></address>
<!-- Dimitri van Heesch's e-mail address removed, lest he get messages on the OpenSceneGraph -->
</td></tr></table>
</body>
</html>