Libecoli 0.4.0
Extensible COmmand LIne library
 
Loading...
Searching...
No Matches
ecoli_htable.h
1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright 2016, Olivier MATZ <zer0@droids-corp.org>
3 */
4
14
15#ifndef ECOLI_HTABLE_
16#define ECOLI_HTABLE_
17
18#include <stdio.h>
19#include <stdbool.h>
20
21typedef void (*ec_htable_elt_free_t)(void *);
22
23struct ec_htable;
24struct ec_htable_elt_ref;
25
32struct ec_htable *ec_htable(void);
33
47void *ec_htable_get(const struct ec_htable *htable,
48 const void *key, size_t key_len);
49
62bool ec_htable_has_key(const struct ec_htable *htable,
63 const void *key, size_t key_len);
64
77int ec_htable_del(struct ec_htable *htable, const void *key, size_t key_len);
78
97int ec_htable_set(struct ec_htable *htable, const void *key, size_t key_len,
98 void *val, ec_htable_elt_free_t free_cb);
99
106void ec_htable_free(struct ec_htable *htable);
107
116size_t ec_htable_len(const struct ec_htable *htable);
117
130struct ec_htable *ec_htable_dup(const struct ec_htable *htable);
131
140void ec_htable_dump(FILE *out, const struct ec_htable *htable);
141
161struct ec_htable_elt_ref *
162ec_htable_iter(const struct ec_htable *htable);
163
172struct ec_htable_elt_ref *
173ec_htable_iter_next(struct ec_htable_elt_ref *iter);
174
184const void *
185ec_htable_iter_get_key(const struct ec_htable_elt_ref *iter);
186
196size_t
197ec_htable_iter_get_key_len(const struct ec_htable_elt_ref *iter);
198
208void *
209ec_htable_iter_get_val(const struct ec_htable_elt_ref *iter);
210
211#endif
212
bool ec_htable_has_key(const struct ec_htable *htable, const void *key, size_t key_len)
struct ec_htable_elt_ref * ec_htable_iter_next(struct ec_htable_elt_ref *iter)
struct ec_htable * ec_htable(void)
void * ec_htable_iter_get_val(const struct ec_htable_elt_ref *iter)
void ec_htable_free(struct ec_htable *htable)
struct ec_htable * ec_htable_dup(const struct ec_htable *htable)
size_t ec_htable_iter_get_key_len(const struct ec_htable_elt_ref *iter)
int ec_htable_set(struct ec_htable *htable, const void *key, size_t key_len, void *val, ec_htable_elt_free_t free_cb)
void * ec_htable_get(const struct ec_htable *htable, const void *key, size_t key_len)
const void * ec_htable_iter_get_key(const struct ec_htable_elt_ref *iter)
struct ec_htable_elt_ref * ec_htable_iter(const struct ec_htable *htable)
int ec_htable_del(struct ec_htable *htable, const void *key, size_t key_len)
void ec_htable_dump(FILE *out, const struct ec_htable *htable)
size_t ec_htable_len(const struct ec_htable *htable)