An Event is the specification of some occurrence that may potentially have significance to the system under consideration. Upon such an occurrence, a corresponding Event (class) is instantiated, and the generated Event Instance (object) outlives the instantaneous occurrence that generated it.
Event Instances (a.k.a. Messages) are objects specifically designed for communication and synchronization within an event-driven system, such as a QP Application. Once generated, an Event Instance (a.k.a. Message) is propagated to the system, where it can trigger various Actions. These Actions might involve generating secondary Event Instances.
An Event always has information about the type of occurrence that generated the Event Instance ("what happened"), which will be called Signal in this document. Event Signals are typically enumerated constants that indicate which specific occurrence out of a set of all possible (enumerated) occurrences has generated the Event Instance.
An Event can have (optionally) associated Parameters, allowing the Event Instance to convey the quantitative information regarding that occurrence. For example, a Keystroke event generated by pressing a key on a computer keyboard might have associated parameters that carry the character scan code and the status of the Shift, Ctrl, and Alt keys.
QP Framework shall provide Event abstraction to QP Application
constexpr
constructor applicable to immutable and mutable event instances. Each event instance shall contain the event Signal
constexpr
constructor applicable to immutable and mutable event instances.The dynamic range of the event signal shall be compile-time configurable
QP Framework may reserve some signals for its internal use
QP Framework shall provide the lowest numerical value of signals allowed in the Application
0 .. (SIGNAL_OFFSET - 1)
, and the Application-level signals will have values SIGNAL_OFFSET .. SIGNAL_DYNAMIC_RANGE
. QP Framework shall allow Application to create event instances with Parameters defined by the Application
constexpr
constructor applicable to immutable and mutable event instances.Event abstraction may contain other data items for internal event management inside QP Framework
constexpr
constructor applicable to immutable and mutable event instances.QP Framework may be compile-time configurable to allow customized constructor and other custom operations on event instances
constexpr
constructor applicable to immutable and mutable event instances. QP Framework may be compile-time configurable to allow customized destructor of event instances