Re: [halls@debian.org: [Fwd: [porting-dev] The openoffice runed on the linux-mips successfully.Thank all of you !!]]
Hi,
> Is a bridge some sort of call wrapper?
A bridge is a piece of code that converts (bi-directionally) the calling
conventions from one langauge/component model to another.
OpenOffice.org uses the uno component model and as such needs a way to convert
C++ calls to uno-component calls and back again.
OOo has bridge code from C++ to uno, from Python to uno, Basic to uno, and
Java to uno (and of course back!) with I think someone working on a Perl to
Uno bridge. Therefore, you could implement a new OOo component in any of
those languages and make cross calls from one to the other via the uno
bridge.
See the OOo 1.1 SDK for examples of component code using Basic and C++ and
Java and the pyuno module for examples of using Python.
The C++ to Uno bridge code itself is highly machine, compiler and ABI
specific, since it must convert calling conventions from C++ method calls
(including vtable style calls for virtual methods actually implemented in
uno), handle exceptions thrown across the bridge, etc.
Examples of the code required to make a C++ bridge for many linux platforms
can be found in bridges/source/cpp_uno in the OOo CVS.
The nice thing is that the linux-mips team *already* has a working bridge for
gcc3! So all of the heavy machine specific pieces are already done!!
Kevin
Reply to: