00001 #ifndef COIN_SBDICT_H
00002 #define COIN_SBDICT_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/SbBasic.h>
00028 #include <Inventor/C/base/hash.h>
00029 #include <stddef.h>
00030
00031 class SbPList;
00032
00033 class COIN_DLL_API SbDict {
00034 public:
00035 SbDict(const int entries = 251);
00036 SbDict(const SbDict & from);
00037 ~SbDict();
00038
00039 SbDict & operator=(const SbDict & from);
00040
00041 void applyToAll(void (* rtn)(unsigned long key, void * value)) const;
00042 void applyToAll(void (* rtn)(unsigned long key, void * value, void * data),
00043 void * data) const;
00044 void clear(void);
00045
00046 SbBool enter(const unsigned long key, void * const value);
00047 SbBool find(const unsigned long key, void *& value) const;
00048 void makePList(SbPList & keys, SbPList & values);
00049 SbBool remove(const unsigned long key);
00050
00051 void setHashingFunction(unsigned long (*func)(const unsigned long key));
00052
00053 private:
00054 cc_hash * hashtable;
00055 static void copyval(unsigned long key, void * value, void * data);
00056 };
00057
00058 #endif // !COIN_SBDICT_H