Re: DII/DSI




Jon K Hellan <hellan@acm.org> writes:

> Hi,
> 
> Michael Meeks asked me to share this with the list:
> 
> > 	Yes, the perl bindings are a quick hack. The 'right way'TM is to
> > use the DSI / DII interface but it is a lot more code. I see no point in
> > writing ORBit wrappers for python if the omniorb ones are already writte,
> > better and prolly use DII / DSI already :-)

Let me just quickly mention that rewriting the ORBit Perl bindings to
use DSI / DII would NOT be an improvement.

It would be slower, more code, and would offer no conceivable advantage
other than portability to a different C-based ORB (and their aren't
really any.)

Basically, the C binding for the DII/DSI is pretty painful - you
need to construct the C structures in memory. The process would look
like:

 - ORBit-Perl walks the typecode and a translates the Perl data types
   into C data types using non-portable knowledge of C structure alignment,
   etc.

 - ORBit walks the typecode and translates the C data types into wire
   format, using non-portable knowledge of C structure alignment,
   etc.

As compared to the way it works now which is:

 - ORBit-Perl walks the typecode and a translates the Perl data types
   into wire format.

Using the C++ DII/DSI is a bit cleaner, but is still doing the 
double typecode walk internally.

(There are some things about the interface to marshalling/demarshalling
in ORBit which are less than perfectly clean, but that doesn't mean
that using DII/DSI is the right way to go.)

Regards,
                                        Owen



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