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...