[Libreoffice-commits] core.git: scripting/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 15 08:08:54 UTC 2020
scripting/source/protocolhandler/protocolhandler.component | 5
scripting/source/protocolhandler/scripthandler.cxx | 73 -------------
scripting/source/protocolhandler/scripthandler.hxx | 12 --
3 files changed, 8 insertions(+), 82 deletions(-)
New commits:
commit b2835b2a65918c8ea73fde4ba6befa1fabbe6033
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Jul 14 12:35:28 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Jul 15 10:08:08 2020 +0200
scripting/protocolhandler: create instances with uno constructors
See tdf#74608 for motivation.
Change-Id: I5618d68317a24bfe92dc166ffc81dcf5ffeba1e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98740
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/scripting/source/protocolhandler/protocolhandler.component b/scripting/source/protocolhandler/protocolhandler.component
index d569cfe9911a..959c332c0e86 100644
--- a/scripting/source/protocolhandler/protocolhandler.component
+++ b/scripting/source/protocolhandler/protocolhandler.component
@@ -18,8 +18,9 @@
-->
<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
- prefix="protocolhandler" xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.comp.ScriptProtocolHandler">
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ScriptProtocolHandler"
+ constructor="scripting_ScriptProtocolHandler_get_implementation">
<service name="com.sun.star.frame.ProtocolHandler"/>
</implementation>
</component>
diff --git a/scripting/source/protocolhandler/scripthandler.cxx b/scripting/source/protocolhandler/scripthandler.cxx
index a759ef63070c..78d754300cfa 100644
--- a/scripting/source/protocolhandler/scripthandler.cxx
+++ b/scripting/source/protocolhandler/scripthandler.cxx
@@ -413,7 +413,7 @@ ScriptProtocolHandler::~ScriptProtocolHandler()
/* XServiceInfo */
OUString SAL_CALL ScriptProtocolHandler::getImplementationName( )
{
- return impl_getStaticImplementationName();
+ return "com.sun.star.comp.ScriptProtocolHandler";
}
/* XServiceInfo */
@@ -424,81 +424,18 @@ sal_Bool SAL_CALL ScriptProtocolHandler::supportsService(const OUString& sServic
/* XServiceInfo */
Sequence< OUString > SAL_CALL ScriptProtocolHandler::getSupportedServiceNames()
-{
- return impl_getStaticSupportedServiceNames();
-}
-
-/* Helper for XServiceInfo */
-Sequence< OUString > ScriptProtocolHandler::impl_getStaticSupportedServiceNames()
{
return {"com.sun.star.frame.ProtocolHandler"};
}
-/* Helper for XServiceInfo */
-OUString ScriptProtocolHandler::impl_getStaticImplementationName()
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+scripting_ScriptProtocolHandler_get_implementation(
+ css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
- return "com.sun.star.comp.ScriptProtocolHandler";
-}
-
-/* Helper for registry */
-Reference< XInterface > SAL_CALL ScriptProtocolHandler::impl_createInstance(
-const Reference< css::lang::XMultiServiceFactory >& xServiceManager )
-{
- return Reference< XInterface > ( *new ScriptProtocolHandler( comphelper::getComponentContext(xServiceManager) ) );
-}
-
-/* Factory for registration */
-Reference< XSingleServiceFactory > ScriptProtocolHandler::impl_createFactory(
-const Reference< XMultiServiceFactory >& xServiceManager )
-{
- Reference< XSingleServiceFactory > xReturn (
- cppu::createSingleFactory( xServiceManager,
- ScriptProtocolHandler::impl_getStaticImplementationName(),
- ScriptProtocolHandler::impl_createInstance,
- ScriptProtocolHandler::impl_getStaticSupportedServiceNames() )
- );
- return xReturn;
+ return cppu::acquire(new ScriptProtocolHandler(context));
}
} // namespace scripting_protocolhandler
-extern "C"
-{
- SAL_DLLPUBLIC_EXPORT void* protocolhandler_component_getFactory( const char * pImplementationName ,
- void * pServiceManager ,
- void * )
- {
- // Set default return value for this operation - if it failed.
- void * pReturn = nullptr ;
-
- if (
- ( pImplementationName != nullptr ) &&
- ( pServiceManager != nullptr )
- )
- {
- // Define variables which are used in following macros.
- css::uno::Reference< css::lang::XSingleServiceFactory > xFactory;
- css::uno::Reference< css::lang::XMultiServiceFactory > xServiceManager(
- static_cast< css::lang::XMultiServiceFactory* >( pServiceManager ) ) ;
-
- if ( ::scripting_protocolhandler::ScriptProtocolHandler::impl_getStaticImplementationName().equalsAscii(
- pImplementationName ) )
- {
- xFactory = ::scripting_protocolhandler::ScriptProtocolHandler::impl_createFactory( xServiceManager );
- }
-
- // Factory is valid - service was found.
- if ( xFactory.is() )
- {
- xFactory->acquire();
- pReturn = xFactory.get();
- }
- }
-
- // Return with result of this operation.
- return pReturn ;
- }
-} // extern "C"
-
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/scripting/source/protocolhandler/scripthandler.hxx b/scripting/source/protocolhandler/scripthandler.hxx
index 1a40356463af..c7c3811efae4 100644
--- a/scripting/source/protocolhandler/scripthandler.hxx
+++ b/scripting/source/protocolhandler/scripthandler.hxx
@@ -82,18 +82,6 @@ public:
virtual sal_Bool SAL_CALL supportsService( const OUString& sServiceName ) override;
virtual css::uno::Sequence < OUString > SAL_CALL getSupportedServiceNames() override;
- /* Helper for XServiceInfo */
- static css::uno::Sequence < OUString > impl_getStaticSupportedServiceNames();
- static OUString impl_getStaticImplementationName();
-
- /* Helper for registry */
- /// @throws css::uno::RuntimeException
- static css::uno::Reference < css::uno::XInterface > SAL_CALL
- impl_createInstance(
- const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager );
- static css::uno::Reference < css::lang::XSingleServiceFactory > impl_createFactory(
- const css::uno::Reference< css::lang::XMultiServiceFactory >& xServiceManager );
-
/* Implementation for XDispatchProvider */
virtual css::uno::Reference < css::frame::XDispatch > SAL_CALL
queryDispatch( const css::util::URL& aURL, const OUString& sTargetFrameName,
More information about the Libreoffice-commits
mailing list