[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: