Android-cuttlefish cvd tool
Classes | Macros | Typedefs | Enumerations | Functions
dict.h File Reference
#include <limits.h>
Include dependency graph for dict.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dnode_t
 
struct  dict_t
 
struct  dict_load_t
 

Macros

#define DICTCOUNT_T_MAX   ULONG_MAX
 
#define dict_isfull(D)   ((D)->dict_nodecount == (D)->dict_maxcount)
 
#define dict_count(D)   ((D)->dict_nodecount)
 
#define dict_isempty(D)   ((D)->dict_nodecount == 0)
 
#define dnode_get(N)   ((N)->dict_data)
 
#define dnode_getkey(N)   ((N)->dict_key)
 
#define dnode_put(N, X)   ((N)->dict_data = (X))
 

Typedefs

typedef unsigned long dictcount_t
 
typedef struct dnode_t dnode_t
 
typedef int(* dict_comp_t) (const void *, const void *)
 
typedef dnode_t *(* dnode_alloc_t) (void *)
 
typedef void(* dnode_free_t) (dnode_t *, void *)
 
typedef struct dict_t dict_t
 
typedef void(* dnode_process_t) (dict_t *, dnode_t *, void *)
 
typedef struct dict_load_t dict_load_t
 

Enumerations

enum  dnode_color_t { dnode_red , dnode_black }
 

Functions

dict_tdict_create (dictcount_t, dict_comp_t)
 
void dict_set_allocator (dict_t *, dnode_alloc_t, dnode_free_t, void *)
 
void dict_destroy (dict_t *)
 
void dict_free_nodes (dict_t *)
 
void dict_free (dict_t *)
 
dict_tdict_init (dict_t *, dictcount_t, dict_comp_t)
 
void dict_init_like (dict_t *, const dict_t *)
 
int dict_verify (dict_t *)
 
int dict_similar (const dict_t *, const dict_t *)
 
dnode_tdict_lookup (dict_t *, const void *)
 
dnode_tdict_lower_bound (dict_t *, const void *)
 
dnode_tdict_upper_bound (dict_t *, const void *)
 
void dict_insert (dict_t *, dnode_t *, const void *)
 
dnode_tdict_delete (dict_t *, dnode_t *)
 
int dict_alloc_insert (dict_t *, const void *, void *)
 
void dict_delete_free (dict_t *, dnode_t *)
 
dnode_tdict_first (dict_t *)
 
dnode_tdict_last (dict_t *)
 
dnode_tdict_next (dict_t *, dnode_t *)
 
dnode_tdict_prev (dict_t *, dnode_t *)
 
dictcount_t dict_count (dict_t *)
 
int dict_isempty (dict_t *)
 
int dict_isfull (dict_t *)
 
int dict_contains (dict_t *, dnode_t *)
 
void dict_allow_dupes (dict_t *)
 
int dnode_is_in_a_dict (dnode_t *)
 
dnode_tdnode_create (void *)
 
dnode_tdnode_init (dnode_t *, void *)
 
void dnode_destroy (dnode_t *)
 
void * dnode_get (dnode_t *)
 
const void * dnode_getkey (dnode_t *)
 
void dnode_put (dnode_t *, void *)
 
void dict_process (dict_t *, void *, dnode_process_t)
 
void dict_load_begin (dict_load_t *, dict_t *)
 
void dict_load_next (dict_load_t *, dnode_t *, const void *)
 
void dict_load_end (dict_load_t *)
 
void dict_merge (dict_t *, dict_t *)
 

Macro Definition Documentation

◆ dict_count

#define dict_count (   D)    ((D)->dict_nodecount)

◆ dict_isempty

#define dict_isempty (   D)    ((D)->dict_nodecount == 0)

◆ dict_isfull

#define dict_isfull (   D)    ((D)->dict_nodecount == (D)->dict_maxcount)

◆ DICTCOUNT_T_MAX

#define DICTCOUNT_T_MAX   ULONG_MAX

◆ dnode_get

#define dnode_get (   N)    ((N)->dict_data)

◆ dnode_getkey

#define dnode_getkey (   N)    ((N)->dict_key)

◆ dnode_put

#define dnode_put (   N,
 
)    ((N)->dict_data = (X))

