00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef POINTERHASH_DEFINED
00011 #define POINTERHASH_DEFINED 1
00012
00013 #include "Common.h"
00014 #include <stddef.h>
00015 #include "PortableStdint.h"
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00021 #define POINTERHASH_MAXLOOP 10
00022
00023 #include "PointerHash_struct.h"
00024
00025 BASEKIT_API PointerHash *PointerHash_new(void);
00026 BASEKIT_API void PointerHash_copy_(PointerHash *self, const PointerHash *other);
00027 BASEKIT_API PointerHash *PointerHash_clone(PointerHash *self);
00028 BASEKIT_API void PointerHash_free(PointerHash *self);
00029
00030 BASEKIT_API void PointerHash_at_put_(PointerHash *self, void *k, void *v);
00031 BASEKIT_API void PointerHash_removeKey_(PointerHash *self, void *k);
00032 BASEKIT_API size_t PointerHash_size(PointerHash *self);
00033
00034 BASEKIT_API size_t PointerHash_memorySize(PointerHash *self);
00035 BASEKIT_API void PointerHash_compact(PointerHash *self);
00036
00037
00038
00039 BASEKIT_API void PointerHash_setSize_(PointerHash *self, size_t size);
00040 BASEKIT_API void PointerHash_insert_(PointerHash *self, PointerHashRecord *x);
00041 BASEKIT_API void PointerHash_grow(PointerHash *self);
00042 BASEKIT_API void PointerHash_shrinkIfNeeded(PointerHash *self);
00043 BASEKIT_API void PointerHash_shrink(PointerHash *self);
00044 BASEKIT_API void PointerHash_show(PointerHash *self);
00045 BASEKIT_API void PointerHash_updateMask(PointerHash *self);
00046
00047 #include "PointerHash_inline.h"
00048
00049 #define PointerHash_cleanSlots(self)
00050 #define PointerHash_hasDirtyKey_(self, k) 0
00051
00052 #ifdef __cplusplus
00053 }
00054 #endif
00055 #endif