usermode/library/common/cuckoo_hash/PointerHash.h

00001 /*
00002  *  PointerHash.h
00003  *  CuckooHashTable
00004  *
00005  *  Created by Steve Dekorte on 2009 04 28.
00006  *  Copyright 2009 __MyCompanyName__. All rights reserved.
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); // actually the keyCount
00033 
00034 BASEKIT_API size_t PointerHash_memorySize(PointerHash *self);
00035 BASEKIT_API void PointerHash_compact(PointerHash *self);
00036 
00037 // --- private methods ----------------------------------------
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

Generated on Sat Apr 23 11:43:35 2011 for Mnemosyne by  doxygen 1.4.7