[Libreoffice-commits] core.git: scripting/source scripting/util

Noel Grandin (via logerrit) logerrit at kemper.freedesktop.org
Tue Jul 14 18:26:22 UTC 2020


 scripting/source/provider/BrowseNodeFactoryImpl.cxx       |   38 +----
 scripting/source/provider/MasterScriptProvider.cxx        |   97 --------------
 scripting/source/provider/MasterScriptProvider.hxx        |   11 -
 scripting/source/provider/MasterScriptProviderFactory.cxx |   28 +---
 scripting/source/provider/URIHelper.cxx                   |    9 +
 scripting/util/scriptframe.component                      |   18 +-
 6 files changed, 42 insertions(+), 159 deletions(-)

New commits:
commit 8e6c5635bed20790dcf10da99766c92d4589845e
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Jul 14 12:04:51 2020 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Jul 14 20:25:34 2020 +0200

    scripting/provider: create instances with uno constructors
    
    See tdf#74608 for motivation.
    
    Change-Id: If5337702e4bdc583bbae34e90a89c20b7341937e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98738
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/scripting/source/provider/BrowseNodeFactoryImpl.cxx b/scripting/source/provider/BrowseNodeFactoryImpl.cxx
index 20574bf70c6f..26fc13331ec5 100644
--- a/scripting/source/provider/BrowseNodeFactoryImpl.cxx
+++ b/scripting/source/provider/BrowseNodeFactoryImpl.cxx
@@ -612,46 +612,19 @@ BrowseNodeFactoryImpl::getOrganizerHierarchy() const
     return xRet;
 }
 
-// Helper methods
-
-
-// Namespace global methods for setting up BrowseNodeFactory service
-
-
-Sequence< OUString >
-bnf_getSupportedServiceNames( )
-{
-    return { "com.sun.star.script.browse.BrowseNodeFactory" };
-}
-
-OUString
-bnf_getImplementationName( )
-{
-    return
-        "com.sun.star.script.browse.BrowseNodeFactory";
-}
-
-Reference< XInterface >
-bnf_create( Reference< XComponentContext > const & xComponentContext )
-{
-    return static_cast< ::cppu::OWeakObject * >(
-        new BrowseNodeFactoryImpl( xComponentContext ) );
-}
-
-
 // Implementation of XServiceInfo
 
 
 OUString SAL_CALL
 BrowseNodeFactoryImpl::getImplementationName()
 {
-    return bnf_getImplementationName();
+    return "com.sun.star.script.browse.BrowseNodeFactory";
 }
 
 Sequence< OUString > SAL_CALL
 BrowseNodeFactoryImpl::getSupportedServiceNames()
 {
-    return bnf_getSupportedServiceNames();
+    return { "com.sun.star.script.browse.BrowseNodeFactory" };
 }
 
 sal_Bool BrowseNodeFactoryImpl::supportsService(OUString const & serviceName )
@@ -659,6 +632,13 @@ sal_Bool BrowseNodeFactoryImpl::supportsService(OUString const & serviceName )
     return cppu::supportsService(this, serviceName);
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+scripting_BrowseNodeFactoryImpl_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
+{
+    return cppu::acquire(new BrowseNodeFactoryImpl(context));
+}
+
 } // namespace browsenodefactory
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/scripting/source/provider/MasterScriptProvider.cxx b/scripting/source/provider/MasterScriptProvider.cxx
index 703e01c86299..007df949e93b 100644
--- a/scripting/source/provider/MasterScriptProvider.cxx
+++ b/scripting/source/provider/MasterScriptProvider.cxx
@@ -665,101 +665,14 @@ Sequence< OUString > SAL_CALL MasterScriptProvider::getSupportedServiceNames( )
         "com.sun.star.script.provider.ScriptProvider" };
 }
 
