From 8e6c5635bed20790dcf10da99766c92d4589845e Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Tue, 14 Jul 2020 12:04:51 +0200 Subject: 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 --- .../source/provider/BrowseNodeFactoryImpl.cxx | 38 ++------- scripting/source/provider/MasterScriptProvider.cxx | 97 ++-------------------- scripting/source/provider/MasterScriptProvider.hxx | 11 --- .../provider/MasterScriptProviderFactory.cxx | 28 ++----- scripting/source/provider/URIHelper.cxx | 9 ++ scripting/util/scriptframe.component | 18 ++-- 6 files changed, 42 insertions(+), 159 deletions(-) (limited to 'scripting') 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 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(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( - 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 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 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 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 @@ --> - + xmlns="http://openoffice.org/2010/uno-components"> + - + - + - + - + -- cgit