Tor 0.4.9.0-alpha-dev
|
Go to the source code of this file.
Macros | |
#define | DECLARE_MAP_FNS(mapname_t, keytype, prefix) |
#define | MAP_FREE_AND_NULL(mapname_t, map, fn) |
#define | strmap_free(map, fn) MAP_FREE_AND_NULL(strmap, (map), (fn)) |
#define | digestmap_free(map, fn) MAP_FREE_AND_NULL(digestmap, (map), (fn)) |
#define | digest256map_free(map, fn) MAP_FREE_AND_NULL(digest256map, (map), (fn)) |
#define | MAP_FOREACH(prefix, map, keytype, keyvar, valtype, valvar) |
#define | MAP_FOREACH_MODIFY(prefix, map, keytype, keyvar, valtype, valvar) |
#define | MAP_DEL_CURRENT(keyvar) |
#define | MAP_FOREACH_END } STMT_END ; |
#define | DIGESTMAP_FOREACH(map, keyvar, valtype, valvar) MAP_FOREACH(digestmap, map, const char *, keyvar, valtype, valvar) |
#define | DIGESTMAP_FOREACH_MODIFY(map, keyvar, valtype, valvar) MAP_FOREACH_MODIFY(digestmap, map, const char *, keyvar, valtype, valvar) |
#define | DIGESTMAP_FOREACH_END MAP_FOREACH_END |
#define | DIGEST256MAP_FOREACH(map, keyvar, valtype, valvar) MAP_FOREACH(digest256map, map, const uint8_t *, keyvar, valtype, valvar) |
#define | DIGEST256MAP_FOREACH_MODIFY(map, keyvar, valtype, valvar) |
#define | DIGEST256MAP_FOREACH_END MAP_FOREACH_END |
#define | STRMAP_FOREACH(map, keyvar, valtype, valvar) MAP_FOREACH(strmap, map, const char *, keyvar, valtype, valvar) |
#define | STRMAP_FOREACH_MODIFY(map, keyvar, valtype, valvar) MAP_FOREACH_MODIFY(strmap, map, const char *, keyvar, valtype, valvar) |
#define | STRMAP_FOREACH_END MAP_FOREACH_END |
#define | DECLARE_TYPED_DIGESTMAP_FNS(prefix, mapname_t, valtype) |
Functions | |
DECLARE_MAP_FNS (strmap_t, const char *, strmap) | |
DECLARE_MAP_FNS (digestmap_t, const char *, digestmap) | |
DECLARE_MAP_FNS (digest256map_t, const uint8_t *, digest256map) | |
void * | strmap_set_lc (strmap_t *map, const char *key, void *val) |
void * | strmap_get_lc (const strmap_t *map, const char *key) |
void * | strmap_remove_lc (strmap_t *map, const char *key) |
#define DECLARE_MAP_FNS | ( | mapname_t, | |
keytype, | |||
prefix | |||
) |
#define DECLARE_TYPED_DIGESTMAP_FNS | ( | prefix, | |
mapname_t, | |||
valtype | |||
) |
#define DIGEST256MAP_FOREACH | ( | map, | |
keyvar, | |||
valtype, | |||
valvar | |||
) | MAP_FOREACH(digest256map, map, const uint8_t *, keyvar, valtype, valvar) |
#define DIGEST256MAP_FOREACH_END MAP_FOREACH_END |
#define DIGEST256MAP_FOREACH_MODIFY | ( | map, | |
keyvar, | |||
valtype, | |||
valvar | |||
) |
#define digest256map_free | ( | map, | |
fn | |||
) | MAP_FREE_AND_NULL(digest256map, (map), (fn)) |
#define DIGESTMAP_FOREACH | ( | map, | |
keyvar, | |||
valtype, | |||
valvar | |||
) | MAP_FOREACH(digestmap, map, const char *, keyvar, valtype, valvar) |
As MAP_FOREACH, but does not require declaration of prefix or keytype. Example use: DIGESTMAP_FOREACH(m, k, routerinfo_t *, r) { // use k and r } DIGESTMAP_FOREACH_END.
#define DIGESTMAP_FOREACH_END MAP_FOREACH_END |
Used to end a DIGESTMAP_FOREACH() block.
#define DIGESTMAP_FOREACH_MODIFY | ( | map, | |
keyvar, | |||
valtype, | |||
valvar | |||
) | MAP_FOREACH_MODIFY(digestmap, map, const char *, keyvar, valtype, valvar) |
As MAP_FOREACH_MODIFY, but does not require declaration of prefix or keytype. Example use: DIGESTMAP_FOREACH_MODIFY(m, k, routerinfo_t *, r) { if (is_very_old(r)) MAP_DEL_CURRENT(k); } DIGESTMAP_FOREACH_END.
#define digestmap_free | ( | map, | |
fn | |||
) | MAP_FREE_AND_NULL(digestmap, (map), (fn)) |
#define MAP_DEL_CURRENT | ( | keyvar | ) |
#define MAP_FOREACH | ( | prefix, | |
map, | |||
keytype, | |||
keyvar, | |||
valtype, | |||
valvar | |||
) |
Iterates over the key-value pairs in a map map in order. prefix is as for DECLARE_MAP_FNS (i.e., strmap or digestmap). The map's keys and values are of type keytype and valtype respectively; each iteration assigns them to keyvar and valvar.
Example use: MAP_FOREACH(digestmap, m, const char *, k, routerinfo_t *, r) { // use k and r } MAP_FOREACH_END.
#define MAP_FOREACH_END } STMT_END ; |
Used to end a MAP_FOREACH() block.
#define MAP_FOREACH_MODIFY | ( | prefix, | |
map, | |||
keytype, | |||
keyvar, | |||
valtype, | |||
valvar | |||
) |
As MAP_FOREACH, except allows members to be removed from the map during the iteration via MAP_DEL_CURRENT. Example use:
Example use: MAP_FOREACH(digestmap, m, const char *, k, routerinfo_t *, r) { if (is_very_old(r)) MAP_DEL_CURRENT(k); } MAP_FOREACH_END.
#define MAP_FREE_AND_NULL | ( | mapname_t, | |
map, | |||
fn | |||
) |
#define STRMAP_FOREACH | ( | map, | |
keyvar, | |||
valtype, | |||
valvar | |||
) | MAP_FOREACH(strmap, map, const char *, keyvar, valtype, valvar) |
#define STRMAP_FOREACH_END MAP_FOREACH_END |
#define STRMAP_FOREACH_MODIFY | ( | map, | |
keyvar, | |||
valtype, | |||
valvar | |||
) | MAP_FOREACH_MODIFY(strmap, map, const char *, keyvar, valtype, valvar) |
#define strmap_free | ( | map, | |
fn | |||
) | MAP_FREE_AND_NULL(strmap, (map), (fn)) |
void * strmap_get_lc | ( | const strmap_t * | map, |
const char * | key | ||
) |
Same as strmap_get, but first converts key to lowercase.
Definition at line 360 of file map.c.
Referenced by addressmap_have_mapping(), addressmap_match_superdomains(), geoip_get_country(), or_state_remove_obsolete_lines(), and routerset_contains2().
void * strmap_remove_lc | ( | strmap_t * | map, |
const char * | key | ||
) |
void * strmap_set_lc | ( | strmap_t * | map, |
const char * | key, | ||
void * | val | ||
) |
Same as strmap_set, but first converts key to lowercase.
Definition at line 346 of file map.c.
Referenced by or_state_remove_obsolete_lines().