Event class.
More...
#include "qp.h"
Event class.
- Description
- Class
QEvt
represents QP events and serves as the base class for derivation of events with parameters (see also Object Orientation).
- Traceability
-
- Usage
- The following example illustrates how to add event parameter(s) by inheriting the QEvt class. Please note that the QEvt member
super
is defined as the FIRST member of the derived class: typedef struct {
uint8_t keyId;
} KeypressEvt;
The following examples illustrate recommended ways to instantiate event objects based on the RAII principle (Resource Acquisition Is Initialization). Please see also QEVT_INITIALIZER().
static KeypressEvt const keyEvt = {
.keyId = 12U
}
KeypressEvt keyEvt = {
.keyId = keyId
};
#define QEVT_INITIALIZER(sig_)
- Note
- Please see macros Q_NEW() or Q_NEW_X() for code examples of allocating dynamic mutable events.
Definition at line 147 of file qp.h.
◆ QEvt_ctor()
QEvt::QEvt_ctor |
( |
QEvt *const | me, |
|
|
enum_t const | sig ) |
|
inlinestatic |
Event constructor.
- Description
- The main purpose of the QEvt constructor is to support dynamic allocation of events without parameters with the macros Q_NEW() or Q_NEW_X().
- Parameters
-
[in,out] | me | current instance pointer (see Object Orientation) |
[in] | sig | signal of the event to initialize (for non-dynamic events) or QEVT_DYNAMIC for dynamic events. |
- Returns
- Pointer to the initialized event (the
me
pointer, see Object Orientation).
- Traceability
-
- Usage
- The following example illustrates the use of the QEvt_ctor() directly (not recommended because not based on RAII):
KeypressEvt keypressEvt;
keypressEvt.keyId = 23U;
static QEvt * QEvt_ctor(QEvt *const me, enum_t const sig)
The following example illustrates the use of the QEvt_ctor() implicitly (called by the macro Q_NEW()) when the configuration macro QEVT_DYN_CTOR is defined:
#define Q_NEW(evtT_, sig_,...)
Definition at line 167 of file qp.h.
◆ QEvt_verify_()
QEvt::QEvt_verify_ |
( |
QEvt const *const | me | ) |
|
|
inlinestaticprivate |
Internal function to verify the event pointer and the memory marker in the event (QP FuSa Subsystem)
- Parameters
-
- Returns
- 'true' if this event passes the integrity check and 'false' otherwise.
Definition at line 181 of file qp.h.
◆ QEvt_getPoolNum_()
static uint_fast8_t QEvt_getPoolNum_ |
( |
QEvt const *const | me | ) |
|
|
inlinestaticprivate |
Definition at line 187 of file qp.h.
◆ QEvt_refCtr_inc_()
QEvt::QEvt_refCtr_inc_ |
( |
QEvt const * | me | ) |
|
|
inlinestaticprivate |
Internal function to increment the refCtr of a const event.
- Description
- This function requires "casting `const` away" from the event pointer, which violates MISRA-C:2023 Rule 11.8. This function encapsulates this violation.
- Traceability
-
Definition at line 87 of file qp_pkg.h.
◆ QEvt_refCtr_dec_()
QEvt::QEvt_refCtr_dec_ |
( |
QEvt const * | me | ) |
|
|
inlinestaticprivate |
Internal function to decrement the refCtr of a const event.
- Description
- This function requires "casting `const` away" from the event pointer, which violates MISRA-C:2023 Rule 11.8. This function encapsulates this violation.
- Traceability
-
Definition at line 92 of file qp_pkg.h.
◆ sig
◆ refCtr_
Reference counter (for mutable events, and 0 for immutable (static) events)
- Traceability
-
Definition at line 156 of file qp.h.
◆ evtTag_
Event "tag" containing pool-ID (indicating which event pool it came from) plus event marker
- Description
- The 8-bit
evtTag_
member stores the event-pool number (in bits 0:3) and the QEVT_MARKER memory marker for integrity checking (in bits 4:7). In the special case of immutable events (not from event pools) the event-pool number bits are 0 (but bits 4:7 must still hold the QEVT_MARKER memory marker).
- Traceability
-
Definition at line 159 of file qp.h.
The documentation for this class was generated from the following files: