Events and Signals
typedef unsigned short QSignal;
struct QEvent
{
QSignal sig; // signal of the event instance
unsigned char poolId; // pool this event instance comes from
unsigned char useNum; // # of times it has been used so far
};
Unsigned short limits signal types to 216
(less four for system = 65,532 client-specifiable signals)
Event type includes signal and parameters (defined in derived type)
struct without constructors and virtual methods
enables re-use of event instances in event queue
General use pattern:
- State handler method receives generic QEvent * e
- Handler accesses e->sig
- Attribute sig must map uniquely to derived event type
- Handler accesses data after specific down cast to concrete event
Another example from QCalc[7]