htils 1
A small set of utilities for C programming.
Loading...
Searching...
No Matches
stringmap.h
Go to the documentation of this file.
1#ifndef H2OTILS_STRINGMAP_H
2#define H2OTILS_STRINGMAP_H
3
4#include <h2o/memory.h>
5
6#include <htils/basictypes.h>
7
8#include <h2otils/string.h>
9
10//
11//
12//
13
26
44
58
76
77//
78//
79//
80
82#ifdef USE_NULLABLE_TYPES
83typedef h2o_stringmap_t h2o_stringmap_nullable_t;
84#endif
85
86//
87//
88//
89
104h2o_stringmap_t *h2o_sm_new(h2o_mem_pool_t *pool, const u64 capacity);
105
106//
107//
108//
109
133 const h2o_string *key, const void *value,
134 u64 vsize);
135
136#define __H2O_SM_VAL(val) (val), sizeof(*val)
137#define h2o_sm_insert(map, key, value) \
138 __h2o_sm_insert(map, key, __H2O_SM_VAL(value))
139
155
156//
157//
158//
159
174void *h2o_sm_get(h2o_stringmap_t *map, const h2o_string *key);
175
176#endif // !H2OTILS_STRINGMAP_H
uint64_t u64
Definition basictypes.h:17
h2o_iovec_t h2o_string
Definition string.h:22
h2o_stringmap_t * h2o_sm_new(h2o_mem_pool_t *pool, const u64 capacity)
Initializes a new h2o_stringmap_t.
Definition stringmap.c:117
h2o_stringmap_result
The result of a stringmap operation.
Definition stringmap.h:37
@ UPDATED
Definition stringmap.h:39
@ KILLED
Definition stringmap.h:42
@ CREATED
Definition stringmap.h:38
@ NOT_FOUND
Definition stringmap.h:41
enum h2o_stringmap_entry_state h2o_stringmap_entry_state_t
The state of a h2o_stringmap entry.
struct h2o_stringmap_entry h2o_stringmap_entry_t
A h2o_stringmap entry.
h2o_stringmap_result_t h2o_sm_kill(h2o_stringmap_t *map, const h2o_string *key)
Remove / Kill entry at key from the h2o_stringmap_t.
Definition stringmap.c:206
void * h2o_sm_get(h2o_stringmap_t *map, const h2o_string *key)
Get a V from the h2o_stringmap_t.
Definition stringmap.c:245
enum h2o_stringmap_result h2o_stringmap_result_t
The result of a stringmap operation.
h2o_stringmap_entry_state
The state of a h2o_stringmap entry.
Definition stringmap.h:21
@ DEAD
Definition stringmap.h:24
@ EMPTY
Definition stringmap.h:22
@ OCCUPIED
Definition stringmap.h:23
h2o_stringmap_result_t __h2o_sm_insert(h2o_stringmap_t *map, const h2o_string *key, const void *value, u64 vsize)
Insert key and value into the h2o_stringmap_t.
Definition stringmap.c:147
struct h2o_stringmap h2o_stringmap_t
A h2o_stringmap_t.
A h2o_stringmap entry.
Definition stringmap.h:52
u64 vsize
Definition stringmap.h:55
enum h2o_stringmap_entry_state state
Definition stringmap.h:56
void * value
Definition stringmap.h:54
h2o_string * key
Definition stringmap.h:53
A h2o_stringmap_t.
Definition stringmap.h:68
u64 count
Definition stringmap.h:73
h2o_mem_pool_t * pool
Definition stringmap.h:69
h2o_stringmap_entry_t * entries
Definition stringmap.h:70
u64 dead_entries
Definition stringmap.h:74
u64 capacity
Definition stringmap.h:72