xref: /unit/src/nxt_hash.h (revision 0:a63ceefd6ab0)
1 
2 /*
3  * Copyright (C) Igor Sysoev
4  * Copyright (C) NGINX, Inc.
5  */
6 
7 #ifndef _NXT_HASH_H_INCLUDED_
8 #define _NXT_HASH_H_INCLUDED_
9 
10 
11 typedef struct {
12     nxt_lvlhsh_t              lvlhsh;
13     const nxt_lvlhsh_proto_t  *proto;
14     void                      *pool;
15 } nxt_hash_t;
16 
17 
18 nxt_inline nxt_int_t
nxt_hash_find(nxt_hash_t * h,nxt_lvlhsh_query_t * lhq)19 nxt_hash_find(nxt_hash_t *h, nxt_lvlhsh_query_t *lhq)
20 {
21     lhq->proto = h->proto;
22 
23     return nxt_lvlhsh_find(&h->lvlhsh, lhq);
24 }
25 
26 
27 nxt_inline nxt_int_t
nxt_hash_insert(nxt_hash_t * h,nxt_lvlhsh_query_t * lhq)28 nxt_hash_insert(nxt_hash_t *h, nxt_lvlhsh_query_t *lhq)
29 {
30     lhq->proto = h->proto;
31     lhq->pool = h->pool;
32 
33     return nxt_lvlhsh_insert(&h->lvlhsh, lhq);
34 }
35 
36 
37 nxt_inline nxt_int_t
nxt_hash_delete(nxt_hash_t * h,nxt_lvlhsh_query_t * lhq)38 nxt_hash_delete(nxt_hash_t *h, nxt_lvlhsh_query_t *lhq)
39 {
40     lhq->proto = h->proto;
41     lhq->pool = h->pool;
42 
43     return nxt_lvlhsh_delete(&h->lvlhsh, lhq);
44 }
45 
46 
47 #endif /* _NXT_HASH_H_INCLUDED_ */
48