diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2020-07-11 20:19:28 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-07-12 14:21:06 +0200 |
commit | 58b4ea44865cb7a058c35edaef62576e1bbebfc7 (patch) | |
tree | e68316ec2eb4838ddb05ce8ace3892b3e5e0a231 /filter | |
parent | acc1ba0614742300cb4ae4c12d5808bf0f2a964b (diff) |
filter/t602: create instances with uno constructors
See tdf#74608 for motivation.
Change-Id: Icf7829977f4225ec40a63f5f2b8cf23ab360e883
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98570
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'filter')
-rw-r--r-- | filter/Library_t602filter.mk | 1 | ||||
-rw-r--r-- | filter/source/t602/filterenv.cxx | 74 | ||||
-rw-r--r-- | filter/source/t602/t602filter.component | 8 | ||||
-rw-r--r-- | filter/source/t602/t602filter.cxx | 44 | ||||
-rw-r--r-- | filter/source/t602/t602filter.hxx | 25 |
5 files changed, 22 insertions, 130 deletions
diff --git a/filter/Library_t602filter.mk b/filter/Library_t602filter.mk index 82b616434e47..90f834e1238d 100644 --- a/filter/Library_t602filter.mk +++ b/filter/Library_t602filter.mk @@ -41,7 +41,6 @@ $(eval $(call gb_Library_use_libraries,t602filter,\ )) $(eval $(call gb_Library_add_exception_objects,t602filter,\ - filter/source/t602/filterenv \ filter/source/t602/t602filter \ )) diff --git a/filter/source/t602/filterenv.cxx b/filter/source/t602/filterenv.cxx deleted file mode 100644 index 1dd00aee80a0..000000000000 --- a/filter/source/t602/filterenv.cxx +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <cppuhelper/factory.hxx> - -#include <com/sun/star/lang/XSingleServiceFactory.hpp> - -#include "t602filter.hxx" - -using namespace ::cppu; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::lang; -using namespace ::com::sun::star::registry; - -using namespace T602ImportFilter; - -extern "C" -{ -SAL_DLLPUBLIC_EXPORT void * t602filter_component_getFactory( - const char * pImplName, void * pServiceManager, void * /* pRegistryKey */ ) -{ - void * pRet = nullptr; - - OUString implName = OUString::createFromAscii( pImplName ); - if ( pServiceManager && implName == T602ImportFilter_getImplementationName() ) - { - Reference< XSingleServiceFactory > xFactory( createSingleFactory( - static_cast< XMultiServiceFactory * >( pServiceManager ), - OUString::createFromAscii( pImplName ), - T602ImportFilter_createInstance, T602ImportFilter_getSupportedServiceNames() ) ); - - if (xFactory.is()) - { - xFactory->acquire(); - pRet = xFactory.get(); - } - } - else if ( pServiceManager && implName == T602ImportFilterDialog_getImplementationName() ) - { - Reference< XSingleServiceFactory > xFactory( createSingleFactory( - static_cast< XMultiServiceFactory * >( pServiceManager ), - OUString::createFromAscii( pImplName ), - T602ImportFilterDialog_createInstance, T602ImportFilterDialog_getSupportedServiceNames() ) ); - - if (xFactory.is()) - { - xFactory->acquire(); - pRet = xFactory.get(); - } - } - - - return pRet; -} -} - - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/filter/source/t602/t602filter.component b/filter/source/t602/t602filter.component index dcd30b0f9244..49b355f67197 100644 --- a/filter/source/t602/t602filter.component +++ b/filter/source/t602/t602filter.component @@ -18,12 +18,14 @@ --> <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@" - prefix="t602filter" xmlns="http://openoffice.org/2010/uno-components"> - <implementation name="com.sun.star.comp.Writer.T602ImportFilter"> + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.comp.Writer.T602ImportFilter" + constructor="filter_T602ImportFilter_get_implementation"> <service name="com.sun.star.document.ExtendedTypeDetection"/> <service name="com.sun.star.document.ImportFilter"/> </implementation> - <implementation name="com.sun.star.comp.Writer.T602ImportFilterDialog"> + <implementation name="com.sun.star.comp.Writer.T602ImportFilterDialog" + constructor="filter_T602ImportFilterDialog_get_implementation"> <service name="com.sun.star.ui.dialogs.FilterOptionsDialog"/> </implementation> </component> diff --git a/filter/source/t602/t602filter.cxx b/filter/source/t602/t602filter.cxx index 1c2c453c0135..19500d6093a5 100644 --- a/filter/source/t602/t602filter.cxx +++ b/filter/source/t602/t602filter.cxx @@ -130,8 +130,8 @@ namespace T602ImportFilter { static inistruct ini; -T602ImportFilter::T602ImportFilter(const css::uno::Reference<css::lang::XMultiServiceFactory > &r ) - : mxMSF(r) +T602ImportFilter::T602ImportFilter(const css::uno::Reference<css::uno::XComponentContext > &r ) + : mxContext(r) , mpAttrList(nullptr) , node(tnode::START) { @@ -244,7 +244,7 @@ bool T602ImportFilter::importImpl( const Sequence< css::beans::PropertyValue >& } // An XML import service: what we push sax messages to... - mxHandler.set( mxMSF->createInstance( "com.sun.star.comp.Writer.XMLImporter" ), UNO_QUERY ); + mxHandler.set( mxContext->getServiceManager()->createInstanceWithContext( "com.sun.star.comp.Writer.XMLImporter", mxContext ), UNO_QUERY ); // The XImporter sets up an empty target document for XDocumentHandler to write to... Reference < XImporter > xImporter(mxHandler, UNO_QUERY); @@ -847,7 +847,7 @@ void T602ImportFilter::Read602() // XServiceInfo OUString SAL_CALL T602ImportFilter::getImplementationName( ) { - return T602ImportFilter_getImplementationName(); + return "com.sun.star.comp.Writer.T602ImportFilter"; } sal_Bool SAL_CALL T602ImportFilter::supportsService( const OUString& rServiceName ) @@ -857,24 +857,9 @@ sal_Bool SAL_CALL T602ImportFilter::supportsService( const OUString& rServiceNam Sequence< OUString > SAL_CALL T602ImportFilter::getSupportedServiceNames( ) { - return T602ImportFilter_getSupportedServiceNames(); -} - -OUString T602ImportFilter_getImplementationName () -{ - return "com.sun.star.comp.Writer.T602ImportFilter"; -} - -Sequence< OUString > T602ImportFilter_getSupportedServiceNames( ) -{ return { "com.sun.star.document.ImportFilter", "com.sun.star.document.ExtendedTypeDetection" }; } -Reference< XInterface > T602ImportFilter_createInstance( const Reference< XMultiServiceFactory > & rSMgr) -{ - return static_cast<cppu::OWeakObject*>(new T602ImportFilter( rSMgr )); -} - T602ImportFilterDialog::T602ImportFilterDialog() : maLocale(SvtSysLocale().GetUILanguageTag()) , maResLocale(Translate::Create("flt")) @@ -1113,7 +1098,7 @@ void SAL_CALL T602ImportFilterDialog::setPropertyValues( const uno::Sequence<bea // XServiceInfo OUString SAL_CALL T602ImportFilterDialog::getImplementationName( ) { - return T602ImportFilterDialog_getImplementationName(); + return "com.sun.star.comp.Writer.T602ImportFilterDialog"; } sal_Bool SAL_CALL T602ImportFilterDialog::supportsService( const OUString& rServiceName ) @@ -1123,24 +1108,23 @@ sal_Bool SAL_CALL T602ImportFilterDialog::supportsService( const OUString& rServ Sequence< OUString > SAL_CALL T602ImportFilterDialog::getSupportedServiceNames( ) { - return T602ImportFilterDialog_getSupportedServiceNames(); + return { "com.sun.star.ui.dialogs.FilterOptionsDialog" }; } -OUString T602ImportFilterDialog_getImplementationName () -{ - return "com.sun.star.comp.Writer.T602ImportFilterDialog"; } -Sequence< OUString > T602ImportFilterDialog_getSupportedServiceNames( ) +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* +filter_T602ImportFilterDialog_get_implementation( + css::uno::XComponentContext* , css::uno::Sequence<css::uno::Any> const&) { - return { "com.sun.star.ui.dialogs.FilterOptionsDialog" }; + return cppu::acquire(new T602ImportFilter::T602ImportFilterDialog()); } -Reference< XInterface > T602ImportFilterDialog_createInstance( const Reference< XMultiServiceFactory > & ) +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* +filter_T602ImportFilter_get_implementation( + css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&) { - return static_cast<cppu::OWeakObject*>(new T602ImportFilterDialog); -} - + return cppu::acquire(new T602ImportFilter::T602ImportFilter(context)); } extern "C" SAL_DLLPUBLIC_EXPORT bool TestImport602(SvStream &rStream) diff --git a/filter/source/t602/t602filter.hxx b/filter/source/t602/t602filter.hxx index d8ebcd258cd2..5a1bfa513e13 100644 --- a/filter/source/t602/t602filter.hxx +++ b/filter/source/t602/t602filter.hxx @@ -31,6 +31,7 @@ #include <com/sun/star/beans/XPropertyAccess.hpp> #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> #include <com/sun/star/xml/sax/XDocumentHandler.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> #include <cppuhelper/implbase.hxx> #include <xmloff/attrlist.hxx> #include <i18nlangtag/languagetag.hxx> @@ -124,7 +125,7 @@ class T602ImportFilter : public cppu::WeakImplHelper < { private: css::uno::Reference<css::xml::sax::XDocumentHandler> mxHandler; - css::uno::Reference< css::lang::XMultiServiceFactory > mxMSF; + css::uno::Reference< css::uno::XComponentContext > mxContext; css::uno::Reference< css::lang::XComponent > mxDoc; css::uno::Reference < css::io::XInputStream > mxInputStream; @@ -223,7 +224,7 @@ private: bool importImpl( const css::uno::Sequence< css::beans::PropertyValue >& aDescriptor ); public: - explicit T602ImportFilter(const css::uno::Reference<css::lang::XMultiServiceFactory > &r ); + explicit T602ImportFilter(const css::uno::Reference<css::uno::XComponentContext > &r ); explicit T602ImportFilter(css::uno::Reference<css::io::XInputStream> const & xInputStream); virtual ~T602ImportFilter() override; @@ -249,26 +250,6 @@ private: void test(); }; -/// @throws css::uno::RuntimeException -OUString T602ImportFilter_getImplementationName(); - -/// @throws css::uno::RuntimeException -css::uno::Sequence< OUString > T602ImportFilter_getSupportedServiceNames( ); - -/// @throws css::uno::Exception -css::uno::Reference< css::uno::XInterface > -T602ImportFilter_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr); - -/// @throws css::uno::RuntimeException -OUString T602ImportFilterDialog_getImplementationName(); - -/// @throws css::uno::RuntimeException -css::uno::Sequence< OUString > T602ImportFilterDialog_getSupportedServiceNames( ); - -/// @throws css::uno::Exception -css::uno::Reference< css::uno::XInterface > -T602ImportFilterDialog_createInstance( const css::uno::Reference< css::lang::XMultiServiceFactory > & rSMgr); - } #endif |