27#ifndef _SB_THREAD_STORAGE_BASE_H_
28#define _SB_THREAD_STORAGE_BASE_H_
30#include <Inventor/SoInventorBase.h>
31#include <Inventor/threads/SbThreadLocalStorage.h>
32#include <Inventor/threads/SbThreadSpinlock.h>
33#include <Inventor/STL/list>
37#pragma warning( push )
38#pragma warning(disable:4251)
42class SbThreadStorageMapStruct;
51class SbThreadStorageBase
53 SB_THREAD_TLS_HEADER();
62 SbThreadStorageBase();
65 SbThreadStorageBase(
const SbThreadStorageBase& tocopy);
68 virtual ~SbThreadStorageBase();
71 virtual void deleteStorage(
void* p) = 0;
75 static void initClass();
77 static void exitClass();
79 void* getValue()
const;
80 void Register(
void* );
82 typedef std::list< SbThreadStorageMapStruct* > SbThreadStorageGlobalList;
86 SbThreadStorageMapStruct* threadStorageMapStruct;
95 void* get (
const SbThreadStorageGlobalList::const_iterator& it_i);
98 static SbThreadStorageGlobalList s_threadStorageGlobalList;
107 static size_t getID();
111 static size_t s_storageID;
116 typedef std::deque<size_t> SbThreadStorageFreeIDList;
117 static SbThreadStorageFreeIDList s_freeStorageIDList;
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Portable spinloc...