LibJuno 0.22.0
LibJuno is a lightweight C99 library designed specifically for embedded systems.
|
Go to the source code of this file.
Macros | |
The name of the module type | |
Declare a juno module implemented as a union | |
#define | JUNO_MODULE_DECLARE(name) typedef union name##_TAG name |
#define | JUNO_MODULE_BASE_DECLARE(name) typedef struct name##_TAG name |
#define | JUNO_MODULE_DERIVE_DECLARE(name) JUNO_MODULE_BASE_DECLARE(name) |
#define | JUNO_FAILURE_HANDLER _pfcnFailureHandler |
#define | JUNO_FAILURE_USER_DATA _pvFailurUserData |
#define | JUNO_MODULE_EMPTY |
#define | JUNO_MODULE_SUPER tBase |
#define | JUNO_MODULE(name, API, base, derived) |
#define | JUNO_MODULE_BASE(name, API, members) |
#define | JUNO_MODULE_DERIVE(name, base, members) |
#define | JUNO_MODULE_GET_API(ptModule, MODULE_BASE_NAME) ((const MODULE_BASE_NAME *)ptModule)->ptApi |
#define JUNO_FAILURE_HANDLER _pfcnFailureHandler |
Alias for the failure handler for a module
#define JUNO_FAILURE_USER_DATA _pvFailurUserData |
Alias for the failure handler user data for a module
#define JUNO_MODULE | ( | name, | |
API, | |||
base, | |||
derived | |||
) |
Define a juno module. This needs to be done in the composition root. This is where users define all possible module implementations for a module.
name | The name of the module as declared |
API | The name of the API type for the module |
base | The name of the base implementation type for the module as declared |
derived | The derived modules seperated by ; |
#define JUNO_MODULE_BASE | ( | name, | |
API, | |||
members | |||
) |
Implement a base for a module
name | The name of the module base implementation as declared |
API | The API type for the module |
members | The member components of the module base implementation |
#define JUNO_MODULE_BASE_DECLARE | ( | name | ) | typedef struct name##_TAG name |
Declare a base implementation for the module implemented as a struct
name | The name of the base implementation type |
#define JUNO_MODULE_DECLARE | ( | name | ) | typedef union name##_TAG name |
#define JUNO_MODULE_DERIVE | ( | name, | |
base, | |||
members | |||
) |
Implement a derivation of a module
name | The name of the module derivation as declared |
base | The name of the base implementation for the module as declared |
members | The member components of the module derivation |
#define JUNO_MODULE_DERIVE_DECLARE | ( | name | ) | JUNO_MODULE_BASE_DECLARE(name) |
Declare a derivation of a juno module implemented as a struct
name | The name of the derived module type |
#define JUNO_MODULE_EMPTY |
Empty macro that indicates a module implementation has no additional members
#define JUNO_MODULE_GET_API | ( | ptModule, | |
MODULE_BASE_NAME | |||
) | ((const MODULE_BASE_NAME *)ptModule)->ptApi |
Get the API pointer from the module
ptModule | The module pointer |
MODULE_BASE_NAME | The base type of the module |
#define JUNO_MODULE_SUPER tBase |
Alias for the module base implementation