Our private iterator structure. More...
#include "rdrpriv.h"
Data Fields | |
int32 | magic |
int32 | flags |
sw_rdr_class | Class |
sw_rdr_type | Type |
sw_rdr_id | Id |
sw_rdr_priority | Priority |
sw_rdr * | rdr |
sw_rdr * | parent |
sw_rdr * | locked |
rdr_lookup_t * | lookup |
struct sw_rdr_iterator * | next |
Our private iterator structure.
We manage these internally, to cope with (de)registrations mid-iteration.
These are opaque to Consumers, and are not used by Providers.
Note that when multithreading, all accesses of any of these values MUST be performed under mutex, as the contents can be changed by other threads.
sw_rdr_class sw_rdr_iterator::Class |
if flags.b0
int32 sw_rdr_iterator::flags |
Which values to check
sw_rdr_id sw_rdr_iterator::Id |
if flags.b2
sw_rdr* sw_rdr_iterator::locked |
current RDR if locked
rdr_lookup_t* sw_rdr_iterator::lookup |
Head of the lookup RDR list.
int32 sw_rdr_iterator::magic |
Magic value to check iterator
struct sw_rdr_iterator* sw_rdr_iterator::next |
list of current iterators
sw_rdr* sw_rdr_iterator::parent |
parent of returned RDR
sw_rdr_priority sw_rdr_iterator::Priority |
if flags.b3
sw_rdr* sw_rdr_iterator::rdr |
next RDR to check
sw_rdr_type sw_rdr_iterator::Type |
if flags.b1