Crossfire Server, Trunk
hashtable.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _ptr_assoc
 

Macros

#define PTR_ASSOC_TABLESIZE   251
 

Typedefs

typedef struct _ptr_assoc ptr_assoc
 
typedef ptr_assocptr_assoc_table[PTR_ASSOC_TABLESIZE]
 

Functions

void add_ptr_assoc (ptr_assoc **hash_table, void *key, void *value)
 
void * find_assoc_value (ptr_assoc **hash_table, void *key)
 
void free_ptr_assoc (ptr_assoc **hash_table, void *key)
 
void init_ptr_assoc_table (ptr_assoc **hash_table)
 

Macro Definition Documentation

◆ PTR_ASSOC_TABLESIZE

#define PTR_ASSOC_TABLESIZE   251

Definition at line 5 of file hashtable.h.

Typedef Documentation

◆ ptr_assoc

typedef struct _ptr_assoc ptr_assoc

◆ ptr_assoc_table

typedef ptr_assoc* ptr_assoc_table[PTR_ASSOC_TABLESIZE]

Definition at line 15 of file hashtable.h.

Function Documentation

◆ add_ptr_assoc()

void add_ptr_assoc ( ptr_assoc **  hash_table,
void *  key,
void *  value 
)

Adds a value to a hash table which one can lookup with key.

Parameters
hash_tablePointer to the hash table to add to.
keyThe key to lookup by in the association.
valueThe value to store with the key.

Definition at line 108 of file hashtable.cpp.

References _shared_string::array, hash_table, hashptr(), _ptr_assoc::key, castle_read::key, new_ptr_assoc(), _ptr_assoc::next, _ptr_assoc::previous, autojail::value, and _ptr_assoc::value.

Referenced by add_map_assoc(), and add_object_assoc().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ find_assoc_value()

void* find_assoc_value ( ptr_assoc **  hash_table,
void *  key 
)

Find the value associated with a given key.

Parameters
hash_tablePointer to the hash table to search.
keyThe key to lookup by in the association.
Returns
The value associated with the key.

Definition at line 204 of file hashtable.cpp.

References find_ptr_assoc(), hash_table, castle_read::key, and _ptr_assoc::value.

Referenced by find_assoc_pymap(), and find_assoc_pyobject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ free_ptr_assoc()

void free_ptr_assoc ( ptr_assoc **  hash_table,
void *  key 
)

Remove the association with a given key.

Parameters
hash_tablePointer to the hash table to search.
keyThe key to lookup by in the association.

Definition at line 221 of file hashtable.cpp.

References _ptr_assoc::array, find_ptr_assoc(), hash_table, castle_read::key, _ptr_assoc::next, and _ptr_assoc::previous.

Referenced by free_map_assoc(), and free_object_assoc().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ init_ptr_assoc_table()

void init_ptr_assoc_table ( ptr_assoc **  hash_table)

Initialises the hash table for a pointer association table.

Parameters
hash_tablePointer to the hash table to initialise.

Definition at line 56 of file hashtable.cpp.

References hash_table, PTR_ASSOC_TABLESIZE, and nlohmann::detail::void().

Referenced by init_map_assoc_table(), and init_object_assoc_table().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: