A mesh query state Unique per qname, qtype, qclass (from the qstate). More...
#include <mesh.h>
Public Types | |
enum | mesh_list_select { mesh_no_list , mesh_forever_list , mesh_jostle_list } |
if this state is in the forever list, jostle list, or neither | |
Data Fields | |
rbnode_type | node |
node in mesh_area all tree, key is this struct. More... | |
rbnode_type | run_node |
node in mesh_area runnable tree, key is this struct | |
struct module_qstate | s |
the query state. More... | |
struct mesh_reply * | reply_list |
the list of replies to clients for the results | |
struct mesh_cb * | cb_list |
the list of callbacks for the results | |
rbtree_type | super_set |
set of superstates (that want this state's result) contains struct mesh_state_ref* | |
rbtree_type | sub_set |
set of substates (that this state needs to continue) contains struct mesh_state_ref* | |
size_t | num_activated |
number of activations for the mesh state | |
struct mesh_state * | prev |
previous in linked list for reply states | |
struct mesh_state * | next |
next in linked list for reply states | |
enum mesh_state::mesh_list_select | list_select |
struct mesh_state * | unique |
pointer to this state for uniqueness or NULL | |
uint8_t | replies_sent |
true if replies have been sent out (at end for alignment) | |
A mesh query state Unique per qname, qtype, qclass (from the qstate).
And RD / CD flag; in case a client turns it off. And priming queries are different from ordinary queries (because of hints).
The entire structure is allocated in a region, this region is the qstate region. All parts (rbtree nodes etc) are also allocated in the region.
rbnode_type mesh_state::node |
node in mesh_area all tree, key is this struct.
Must be first.
Referenced by mesh_area_find(), mesh_new_callback(), and mesh_state_create().
struct module_qstate mesh_state::s |
the query state.
Note that the qinfo and query_flags may not change.
Referenced by do_dump_requestlist(), get_mesh_status(), mesh_area_find(), mesh_continue(), mesh_delete_helper(), mesh_do_callback(), mesh_get_mem(), mesh_log_list(), mesh_make_new_space(), mesh_new_callback(), mesh_new_client(), mesh_query_done(), mesh_respond_serve_expired(), mesh_run(), mesh_serve_expired_callback(), mesh_serve_expired_init(), mesh_state_add_cb(), mesh_state_add_reply(), mesh_state_attachment(), mesh_state_cleanup(), mesh_state_compare(), mesh_state_create(), mesh_state_delete(), and mesh_walk_supers().