A set of framework template classes to enable the easy creation of systems.
There are no frameworks defined at the moment, but this is the design brief I have given myself.
To create a set of modular template classes that can be mixed and matched together to provide message routing, finite
state machines, timer driven message generators, message buses and cooperative message passing schedulers.
The framework should use CRTP to eliminate most virtual functions.
The class types
Message types used for all classes.
A class that will automatically route incoming messages to specific handlers based on the message list defined in the
Finite State Machine
A finite state machine driven by the reception of messages (events) . The incoming messages will be automatically routed
to specific handlers based on the message list defined in the template parameters. Optional 'on entry' and 'on exit'
Timer driven message generators
A class that will be able to hook in to a hardware timer service and generate messages at asynchronous intervals.
This will likely be used in conjunction with the message router and/or finite state machine classes.
An expansion of the observer pattern in that message routers will be able to subscribe to messages on a bus.
The messages will be either broadcast, to be automatically picked up by any router that has a handler, or addressed to a
A cooperative multi-tasking message based task scheduler using a message router or FSM as the back-end handler.
A choice of scheduling priorities will be available.