00001 #ifndef COIN_SBSTORAGE_H
00002 #define COIN_SBSTORAGE_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <Inventor/C/threads/storage.h>
00028
00029 typedef void SbStorageApplyFunc(void * tls, void * closure);
00030
00031 class SbStorage {
00032 public:
00033 SbStorage(unsigned int size) { this->storage = cc_storage_construct(size); }
00034 SbStorage(unsigned int size, void (*constr)(void *), void (*destr)(void *))
00035 { this->storage = cc_storage_construct_etc(size, constr, destr); }
00036 ~SbStorage(void) { cc_storage_destruct(this->storage); }
00037
00038 void * get(void) { return cc_storage_get(this->storage); }
00039 void applyToAll(SbStorageApplyFunc * func, void * closure) {
00040 cc_storage_apply_to_all(this->storage,
00041 (cc_storage_apply_func*)func, closure);
00042 }
00043
00044 private:
00045 cc_storage * storage;
00046 };
00047
00048 #endif // !COIN_SBSTORAGE_H
00049