Reorganize around the address space
Currently, we have the address_space module that mixes the processing of the write service together with address space operations. As we are about to add the AddNode service, it is time to fix that and implement a clean architecture pattern here.
The idea is to have:
- A module named
address_space_itf
that will be seen by all services that need to read the address space. - That module will import a
service_write
module that implements the Write service. - And the Write service will itself import the
address_space
module that implements only the operations for reading and modifying the address space.
This solution will allow to have a cleaner decoupling between services and the address space, while complying with the requirements of the B method on the architecture of projects (project-check).
The three modules cited above will all share the same description of the address space data and operations which will be implemented in a DEFINITIONS file to avoid too much copying (a better option would have to use INCLUDES, but this does not work with the b2c translator).
The new service_add_node
module can then be added either on top of service_write or just below it.