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. | |
| rbnode_type | run_node | 
| node in mesh_area runnable tree, key is this struct | |
| struct module_qstate | s | 
| the query state. | |
| 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(), mesh_new_client(), 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_remove_callback(), mesh_respond_serve_expired(), mesh_run(), mesh_send_reply(), 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().