47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
|
#ifndef ISO_HASH_H
|
|||
|
#define ISO_HASH_H
|
|||
|
|
|||
|
struct iso_hash_node {
|
|||
|
struct iso_hash_node *next;
|
|||
|
char *path;
|
|||
|
};
|
|||
|
|
|||
|
#define HASH_NODES 128
|
|||
|
|
|||
|
/**
|
|||
|
* Searches in the hash table if the path exists.
|
|||
|
*
|
|||
|
* \param table The hash table.
|
|||
|
* \param path The path of the file to look for.
|
|||
|
*
|
|||
|
* \return 1 if the path exists in the hash table, 0 otherwise.
|
|||
|
*/
|
|||
|
int iso_hash_lookup(struct iso_hash_node **table, const char *path);
|
|||
|
|
|||
|
/**
|
|||
|
* Insert a new path in the hash table.
|
|||
|
*
|
|||
|
* \param table The hash table.
|
|||
|
* \param path The path of a file to add to the hash table.
|
|||
|
*
|
|||
|
* \return 1 if the file wasn't already in the hash table, 0 otherwise.
|
|||
|
*/
|
|||
|
int iso_hash_insert(struct iso_hash_node **table, const char *path);
|
|||
|
|
|||
|
/**
|
|||
|
* Remove a path from the hash table.
|
|||
|
*
|
|||
|
* \param table The hash table.
|
|||
|
* \param path The path of a file to remove from the hash table.
|
|||
|
*
|
|||
|
* \return 1 if the file was found and removed, 0 otherwise.
|
|||
|
*/
|
|||
|
int iso_hash_remove(struct iso_hash_node **table, const char *path);
|
|||
|
|
|||
|
/**
|
|||
|
* Empty the hash table.
|
|||
|
*/
|
|||
|
void iso_hash_empty(struct iso_hash_node **table);
|
|||
|
|
|||
|
#endif /* ISO_HASH_H */
|