File StringKeyHashMap.h

File List > engine > include > StringKeyHashMap.h

Go to the documentation of this file

#ifndef STRING_KEY_HASH_MAP_H
#define STRING_KEY_HASH_MAP_H

#ifdef __cplusplus
extern "C" {
#endif 


#include <stdbool.h>

struct HashMap
{
    int capacity;
    int size;
    int valueSize;
    void* pData;
    struct KVP* pHead;
    struct KVP* pEnd;
    float fLoadFactor;
};

void HashmapInit(struct HashMap* pMap, int capacity, int valSize);

void HashmapInitWithLoadFactor(struct HashMap* pMap, int capacity, int valSize, float loadFactor);

void* HashmapSearch(struct HashMap* pMap, char* key);


void* HashmapInsert(struct HashMap* pMap, char* key, void* pVal);

bool HashmapDeleteItem(struct HashMap* pMap, char* key);

void HashmapDeInit(struct HashMap* pMap);

void HashmapPrintEntries(struct HashMap* pMap, const char* hashMapName);

struct HashmapKeyIterator
{
    struct HashMap* pHashMap;
    struct KVP* pOnKVP;
};

struct HashmapKeyIterator GetKeyIterator(struct HashMap* pHashMap);

char* NextHashmapKey(struct HashmapKeyIterator*);

#ifdef __cplusplus
}
#endif

#endif