24#ifndef _SO_BUFFER_OBJECT_CACHE_H_ 
   25#define _SO_BUFFER_OBJECT_CACHE_H_ 
   28#include <Inventor/STL/map> 
   29#include <Inventor/STL/list> 
   36#pragma warning( push ) 
   37#pragma warning(disable:4251) 
   71  virtual void resize( 
const size_t newSize );
 
   82  SoCpuBufferObjectCache();
 
   85  virtual ~SoCpuBufferObjectCache();
 
  128  virtual bool releaseBufferRef ( 
const uint64_t bufferId );
 
  143  void getInternalCounter(  uint64_t &nbCacheAccess, uint64_t& nbCacheDefault);
 
  144  void resetInternalCounter( );
 
  148  virtual bool deleteFromCache( 
const uint64_t bufferId );
 
  151  uint64_t getMappingIdfromSig(
const uint64_t& cacheSig);
 
  160  typedef std::map<uint64_t, SoCpuBufferObject*> cacheListType;
 
  161  typedef std::map<uint64_t, uint64_t> bufferSignatureMap;
 
  162  typedef std::list<uint64_t> lruBufferIdsType;
 
  164  cacheListType m_cacheList;
 
  165  bufferSignatureMap m_bufferIdToSigMap;
 
  166  bufferSignatureMap m_bufferSigToIdMap;
 
  168  lruBufferIdsType lruBufferIds;
 
  171  size_t m_maxCacheSize;
 
  174  uint64_t getUniqueId();
 
  175  uint64_t m_lasUniqId;
 
  178  void makeRoomInCache();
 
  184  uint64_t m_perfNbCacheAccess ;
 
  185  uint64_t m_perfNbCacheDefault;
 
  189#pragma warning( pop ) 
virtual size_t getSize()
Return the max size of the cache (number of buffers).
 
virtual void resize(const size_t newSize)
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a>  CPUBufferObject ...
 
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a>  Portable spinloc...
 
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a>  Abstract base cl...
 
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a>  CPU buffer objec...