The Interface Exchange Framework. Tools for processing interface/API descriptions in different formats, including the IFEX core format. Some example files are at: https://github.com/COVESA/vehicle_service_catalog.
Previously a D-Bus XML description output generator has been created, IFEX->D-Bus.
Next, a D-Bus input filter should be developed, to consume D-Bus interface description into IFEX model (enabling D-Bus to ) translations.
Rough design would be:
Parse XML using a standard parser
Create simpler recursive parser for the D-Bus type signature: '(n(yyi){yi}a(n))' and convert the fundamental types into IFEX fundamental types. This should be straight forward - bytes, integers, floats, arrays, dict/maps and structs are all supported of course.
It will be required to create generated parameter names for each type given in a method signature, since the parameters are anonymous there.
A method signature could be kept as individual components, or converted to a Struct type (like protobuf handles only a single Message definition as argument, not multiple arguments)
Previously a D-Bus XML description output generator has been created, IFEX->D-Bus.
Next, a D-Bus input filter should be developed, to consume D-Bus interface description into IFEX model (enabling D-Bus to) translations.
Rough design would be: