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.