-} // namespace func_provider
-
-
-namespace scripting_runtimemgr
-{
-
-static Reference< XInterface > sp_create(
-    const Reference< XComponentContext > & xCompC )
-{
-    return static_cast<cppu::OWeakObject *>(new ::func_provider::MasterScriptProvider( xCompC ));
-}
-
-
-static Sequence< OUString > sp_getSupportedServiceNames( )
-{
-    return { "com.sun.star.script.provider.MasterScriptProvider",
-             "com.sun.star.script.browse.BrowseNode",
-             "com.sun.star.script.provider.ScriptProvider" };
-}
-
-
-static OUString sp_getImplementationName( )
-{
-    return "com.sun.star.script.provider.MasterScriptProvider";
-}
-
-// ***** registration or ScriptingFrameworkURIHelper
-static Reference< XInterface > urihelper_create(
-    const Reference< XComponentContext > & xCompC )
-{
-    return static_cast<cppu::OWeakObject *>(
-        new ::func_provider::ScriptingFrameworkURIHelper( xCompC ));
-}
-
-static Sequence< OUString > urihelper_getSupportedServiceNames( )
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+scripting_MasterScriptProvider_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
 {
-    return { "com.sun.star.script.provider.ScriptURIHelper" };
+    return cppu::acquire(new MasterScriptProvider(context));
 }
 
-static OUString urihelper_getImplementationName( )
-{
-    return "com.sun.star.script.provider.ScriptURIHelper";
-}
-
-const struct cppu::ImplementationEntry s_entries [] =
-    {
-        {
-            sp_create, sp_getImplementationName,
-            sp_getSupportedServiceNames, cppu::createSingleComponentFactory,
-            nullptr, 0
-        },
-        {
-            urihelper_create,
-            urihelper_getImplementationName,
-            urihelper_getSupportedServiceNames,
-            cppu::createSingleComponentFactory,
-            nullptr, 0
-        },
-        {
-            func_provider::mspf_create, func_provider::mspf_getImplementationName,
-            func_provider::mspf_getSupportedServiceNames, cppu::createSingleComponentFactory,
-            nullptr, 0
-        },
-        {
-            browsenodefactory::bnf_create, browsenodefactory::bnf_getImplementationName,
-            browsenodefactory::bnf_getSupportedServiceNames, cppu::createSingleComponentFactory,
-            nullptr, 0
-        },
-        { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }
-    };
-}
-
-
-//#### EXPORTED ##############################################################
-
+} // namespace func_provider
 
-extern "C"
-{
-    /**
-     * This function is called to get service factories for an implementation.
-     *
-     * @param pImplName       name of implementation
-     * @param pServiceManager a service manager, need for component creation
-     * @param pRegistryKey    the registry key for this component, need for persistent
-     *                        data
-     * @return a component factory
-     */
-    SAL_DLLPUBLIC_EXPORT void * scriptframe_component_getFactory(
-        const char * pImplName,
-        void * pServiceManager,
-        void * pRegistryKey )
-    {
-        return ::cppu::component_getFactoryHelper( pImplName, pServiceManager,
-            pRegistryKey, ::scripting_runtimemgr::s_entries );
-    }
-}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/scripting/source/provider/MasterScriptProvider.hxx b/scripting/source/provider/MasterScriptProvider.hxx
index 4cc4def03329..c35bdc90e13c 100644
--- a/scripting/source/provider/MasterScriptProvider.hxx
+++ b/scripting/source/provider/MasterScriptProvider.hxx
@@ -126,17 +126,6 @@ private:
     OUString m_sCtxString;
 };
 
-OUString mspf_getImplementationName() ;
-css::uno::Reference< css::uno::XInterface > mspf_create( css::uno::Reference< css::uno::XComponentContext > const & xComponentContext );
-css::uno::Sequence< OUString > mspf_getSupportedServiceNames();
-
-}
-
-namespace browsenodefactory
-{
-OUString bnf_getImplementationName() ;
-css::uno::Reference< css::uno::XInterface > bnf_create( css::uno::Reference< css::uno::XComponentContext > const & xComponentContext );
-css::uno::Sequence< OUString > bnf_getSupportedServiceNames();
 }
 
 #endif // INCLUDED_SCRIPTING_SOURCE_PROVIDER_MASTERSCRIPTPROVIDER_HXX
diff --git a/scripting/source/provider/MasterScriptProviderFactory.cxx b/scripting/source/provider/MasterScriptProviderFactory.cxx
index 66de3a5cbb79..cc29abd0a969 100644
--- a/scripting/source/provider/MasterScriptProviderFactory.cxx
+++ b/scripting/source/provider/MasterScriptProviderFactory.cxx
@@ -58,31 +58,14 @@ MasterScriptProviderFactory::getActiveMSPList() const
     return m_MSPList;
 }
 
