RE: new libbonobo API
- From: Murray Cumming Comneon com
- To: james daa com au, language-bindings gnome org
- Subject: RE: new libbonobo API
- Date: Fri, 9 May 2003 14:23:37 +0200
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
murrayc usa net
www.murrayc.com
> -----Original Message-----
> From: James Henstridge [mailto:james daa com au]
> Sent: Mittwoch, 16. April 2003 08:09
> To: language-bindings gnome org
> 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:gjc inescporto pt>
>
> --
> Email: james daa com au
> WWW: http://www.daa.com.au/~james/
>
>
>
> _______________________________________________
> language-bindings mailing list language-bindings gnome org
> http://mail.gnome.org/mailman/listinfo/language-bindings
>
[Date Prev][
Date Next] [Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]