OpenSceneGraph
3.5.1
|
Public Member Functions | |
ObjectCache () | |
void | updateTimeStampOfObjectsInCacheWithExternalReferences (double referenceTime) |
For each object in the cache which has an reference count greater than 1 (and therefore referenced by elsewhere in the application) set the time stamp for that object in the cache to specified time. More... | |
void | removeExpiredObjectsInCache (double expiryTime) |
Removed object in the cache which have a time stamp at or before the specified expiry time. More... | |
void | clear () |
Remove all objects in the cache regardless of having external references or expiry times. More... | |
void | addObjectCache (ObjectCache *object) |
Add contents of specified ObjectCache to this object cache. More... | |
void | addEntryToObjectCache (const std::string &filename, osg::Object *object, double timestamp=0.0) |
Add a filename,object,timestamp triple to the Registry::ObjectCache. More... | |
void | removeFromObjectCache (const std::string &fileName) |
Remove Object from cache. More... | |
osg::Object * | getFromObjectCache (const std::string &fileName) |
Get an Object from the object cache. More... | |
osg::ref_ptr< osg::Object > | getRefFromObjectCache (const std::string &fileName) |
Get an ref_ptr<Object> from the object cache. More... | |
void | releaseGLObjects (osg::State *state) |
call rleaseGLObjects on all objects attached to the object cache. More... | |
Public Member Functions inherited from osg::Referenced | |
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. More... | |
bool | getThreadSafeRefUnref () const |
Get whether a mutex is used to ensure ref() and unref() are thread safe. More... | |
OpenThreads::Mutex * | getRefMutex () const |
Get the mutex used to ensure thread safety of ref()/unref(). More... | |
int | ref () const |
Increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
int | unref () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | unref_nodelete () const |
Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it. More... | |
int | referenceCount () const |
Return the number of pointers currently referencing this object. More... | |
ObserverSet * | getObserverSet () const |
Get the ObserverSet if one is attached, otherwise return NULL. More... | |
ObserverSet * | getOrCreateObserverSet () const |
Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet. More... | |
void | addObserver (Observer *observer) const |
Add a Observer that is observing this object, notify the Observer when this object gets deleted. More... | |
void | removeObserver (Observer *observer) const |
Remove Observer that is observing this object. More... | |
Protected Types | |
typedef std::pair< osg::ref_ptr< osg::Object >, double > | ObjectTimeStampPair |
typedef std::map< std::string, ObjectTimeStampPair > | ObjectCacheMap |
Protected Member Functions | |
virtual | ~ObjectCache () |
Protected Member Functions inherited from osg::Referenced | |
virtual | ~Referenced () |
void | signalObserversAndDelete (bool signalDelete, bool doDelete) const |
void | deleteUsingDeleteHandler () const |
Protected Attributes | |
ObjectCacheMap | _objectCache |
OpenThreads::Mutex | _objectCacheMutex |
Protected Attributes inherited from osg::Referenced | |
OpenThreads::AtomicPtr | _observerSet |
OpenThreads::Atomic | _refCount |
Additional Inherited Members | |
Static Public Member Functions inherited from osg::Referenced | |
static OpenThreads::Mutex * | getGlobalReferencedMutex () |
Get the optional global Referenced mutex, this can be shared between all osg::Referenced. More... | |
static void | setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting) |
Set whether reference counting should use a mutex for thread safe reference counting. More... | |
static bool | getThreadSafeReferenceCounting () |
Get whether reference counting is active. More... | |
static void | setDeleteHandler (DeleteHandler *handler) |
Set a DeleteHandler to which deletion of all referenced counted objects will be delegated. More... | |
static DeleteHandler * | getDeleteHandler () |
Get a DeleteHandler. More... | |
|
protected |
|
protected |
osgDB::ObjectCache::ObjectCache | ( | ) |
|
protectedvirtual |
void osgDB::ObjectCache::addEntryToObjectCache | ( | const std::string & | filename, |
osg::Object * | object, | ||
double | timestamp = 0.0 |
||
) |
Add a filename,object,timestamp triple to the Registry::ObjectCache.
void osgDB::ObjectCache::addObjectCache | ( | ObjectCache * | object | ) |
Add contents of specified ObjectCache to this object cache.
void osgDB::ObjectCache::clear | ( | ) |
Remove all objects in the cache regardless of having external references or expiry times.
osg::Object* osgDB::ObjectCache::getFromObjectCache | ( | const std::string & | fileName | ) |
Get an Object from the object cache.
osg::ref_ptr<osg::Object> osgDB::ObjectCache::getRefFromObjectCache | ( | const std::string & | fileName | ) |
Get an ref_ptr<Object> from the object cache.
void osgDB::ObjectCache::releaseGLObjects | ( | osg::State * | state | ) |
call rleaseGLObjects on all objects attached to the object cache.
void osgDB::ObjectCache::removeExpiredObjectsInCache | ( | double | expiryTime | ) |
Removed object in the cache which have a time stamp at or before the specified expiry time.
This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required, and called after the a called after the call to updateTimeStampOfObjectsInCacheWithExternalReferences(expirtyTime).
void osgDB::ObjectCache::removeFromObjectCache | ( | const std::string & | fileName | ) |
Remove Object from cache.
void osgDB::ObjectCache::updateTimeStampOfObjectsInCacheWithExternalReferences | ( | double | referenceTime | ) |
For each object in the cache which has an reference count greater than 1 (and therefore referenced by elsewhere in the application) set the time stamp for that object in the cache to specified time.
This would typically be called once per frame by applications which are doing database paging, and need to prune objects that are no longer required. The time used should be taken from the FrameStamp::getReferenceTime().
|
protected |
|
protected |
Generated at Wed Nov 11 2015 22:14:54 for the OpenSceneGraph by doxygen 1.8.10. |