24#ifndef _SO_BUFFER_OBJECT_CACHE_H_ 
   25#define _SO_BUFFER_OBJECT_CACHE_H_ 
   27#include <Inventor/SbBase.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 );
 
   76  virtual size_t getSize( );
 
   82  SoCpuBufferObjectCache();
 
   85  virtual ~SoCpuBufferObjectCache();
 
  128  virtual bool releaseBufferRef ( 
const uint64_t bufferId );
 
  141  void getInternalCounter(  uint64_t &nbCacheAccess, uint64_t& nbCacheDefault);
 
  142  void resetInternalCounter( );
 
  146  virtual bool deleteFromCache( 
const uint64_t bufferId );
 
  149  uint64_t getMappingIdfromSig(
const uint64_t& cacheSig);
 
  158  typedef std::map<uint64_t, SoCpuBufferObject*> cacheListType;
 
  159  typedef std::map<uint64_t, uint64_t> bufferSignatureMap;
 
  160  typedef std::list<uint64_t> lruBufferIdsType;
 
  162  cacheListType m_cacheList;
 
  163  bufferSignatureMap m_bufferIdToSigMap;
 
  164  bufferSignatureMap m_bufferSigToIdMap;
 
  166  lruBufferIdsType lruBufferIds;
 
  169  size_t m_maxCacheSize;
 
  172  uint64_t getUniqueId();
 
  173  uint64_t m_lasUniqId;
 
  176  void makeRoomInCache();
 
  182  uint64_t m_perfNbCacheAccess ;
 
  183  uint64_t m_perfNbCacheDefault;
 
  187#pragma warning( pop ) 
<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...