platform independent kdeinit/klauncher (was KDE4's IPC)

Stefan Teleman steleman at nyc.rr.com
Thu Dec 29 22:43:43 GMT 2005


> On Thursday 29 December 2005 12:16, nf2 wrote:
> > Isn't that just a main-loop problem?

nope. that's the smallest of problems (you just initialize and start the ORB 
in its own thread, and you're done).

the big integration problem is: DCOPClient, DCOPObject and DCOPRef need CORBA 
bindings. if you make them inherit from CORBA::Object (which is the intuitive 
way of doing it) you can then implement the "orbification" by the standard 
CORBA double-inheritance:

 class DCOPObjectImpl : virtual public PortableServer::Servant_base,
                         virtual public  KDE::DCOP::POA_DCOPObject

but this way you completely break binary compatibility with the non-CORBA KDE, 
and every single time you want to upgrade KDE, you have to recompile 
everything from scratch and test it. so the cleaner way is to bridge 
CORBA<->DCOP (and keep DCOP clean instead of making DCOP a CORBA service), 
and for this you create a separate bridge library (libKORBA.so.4.0.0), and 
then you hide the implementation of the method marshalling between CORBA and 
DCOP in there. and this is exactly the part they didn't want to have to pay 
for, because they thought KDE should provide this.

btw, you can substitute DBUS for DCOP.

o-well.

--Stefan

-- 
Stefan Teleman          'Nobody Expects the Spanish Inquisition'
steleman at nyc.rr.com                          -Monty Python




More information about the kde-core-devel mailing list