Start PS4
This commit is contained in:
28
exercises/04/vslc/include/tlhash.h
Normal file
28
exercises/04/vslc/include/tlhash.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef TLHASH_H
|
||||
#define TLHASH_H
|
||||
#include <stddef.h>
|
||||
typedef struct el {
|
||||
void *key, *value;
|
||||
size_t key_length;
|
||||
struct el *next;
|
||||
} tlhash_element_t;
|
||||
|
||||
typedef struct {
|
||||
size_t n_buckets, size;
|
||||
tlhash_element_t **buckets;
|
||||
} tlhash_t;
|
||||
|
||||
int tlhash_init ( tlhash_t *tab, size_t n_buckets );
|
||||
int tlhash_finalize ( tlhash_t *tab );
|
||||
int tlhash_insert ( tlhash_t *tab, void *key, size_t keylen, void *val );
|
||||
int tlhash_lookup ( tlhash_t *tab, void *key, size_t keylen, void **val );
|
||||
int tlhash_remove ( tlhash_t *tab, void *key, size_t key_length );
|
||||
size_t tlhash_size ( tlhash_t *tab );
|
||||
void tlhash_keys ( tlhash_t *tab, void **keys );
|
||||
void tlhash_values ( tlhash_t *tab, void **values );
|
||||
|
||||
#define TLHASH_SUCCESS 0 /* Success */
|
||||
#define TLHASH_ENOMEM 1 /* No memory available */
|
||||
#define TLHASH_ENOENT 2 /* No such table entry */
|
||||
#define TLHASH_EEXIST 3 /* Table entry already exists */
|
||||
#endif
|
||||
Reference in New Issue
Block a user