Our internal representation of an RDR registration. More...
#include "rdrpriv.h"
Data Fields | |
sw_rdr_class | Class |
sw_rdr_priority | Priority |
void * | ptr |
size_t | length |
int | lock |
struct sw_rdr * | next |
Our internal representation of an RDR registration.
These are never exposed to Providers or Consumers.
Currently this is a linked list stored in ascending order of Class, Type, Id and descending Priority, but this may be restructured if the RDR system gains significant use.
Note that when multithreading, an RDR could conceivably be deregistered by another thread after it has been found but before it has been accessed, so all such usage MUST be protected by mutex.
sw_rdr_class sw_rdr::Class |
Capitalised because VC recognises 'class'
size_t sw_rdr::length |
Provider's length
int sw_rdr::lock |
Number of SwLockNextRDR() calls on this RDR
struct sw_rdr* sw_rdr::next |
A linked list (for now)
sw_rdr_priority sw_rdr::Priority |
Higher priorities take precedence
void* sw_rdr::ptr |
Provider's ptr