[Libreoffice] errors in idl files

Tomas Hlavaty tomas.hlavaty at knowledgetools.de
Thu Nov 24 11:24:47 PST 2011


Hi Michael,

Michael Meeks <michael.meeks at suse.com> writes:
> Ok :-) so you would have a native implementation of the UNO RPC
> protocol?

yes ;-)

>> At the moment, I parse IDL files and hope (or have to make sure) that
>> the installed libreoffice is compatible.
>
> So - in -theory- (for all interesting cases), the UNO API is frozen (at
> the moment). In the future we plan to change that, so we can avoid
> piling up hacks).

Good to know.

>> To an extend, I could probably build the type library dynamically by
>> querying all interfaces instead of reading the RDB file, but I think
>> that would be unnecessarily slow.
>
> You could perhaps introspect them via UNO remotely, and cache the data
> per interface; not sure how many interfaces people typically use -
> but, prolly not -that- many :-)

Yes but I think that remote introspection would be slow.  I could do it
once and then dump it into a persistent cache, something like the RDB
file but in a more suitable format, e.g. using a XML or binary
serializer.

>> There seems to be some Python bridge to libreoffice. Does it use the
>> store code underneath a FFI?
>
> Sure - it links to the URE run-time; we have a stable C ABI that we
> export that has all the basic symbols and type information you need;
> and of course that makes running in-proc. much cleaner.

So so far everything goes through the C ABI.  Is that what is defined in
store/inc/store/store.h and store/inc/store/types.h?

However, I want to avoid any FFI.  I already have a native
implementation of the UNO RPC protocol in Common Lisp and I think other
users of dynamic languages might find it more convenient to implement a
native version too.  Wouldn't it be beneficial for Python users too for
example?

A simpler alternative to RDB file or a fast way to retrieve the type
library via UNO without one by one querying would be very convenient.

Are there any native implementations of the UNO RPC protocol so far,
e.g. for Java or is everybody going through FFI?

Thank you,

Tomas


More information about the LibreOffice mailing list