Ziti C SDK
Loading...
Searching...
No Matches
model_collections.h File Reference
#include "externs.h"
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  model_map
 
struct  model_list
 

Macros

#define line_var(v)   var(v,__LINE__)
 
#define var(x, y)   _var(x,y)
 
#define _var(x, y)   x ## y
 
#define z_typeof(v)   __typeof__(v)
 
#define MODEL_MAP_FOREACH(k, v, map)
 
#define MODEL_MAP_FOR(it, m)
 
#define MODEL_LIST_FOR(it, m)
 
#define MODEL_LIST_FOREACH(el, list)
 

Typedefs

typedef void * model_map_iter
 
typedef void * model_list_iter
 

Functions

size_t model_map_size (const model_map *map)
 
void * model_map_set_key (model_map *m, const void *key, size_t key_len, const void *val)
 
void * model_map_set (model_map *map, const char *key, const void *val)
 
void * model_map_setl (model_map *map, long key, const void *val)
 
void * model_map_get_key (const model_map *map, const void *key, size_t key_len)
 
void * model_map_get (const model_map *map, const char *key)
 
void * model_map_getl (const model_map *map, long key)
 
void * model_map_remove_key (model_map *map, const void *key, size_t key_len)
 
void * model_map_remove (model_map *map, const char *key)
 
void * model_map_removel (model_map *map, long key)
 
void model_map_clear (model_map *map, void(*val_free_func)(void *))
 
model_map_iter model_map_iterator (const model_map *map)
 
const char * model_map_it_key (model_map_iter it)
 
const void * model_map_it_key_s (model_map_iter it, size_t *key_len)
 
long model_map_it_lkey (model_map_iter it)
 
void * model_map_it_value (model_map_iter it)
 
model_map_iter model_map_it_next (model_map_iter it)
 
model_map_iter model_map_it_remove (model_map_iter it)
 
size_t model_list_size (const model_list *l)
 
void model_list_push (model_list *l, const void *el)
 
void model_list_append (model_list *l, const void *el)
 
void * model_list_pop (model_list *l)
 
const void * model_list_head (const model_list *l)
 
void model_list_clear (model_list *l, void(*clear_f)(void *))
 
model_list_iter model_list_iterator (model_list *l)
 
model_list_iter model_list_it_next (model_list_iter it)
 
model_list_iter model_list_it_remove (model_list_iter it)
 
const void * model_list_it_element (model_list_iter it)
 

Macro Definition Documentation

◆ _var

#define _var (   x,
 
)    x ## y

◆ line_var

#define line_var (   v)    var(v,__LINE__)

◆ MODEL_LIST_FOR

#define MODEL_LIST_FOR (   it,
 
)
Value:
for(model_list_iter it = model_list_iterator(&(m)); (it) != NULL; \
(it) = line_var(itn), line_var(itn) = model_list_it_next(line_var(itn)))
model_list_iter model_list_it_next(model_list_iter it)
model_list_iter model_list_iterator(model_list *l)
void * model_list_iter
Definition model_collections.h:101
#define line_var(v)
Definition model_collections.h:69

◆ MODEL_LIST_FOREACH

#define MODEL_LIST_FOREACH (   el,
  list 
)
Value:
line_var(it) != NULL && ((el) = (z_typeof(el))model_list_it_element(line_var(it)), true); \
line_var(it) = model_list_it_next(line_var(it)))
const void * model_list_it_element(model_list_iter it)
#define z_typeof(v)
Definition model_collections.h:76
#define list(t)
Definition model_support.h:76
Definition model_collections.h:97

◆ MODEL_MAP_FOR

#define MODEL_MAP_FOR (   it,
 
)
Value:
(it) != NULL; \
(it) = line_var(itn), line_var(itn) = model_map_it_next(line_var(itn)))
model_map_iter model_map_it_next(model_map_iter it)
void * model_map_iter
Definition model_collections.h:27
model_map_iter model_map_iterator(const model_map *map)

◆ MODEL_MAP_FOREACH

#define MODEL_MAP_FOREACH (   k,
  v,
  map 
)
Value:
(k) = (z_typeof(k))(uintptr_t)model_map_it_key(line_var(e)), \
(k) != NULL; \
(k) = (z_typeof(k))(uintptr_t)model_map_it_key(line_var(e)), \
)
void * model_map_it_value(model_map_iter it)
const char * model_map_it_key(model_map_iter it)
#define map(t)
Definition model_support.h:75

◆ var

#define var (   x,
 
)    _var(x,y)

◆ z_typeof

#define z_typeof (   v)    __typeof__(v)

Typedef Documentation

◆ model_list_iter

typedef void* model_list_iter

◆ model_map_iter

typedef void* model_map_iter

Function Documentation

◆ model_list_append()

void model_list_append ( model_list l,
const void *  el 
)

◆ model_list_clear()

void model_list_clear ( model_list l,
void(*)(void *)  clear_f 
)

◆ model_list_head()

const void * model_list_head ( const model_list l)

◆ model_list_it_element()

const void * model_list_it_element ( model_list_iter  it)

◆ model_list_it_next()

model_list_iter model_list_it_next ( model_list_iter  it)

◆ model_list_it_remove()

model_list_iter model_list_it_remove ( model_list_iter  it)

◆ model_list_iterator()

model_list_iter model_list_iterator ( model_list l)

◆ model_list_pop()

void * model_list_pop ( model_list l)

◆ model_list_push()

void model_list_push ( model_list l,
const void *  el 
)

◆ model_list_size()

size_t model_list_size ( const model_list l)

◆ model_map_clear()

void model_map_clear ( model_map map,
void(*)(void *)  val_free_func 
)

◆ model_map_get()

void * model_map_get ( const model_map map,
const char *  key 
)

◆ model_map_get_key()

void * model_map_get_key ( const model_map map,
const void *  key,
size_t  key_len 
)

◆ model_map_getl()

void * model_map_getl ( const model_map map,
long  key 
)

◆ model_map_it_key()

const char * model_map_it_key ( model_map_iter  it)

◆ model_map_it_key_s()

const void * model_map_it_key_s ( model_map_iter  it,
size_t *  key_len 
)

◆ model_map_it_lkey()

long model_map_it_lkey ( model_map_iter  it)

◆ model_map_it_next()

model_map_iter model_map_it_next ( model_map_iter  it)

◆ model_map_it_remove()

model_map_iter model_map_it_remove ( model_map_iter  it)

◆ model_map_it_value()

void * model_map_it_value ( model_map_iter  it)

◆ model_map_iterator()

model_map_iter model_map_iterator ( const model_map map)

◆ model_map_remove()

void * model_map_remove ( model_map map,
const char *  key 
)

◆ model_map_remove_key()

void * model_map_remove_key ( model_map map,
const void *  key,
size_t  key_len 
)

◆ model_map_removel()

void * model_map_removel ( model_map map,
long  key 
)

◆ model_map_set()

void * model_map_set ( model_map map,
const char *  key,
const void *  val 
)

◆ model_map_set_key()

void * model_map_set_key ( model_map m,
const void *  key,
size_t  key_len,
const void *  val 
)

◆ model_map_setl()

void * model_map_setl ( model_map map,
long  key,
const void *  val 
)

◆ model_map_size()

size_t model_map_size ( const model_map map)