We have started implementing interfaces, components, ports, instances and connectors. At this point we can work with connected atomic components (no composite components yet). Here is some example code:
Turns out, that in order to implement component instances which can each be connected to different other components, we have to introduce a struct with functions pointers that keeps track of the wirings on a per-instance bases. The function references we implemented recently did a marvelous job here 🙂
Next up is the support for composite components.