anuragraghavan / franca

Automatically exported from code.google.com/p/franca
0 stars 0 forks source link

Add multiple inheritance on interface level #110

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Single inheritance is sometimes quite limiting. On interface level multiple 
inheritance is a common feature as one can put together several interface 
building blocks.

the syntax could look like this:

interface MyService extends A B C {}

This extension would be backward compatible for older Franca IDL definitions 
IMO.

Original issue reported on code.google.com by manfred....@bmw.de on 10 Jun 2014 at 2:37

GoogleCodeExporter commented 9 years ago
This is backward compatible with respect to existing Franca files, but not with 
respect to downstream tools. It has to be analysed how this feature can be 
mapped to target platforms and models which do not support multiple 
inheritance. 

It also has to be checked which rules should apply for diamond inheritance. Do 
we need "virtual" inheritance, then?

Original comment by klaus.birken@gmail.com on 8 Jul 2014 at 12:48

GoogleCodeExporter commented 9 years ago
multiple inheritance on interface level is quite simple to perform in 
comparison to implementation level. At interface level, multiple inheritance is 
equivalent to joint set of interface features with distinct signatures. The 
diamond problem does not exist on interface level.
Multiple inheritance for implementation is not proposed here, although 
implementation tools like CommonAPI C++ have to adapt to such a new feature for 
sure.

Original comment by manfred....@bmw.de on 15 Jul 2014 at 8:38

GoogleCodeExporter commented 9 years ago

Original comment by klaus.birken@gmail.com on 29 Jul 2014 at 9:45