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