|
openscenegraph
|
Public Member Functions | |
| Referenced () | |
| Referenced (bool threadSafeRefUnref) | |
| Referenced (const Referenced &) | |
| Referenced & | operator= (const Referenced &) |
| virtual void | setThreadSafeRefUnref (bool threadSafe) |
| bool | getThreadSafeRefUnref () const |
| OpenThreads::Mutex * | getRefMutex () const |
| int | ref () const |
| int | unref () const |
| int | unref_nodelete () const |
| int | referenceCount () const |
| ObserverSet * | getObserverSet () const |
| ObserverSet * | getOrCreateObserverSet () const |
| void | addObserver (Observer *observer) const |
| void | removeObserver (Observer *observer) const |
Static Public Member Functions | |
| static OpenThreads::Mutex * | getGlobalReferencedMutex () |
| static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
| static bool | getThreadSafeReferenceCounting () |
| static void | setDeleteHandler (DeleteHandler *handler) |
| static DeleteHandler * | getDeleteHandler () |
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 |
Base class for providing reference counted objects.
| osg::Referenced::Referenced | ( | ) |
|
explicit |
| osg::Referenced::Referenced | ( | const Referenced & | ) |
|
protectedvirtual |
| void osg::Referenced::addObserver | ( | Observer * | observer | ) | const |
|
protected |
|
static |
Get a DeleteHandler.
|
static |
Get the optional global Referenced mutex, this can be shared between all osg::Referenced.
|
inline |
Get the ObserverSet if one is attached, otherwise return NULL.
| ObserverSet* osg::Referenced::getOrCreateObserverSet | ( | ) | const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet.
|
inline |
Get the mutex used to ensure thread safety of ref()/unref().
|
static |
Get whether reference counting is active.
|
inline |
|
inline |
|
inline |
Increment the reference count by one, indicating that this object has another pointer which is referencing it.
|
inline |
Return the number of pointers currently referencing this object.
| void osg::Referenced::removeObserver | ( | Observer * | observer | ) | const |
Remove Observer that is observing this object.
|
static |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated.
|
static |
Set whether reference counting should use a mutex for thread safe reference counting.
|
virtual |
Set whether to use a mutex to ensure ref() and unref() are thread safe.
Reimplemented in osg::StateSet, osg::Node, osg::Drawable, osgText::Text, osgText::GlyphTexture, osgText::TextBase, osgText::Glyph3D, osgSim::OverlayNode::OverlayData, osgText::Font, osg::Group, osg::Geode, osgText::GlyphGeometry, osgSim::OverlayNode, osgText::Text3D, osg::Object, osg::LightSource, osg::Program, and osg::TexGenNode.
|
protected |
|
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.
| 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.
|
friend |
|
mutableprotected |
|
mutableprotected |
1.8.13