Typedef Documentation

◆ dict_comp_t

typedef int(* dict_comp_t) (const void *, const void *)

◆ dict_load_t

typedef struct dict_load_t dict_load_t

◆ dict_t

typedef struct dict_t dict_t

◆ dictcount_t

typedef unsigned long dictcount_t

◆ dnode_alloc_t

typedef dnode_t *(* dnode_alloc_t) (void *)

◆ dnode_free_t

typedef void(* dnode_free_t) (dnode_t *, void *)

◆ dnode_process_t

typedef void(* dnode_process_t) (dict_t *, dnode_t *, void *)

◆ dnode_t

typedef struct dnode_t dnode_t

Enumeration Type Documentation

◆ dnode_color_t

Enumerator
dnode_red 
dnode_black 

Function Documentation

◆ dict_alloc_insert()

int dict_alloc_insert ( dict_t dict,
const void *  key,
void *  data 
)

◆ dict_allow_dupes()

void dict_allow_dupes ( dict_t dict)

◆ dict_contains()

int dict_contains ( dict_t dict,
dnode_t node 
)

◆ dict_count()

dictcount_t dict_count ( dict_t dict)

◆ dict_create()

dict_t * dict_create ( dictcount_t  ,
dict_comp_t   
)

◆ dict_delete()

dnode_t * dict_delete ( dict_t ,
dnode_t  
)

◆ dict_delete_free()

void dict_delete_free ( dict_t ,
dnode_t  
)

◆ dict_destroy()

void dict_destroy ( dict_t )

◆ dict_first()

dnode_t * dict_first ( dict_t dict)

◆ dict_free()

void dict_free ( dict_t )

◆ dict_free_nodes()

void dict_free_nodes ( dict_t dict)

◆ dict_init()

dict_t * dict_init ( dict_t dict,
dictcount_t  maxcount,
dict_comp_t  comp 
)

◆ dict_init_like()

void dict_init_like ( dict_t ,
const dict_t  
)

◆ dict_insert()

void dict_insert ( dict_t dict,
dnode_t node,
const void *  key 
)

◆ dict_isempty()

int dict_isempty ( dict_t dict)

◆ dict_isfull()

int dict_isfull ( dict_t dict)

◆ dict_last()

dnode_t * dict_last ( dict_t dict)

◆ dict_load_begin()

void dict_load_begin ( dict_load_t ,
dict_t  
)

◆ dict_load_end()

void dict_load_end ( dict_load_t )

◆ dict_load_next()

void dict_load_next ( dict_load_t ,
dnode_t ,
const void *   
)

◆ dict_lookup()

dnode_t * dict_lookup ( dict_t dict,
const void *  key 
)

◆ dict_lower_bound()

dnode_t * dict_lower_bound ( dict_t ,
const void *   
)

◆ dict_merge()

void dict_merge ( dict_t ,
dict_t  
)

◆ dict_next()

dnode_t * dict_next ( dict_t dict,
dnode_t curr 
)

◆ dict_prev()

dnode_t * dict_prev ( dict_t dict,
dnode_t curr 
)

◆ dict_process()

void dict_process ( dict_t ,
void *  ,
dnode_process_t   
)

◆ dict_set_allocator()

void dict_set_allocator ( dict_t dict,
dnode_alloc_t  al,
dnode_free_t  fr,
void *  context 
)

◆ dict_similar()

int dict_similar ( const dict_t ,
const dict_t  
)

◆ dict_upper_bound()

dnode_t * dict_upper_bound ( dict_t ,
const void *   
)

◆ dict_verify()

int dict_verify ( dict_t )

◆ dnode_create()

dnode_t * dnode_create ( void *  data)

◆ dnode_destroy()

void dnode_destroy ( dnode_t dnode)

◆ dnode_get()

void * dnode_get ( dnode_t dnode)

◆ dnode_getkey()

const void * dnode_getkey ( dnode_t dnode)

◆ dnode_init()

dnode_t * dnode_init ( dnode_t dnode,
void *  data 
)

◆ dnode_is_in_a_dict()

int dnode_is_in_a_dict ( dnode_t )

◆ dnode_put()

void dnode_put ( dnode_t ,
void *   
)