All hash_ functions have been prefixed with clicon_ to avoid name collision with other packages (frr)

This commit is contained in:
Olof hagsand 2019-06-18 14:49:18 +02:00
parent 3dba0b5370
commit 17e3e74ad5
8 changed files with 89 additions and 89 deletions

View file

@ -44,14 +44,14 @@ struct clicon_hash {
};
typedef struct clicon_hash *clicon_hash_t;
clicon_hash_t *hash_init (void);
void hash_free (clicon_hash_t *);
clicon_hash_t hash_lookup (clicon_hash_t *head, const char *key);
void *hash_value (clicon_hash_t *head, const char *key, size_t *vlen);
clicon_hash_t hash_add (clicon_hash_t *head, const char *key, void *val, size_t vlen);
int hash_del (clicon_hash_t *head, const char *key);
int hash_dump(clicon_hash_t *head, FILE *f);
int hash_keys(clicon_hash_t *hash, char ***vector, size_t *nkeys);
clicon_hash_t *clicon_hash_init (void);
void clicon_hash_free (clicon_hash_t *);
clicon_hash_t clicon_hash_lookup (clicon_hash_t *head, const char *key);
void *clicon_hash_value (clicon_hash_t *head, const char *key, size_t *vlen);
clicon_hash_t clicon_hash_add (clicon_hash_t *head, const char *key, void *val, size_t vlen);
int clicon_hash_del (clicon_hash_t *head, const char *key);
int clicon_hash_dump(clicon_hash_t *head, FILE *f);
int clicon_hash_keys(clicon_hash_t *hash, char ***vector, size_t *nkeys);
/*
* Macros to iterate over hash contents.
@ -59,24 +59,23 @@ int hash_keys(clicon_hash_t *hash, char ***vector, size_t *nkeys);
*
* Example:
* char *k;
* clicon_hash_t *h = hash_init();
* clicon_hash_t *h = clicon_hash_init();
*
* hash_add(h, "colour", "red", 6);
* hash_add(h, "name", "rudolf" 7);
* hash_add(h, "species", "reindeer" 9);
* clicon_hash_add(h, "colour", "red", 6);
* clicon_hash_add(h, "name", "rudolf" 7);
* clicon_hash_add(h, "species", "reindeer" 9);
*
* hash_each(h, k) {
* printf ("%s = %s\n", k, (char *)hash_value(h, k, NULL));
* clicon_hash_each(h, k) {
* printf ("%s = %s\n", k, (char *)clicon_hash_value(h, k, NULL));
* } hash_each_end();
*/
#define hash_each(__hash__, __key__) \
#define clicon_hash_each(__hash__, __key__) \
{ \
int __i__; \
size_t __n__; \
char **__k__ = hash_keys((__hash__),&__n__); \
if (__k__) { \
for(__i__ = 0; __i__ < __n__ && ((__key__) = __k__[__i__]); __i__++)
#define hash_each_end(__hash__) if (__k__) free(__k__); } }
#define clicon_hash_each_end(__hash__) if (__k__) free(__k__); } }
#endif /* _CLIXON_HASH_H_ */