-Sequence< OUString > mspf_getSupportedServiceNames( )
-{
-    return { "com.sun.star.script.provider.MasterScriptProviderFactory" };
-}
-
-OUString mspf_getImplementationName( )
-{
-    return "com.sun.star.script.provider.MasterScriptProviderFactory";
-}
-
-Reference< XInterface >
-mspf_create( Reference< XComponentContext > const & xComponentContext )
-{
-    return static_cast< ::cppu::OWeakObject * >(
-        new MasterScriptProviderFactory( xComponentContext ) );
-}
-
 OUString SAL_CALL MasterScriptProviderFactory::getImplementationName()
 {
-    return mspf_getImplementationName();
+    return "com.sun.star.script.provider.MasterScriptProviderFactory";
 }
 
 Sequence< OUString > SAL_CALL MasterScriptProviderFactory::getSupportedServiceNames()
 {
-    return mspf_getSupportedServiceNames();
+    return { "com.sun.star.script.provider.MasterScriptProviderFactory" };
 }
 
 sal_Bool MasterScriptProviderFactory::supportsService(
@@ -93,4 +76,11 @@ sal_Bool MasterScriptProviderFactory::supportsService(
 
 } // namespace func_provider
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+scripting_MasterScriptProviderFactory_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
+{
+    return cppu::acquire(new func_provider::MasterScriptProviderFactory(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/scripting/source/provider/URIHelper.cxx b/scripting/source/provider/URIHelper.cxx
index f9c07a741b64..8df5b19578b9 100644
--- a/scripting/source/provider/URIHelper.cxx
+++ b/scripting/source/provider/URIHelper.cxx
@@ -253,6 +253,15 @@ ScriptingFrameworkURIHelper::getSupportedServiceNames()
 {
     return { "com.sun.star.script.provider.ScriptURIHelper" };
 }
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+scripting_ScriptingFrameworkURIHelper_get_implementation(
+    css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
+{
+    return cppu::acquire(new ScriptingFrameworkURIHelper(context));
 }
 
+}
+
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/scripting/util/scriptframe.component b/scripting/util/scriptframe.component
index 6590007ada33..fc2af2a6b78d 100644
--- a/scripting/util/scriptframe.component
+++ b/scripting/util/scriptframe.component
@@ -18,23 +18,25 @@
  -->
 
 <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
-    prefix="scriptframe" xmlns="http://openoffice.org/2010/uno-components">
-  <implementation name="com.sun.star.script.browse.BrowseNodeFactory">
+    xmlns="http://openoffice.org/2010/uno-components">
+  <implementation name="com.sun.star.script.browse.BrowseNodeFactory"
+    constructor="scripting_BrowseNodeFactoryImpl_get_implementation">
     <service name="com.sun.star.script.browse.BrowseNodeFactory"/>
     <singleton name="com.sun.star.script.browse.theBrowseNodeFactory"/>
   </implementation>
-  <implementation name="com.sun.star.script.provider.MasterScriptProvider">
+  <implementation name="com.sun.star.script.provider.MasterScriptProvider"
+    constructor="scripting_MasterScriptProvider_get_implementation">
     <service name="com.sun.star.script.browse.BrowseNode"/>
     <service name="com.sun.star.script.provider.MasterScriptProvider"/>
     <service name="com.sun.star.script.provider.ScriptProvider"/>
   </implementation>
-  <implementation
-      name="com.sun.star.script.provider.MasterScriptProviderFactory">
+  <implementation name="com.sun.star.script.provider.MasterScriptProviderFactory"
+    constructor="scripting_MasterScriptProviderFactory_get_implementation">
     <service name="com.sun.star.script.provider.MasterScriptProviderFactory"/>
-    <singleton
-        name="com.sun.star.script.provider.theMasterScriptProviderFactory"/>
+    <singleton name="com.sun.star.script.provider.theMasterScriptProviderFactory"/>
   </implementation>
-  <implementation name="com.sun.star.script.provider.ScriptURIHelper">
+  <implementation name="com.sun.star.script.provider.ScriptURIHelper"
+    constructor="scripting_ScriptingFrameworkURIHelper_get_implementation">
     <service name="com.sun.star.script.provider.ScriptURIHelper"/>
   </implementation>
 </component>


More information about the Libreoffice-commits mailing list