On Jan 26, 2012, at 13:19 PM, Pepijn Noltes wrote: > I have a problem relating to Celix services and inheritance. The > problem is than under Java it's quite normal to cast retrieved > services to a derived type, but under C this is not as easy and not > safe (no RTTI ->no instanceof).
Even though in Java you can (try to) cast a class or interface to a derived type, when you lookup a service in the OSGi service registry, it is extremely unwise to assume anything other than the fact that you just got an instance that implements exactly the interface you looked up. > [...] But I am not really happy with this solution. It leans to much on the > assumption service pointer can be cast to derived type and there is no > way to check if this is correct. Agreed. > In my opinion there are 2 alternative to this: > 1) > Register multiple services. But than means I am left with the > challenge how to find the related service. In Java, you already have the option of registering an instance under multiple service names. Would doing the same for C solve your issue? Greetings, Marcel
