RIMB implementation code structure depends on the Internal-Behavior tag: “SupportMultipleInstamtiation”. When the tag “SupportMultipleInstantiation” is “False”, RIMB will not use context pointers (“me”, “self”). Generating RIMB as a singleton or file, for example, not generating a struct and not having “me” “self” pointers.
Encapsulate data in the C-structure of the RIMB
Have “me” argument for all operation except ActiveOperation
Have “Rte_Instance self’ parameter with the following operations:
User model operations
Statechart dispatchEvent & takeEvent operations
Triggered operations
Active operations
Add code in the beginning of each Active Operation, to extract the “me” pointer from the “Rte_Instance self” parameter, by calling Rte_PIM API
ARBMT accessor helper operation
mxf RiCReactive operations: RiCReactive_consumeEvent, RiCReactive_takeEvent, RiCReactive_takeTrigger, runToCompletion
No RIMBO data/instance declaration
No RIMB_Init operation
Integrator must call the <RIMB-class>_Init, <RIMB-class>_startBehavior
Create ARXML definition for the RIMB PIM under the InternalBehavior
Create a related typedefs in generated code
The code can have circular dependency on types, as a result of the "Specification of the RTE" specifications. Those will have to be manually handled by the "integrator" .
The “Rte_Instance self” parameter is not added to Statechart “entDef” operations
Optimized Statechart is not supported
All Runnable Entities must be in “Run in Exclusive Area” mode
C_CG::Operation::OSContextName
C_CG::Operation::OSContextDeclType
C_CG::Operation::ActiveOperationExtractMeCall