Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


On 12/13/2013 12:02 PM, Michael Meeks wrote:
On Fri, 2013-12-13 at 11:36 +0100, Stephan Bergmann wrote:
To be clear, this is about source files, not installation-/run-time ones.

        Sure - but even so - there are a lot of components ;-)

        xmllint --format services.rdb | grep '<implementation' | wc -l
        1019
        git ls-files | grep '\.component' | wc -l
        270

        I'd prefer not to add (and maintain) another 700 tiny files to git that
are mostly headers; or did I miss the suggestion ?

Sure. And I'm not saying at all we shouldn't move ahead, just wanted to clarify build vs. runtime here.

        I guess until we have mergedlibs on Windows, we can't easily dispense
with the .component files for internal components and just build an
internal data-structure. Even if we did, I imagine compiling /
generating that from .component files might be more interesting &
elegant anyway.

Probably depends on how most elegantly to share the per-service-impl info needed by both the service mgr and the impl's XServiceInfo.

        True - but while we're here - AFAICS we should go further to clean that
up & make it more efficient =) it's a golden opportunity I think.

Btw, we have rather good conditions there wrt not having to care about compatibility too much:

Extension components are restricted to legacy active registration (covered by DllComponentLoader calling cppu::loadSharedLibComponentFactory w/o prefix) and to the original components XML schema (sans prefix attribute) for passive registration. That's all we need to keep stable.

Nowadays, the only code involved for passively registered components are cppuhelper/source/servicemanager.cxx reading the .rdb data and passing off instantiation requests to cppuhelper/source/shlib.cxx. For historical reasons they do so via a published additional cppu::loadSharedLibComponentFactory overload (with additional prefix argument), but that communication channel should rather be private.

That is, we can easily extend the components XML schema, even removing features again in a later LO version.

Stephan

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.