|
Archeus 0.0.0
A C library and game engine that focuses on documentation
|
Go to the source code of this file.
Data Structures | |
| struct | ARC_Hashtable |
Functions | |
| void | CRC32 (void *key, size_t *keysize, uint32_t *hashval) |
| int8_t | ARC_Default_Key_Compare (void *key1, size_t *key1size, void *key2, size_t *key2size) |
| void | ARC_HashtableNode_Create (ARC_HashtableNode **node, void *key, size_t *keysize, void *data) |
| void | ARC_HashtableNode_Destroy (ARC_HashtableNode *node, ARC_HashtableNode_DestroyExternal external, void *userdata) |
| void | ARC_Hashtable_Create (ARC_Hashtable **htable, uint32_t bucketsize, ARC_Hashtable_Hash hash, ARC_Hashtable_KeyCompare compare) |
| cteates ARC_Hashtable type | |
| void | ARC_Hashtable_Destroy (ARC_Hashtable *htable, ARC_HashtableNode_DestroyExternal external, void *userdata) |
| destroys ARC_Hashtable type | |
| void | ARC_Hashtable_Add (ARC_Hashtable *htable, void *key, size_t keysize, void *data) |
| adds value to hastable | |
| void | ARC_Hashtable_Get (ARC_Hashtable *htable, void *key, size_t keysize, void **data) |
| gets value from hashtable by key | |
| void | ARC_Hashtable_Remove (ARC_Hashtable *htable, void *key, size_t keysize, ARC_HashtableNode_DestroyExternal external, void *userdata) |
| removes value from hashtable | |
| int8_t ARC_Default_Key_Compare | ( | void * | key1, |
| size_t * | key1size, | ||
| void * | key2, | ||
| size_t * | key2size ) |
Definition at line 30 of file hashtable.c.
Referenced by ARC_Hashtable_Create().
| void ARC_Hashtable_Add | ( | ARC_Hashtable * | htable, |
| void * | key, | ||
| size_t | keysize, | ||
| void * | data ) |
adds value to hastable
| htable | ARC_Hashtable to add to |
| key | key for node that is being added |
| keysize | sizeof key before it is passed into a void * |
| data | data for node that is being added |
Definition at line 75 of file hashtable.c.
References arc_errno, ARC_ERRNO_EXISTS, ARC_HashtableNode_Create(), ARC_Hashtable::compare, ARC_Hashtable::hash, ARC_HashtableNode::key, ARC_HashtableNode::keysize, ARC_HashtableNode::node, ARC_Hashtable::nodes, and ARC_Hashtable::size.
Referenced by ARC_Config_AddKey(), ARC_Config_AddKeyCString(), ARC_Config_CreateGroup(), and ARC_Config_LoadFromKey().
| void ARC_Hashtable_Create | ( | ARC_Hashtable ** | htable, |
| uint32_t | bucketsize, | ||
| ARC_Hashtable_Hash | hash, | ||
| ARC_Hashtable_KeyCompare | compare ) |
cteates ARC_Hashtable type
| htable | where to store data |
| bucketsize | num of nodes to create in inital table |
| hash | hashing function to be used, if set to NULL, CRC32 will be used |
| compare | comparison functon for checking keys, if set to NULL, addresses will be compared |
Definition at line 56 of file hashtable.c.
References ARC_Default_Key_Compare(), CRC32(), and ARC_Hashtable::size.
Referenced by ARC_Config_Create(), and ARC_Config_CreateGroup().
| void ARC_Hashtable_Destroy | ( | ARC_Hashtable * | htable, |
| ARC_HashtableNode_DestroyExternal | external, | ||
| void * | userdata ) |
destroys ARC_Hashtable type
| htable | htable that will be destroyed |
| external | function to allow external freeing of nodes, can be NULL |
| userdata | any data the user wants access to in the callback |
Definition at line 64 of file hashtable.c.
References ARC_HashtableNode_Destroy(), ARC_Hashtable::nodes, and ARC_Hashtable::size.
Referenced by ARC_Config_Destroy(), and ARC_Config_DestroyGroup().
| void ARC_Hashtable_Get | ( | ARC_Hashtable * | htable, |
| void * | key, | ||
| size_t | keysize, | ||
| void ** | data ) |
gets value from hashtable by key
| htable | table to get value from |
| key | key to get value from table |
| keysize | sizeof key before it is passed into a void * |
| data | data retrieved from table |
Definition at line 103 of file hashtable.c.
References arc_errno, ARC_ERRNO_NULL, ARC_Hashtable::compare, ARC_HashtableNode::data, ARC_Hashtable::hash, ARC_HashtableNode::key, ARC_HashtableNode::keysize, ARC_HashtableNode::node, ARC_Hashtable::nodes, and ARC_Hashtable::size.
Referenced by ARC_Config_Get(), ARC_Config_LoadFromKey(), and ARC_Config_SetGroup().
| void ARC_Hashtable_Remove | ( | ARC_Hashtable * | htable, |
| void * | key, | ||
| size_t | keysize, | ||
| ARC_HashtableNode_DestroyExternal | external, | ||
| void * | userdata ) |
removes value from hashtable
| htable | ARC_Hashtable to remove from |
| key | key of data to remove from hash table |
| keysize | sizeof key before it is passed into a void * |
| external | function to allow external freeing of data, can be NULL |
| userdata | any data the user wants access to in the callback |
Definition at line 131 of file hashtable.c.
References arc_errno, ARC_ERRNO_NULL, ARC_Hashtable::compare, ARC_Hashtable::hash, ARC_HashtableNode::key, ARC_HashtableNode::keysize, ARC_HashtableNode::node, ARC_Hashtable::nodes, and ARC_Hashtable::size.
Referenced by ARC_Config_UnloadFromKey().
| void ARC_HashtableNode_Create | ( | ARC_HashtableNode ** | node, |
| void * | key, | ||
| size_t * | keysize, | ||
| void * | data ) |
Definition at line 34 of file hashtable.c.
References ARC_HashtableNode::key.
Referenced by ARC_Hashtable_Add().
| void ARC_HashtableNode_Destroy | ( | ARC_HashtableNode * | node, |
| ARC_HashtableNode_DestroyExternal | external, | ||
| void * | userdata ) |
Definition at line 42 of file hashtable.c.
References ARC_HashtableNode_Destroy(), and ARC_HashtableNode::node.
Referenced by ARC_Hashtable_Destroy(), and ARC_HashtableNode_Destroy().
| void CRC32 | ( | void * | key, |
| size_t * | keysize, | ||
| uint32_t * | hashval ) |
Definition at line 14 of file hashtable.c.
Referenced by ARC_Hashtable_Create().