RE: new libbonobo API

[email protected]
Newsgroups gmane.comp.gnome.language-bindings
Message-ID <[email protected]>
Sorry for the massive delay in replying.

This not entirely clear - I think there's some confusion between CORBA and
Bonobo stuff here.

But it doesn't look like something that's going to affect the C++ bindings.
I think we already aggregate the C servers via client references, to
implement new derived CORBA interfaces. It's probably a lot easier in C++
because we don't deal with those C CORBA epv thingies much in the higher
levels.

But I'm not really sure what I'm talking about.


Murray Cumming
[email protected]
www.murrayc.com 

> -----Original Message-----
> From: James Henstridge [mailto:[email protected]] 
> Sent: Mittwoch, 16. April 2003 08:09
> To: [email protected]
> Subject: new libbonobo API
> 
> 
> One of the python bindings hackers (Gustavo Carneiro) has 
> been working 
> on some new APIs that allow the aggregation of CORBA interfaces not 
> implemented in C into a Bonobo component.
> 
> This essentially allows you to wrap a BonoboObject around an object 
> reference (the servant will probably still need to be 
> implemented with 
> ORBit2 due to the difficulties of colocating two ORBs in a single 
> process though).  The new API looks like this:
>    BonoboObject* bonobo_foreign_object_new (CORBA_Object 
> corba_objref);
> 
> The idea is that the language binding user could implement 
> the interface 
> as usual for their language, activate the servant and create a 
> BonoboObject wrapper around the objref.  The Bonobo::Unknown methods 
> (ref, unref and queryInterface) of the interface would need to be 
> proxied to the BonoboObject wrapper so that those methods keep the 
> correct semantics (they would be proxied to bonobo_object_ref(), 
> bonobo_object_unref() and bonobo_object_local_query_interface() 
> respectively).
> 
> It looks like this simple interface will be enough for the Python 
> bindings to allow implementation of custom interfaces for 
> components.  
> It would be good to hear what other language binding authors 
> think (in 
> particular, LBs for C++ which are _very_ different to 
> Python).  Comments 
> would be appreciated on either this list or the bugzilla bug:
>     http://bugzilla.gnome.org/show_bug.cgi?id=109973
> 
> 
> As a bit of background, the reason for needing this interface is the 
> weird way Bonobo builds up the vepv ('vector of entry point vectors') 
> for servants.  You create a GObject subclass of the 
> interface, and store 
> the epv for the interface at the end of the class struct.  Interfaces 
> that derive from other interfaces correspond to GObject classes that 
> derive from other classes.  Bonobo has some helpers to gather 
> these epvs 
> into the final vepv, which covers over some of the more ugly parts of 
> the CORBA C mapping.  Unfortunately, this makes things very difficult 
> for language bindings that perform calls differently.
> 
> The above API allows you to create a BonoboObject instance without 
> having to deal with all the C convenience routines.
> 
> James.
> <mailto:[email protected]>
> 
> -- 
> Email: [email protected]
> WWW:   http://www.daa.com.au/~james/
> 
> 
> 
> _______________________________________________
> language-bindings mailing list  [email protected]
> http://mail.gnome.org/mailman/listinfo/language-bindings
> 
_______________________________________________
language-bindings mailing list  [email protected]
http://mail.gnome.org/mailman/listinfo/language-bindings
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.