diff options
author | Matúš Kukan <matus.kukan@gmail.com> | 2011-10-08 13:31:52 +0200 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2011-10-08 15:31:41 +0200 |
commit | 51798a4ecf01aa225875e8582787323b1092b2dd (patch) | |
tree | b96fdb707f43bd02df77c83a8aaa6ccc55a18849 | |
parent | 173cf81756c69f112c3d61403b5cf87ee81afcfb (diff) |
do not use _COMPHELPER_COMPONENT_GETFACTORY macro
-rw-r--r-- | filter/inc/registration.hxx | 113 | ||||
-rw-r--r-- | filter/source/config/cache/filterconfig1.component | 2 | ||||
-rw-r--r-- | filter/source/config/cache/registration.cxx | 85 | ||||
-rw-r--r-- | filter/source/odfflatxml/OdfFlatXml.cxx | 36 |
4 files changed, 82 insertions, 154 deletions
diff --git a/filter/inc/registration.hxx b/filter/inc/registration.hxx deleted file mode 100644 index 060a77dd945a..000000000000 --- a/filter/inc/registration.hxx +++ /dev/null @@ -1,113 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef __COMPHELPER_REGISTRATION_HXX_ -#define __COMPHELPER_REGISTRATION_HXX_ - -//_______________________________________________ -// includes - -#include <com/sun/star/lang/XSingleServiceFactory.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <rtl/ustrbuf.hxx> -#include <cppuhelper/factory.hxx> - -//_______________________________________________ -// namespace - -namespace comphelper{ - -//_______________________________________________ -// declaration - -//_______________________________________________ - -/** TODO doc - */ -#define _COMPHELPER_MULTIINSTANCEFACTORY(IMPLEMENTATIONNAME, SERVICENAMES, FACTORYMETHOD) \ - if (IMPLEMENTATIONNAME == sImplName) \ - xFactory = ::cppu::createSingleFactory(xSMGR , \ - IMPLEMENTATIONNAME, \ - FACTORYMETHOD , \ - SERVICENAMES ); - -//_______________________________________________ - -/** TODO doc - */ -#define _COMPHELPER_ONEINSTANCEFACTORY(IMPLEMENTATIONNAME, SERVICENAMES, FACTORYMETHOD) \ - if (IMPLEMENTATIONNAME == sImplName) \ - xFactory = ::cppu::createOneInstanceFactory(xSMGR , \ - IMPLEMENTATIONNAME, \ - FACTORYMETHOD , \ - SERVICENAMES ); - -//_______________________________________________ - -/** TODO doc - */ -#define _COMPHELPER_COMPONENT_GETFACTORY(STATIC_INIT,FACTORYLIST) \ - extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(const sal_Char* pImplementationName, \ - void* pServiceManager , \ - void* /* pRegistryKey */ ) \ - { \ - if ( \ - (!pImplementationName) || \ - (!pServiceManager ) \ - ) \ - return NULL; \ - \ - STATIC_INIT \ - \ - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xSMGR = reinterpret_cast< ::com::sun::star::lang::XMultiServiceFactory* >(pServiceManager); \ - ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleServiceFactory > xFactory ; \ - rtl::OUString sImplName = ::rtl::OUString::createFromAscii(pImplementationName); \ - \ - /* This parameter will expand to: */ \ - /* _COMPHELPER_xxxFACTORY(1) */ \ - /* else */ \ - /* ... */ \ - /* else */ \ - /* _COMPHELPER_xxxFACTORY(n) */ \ - FACTORYLIST \ - \ - /* And if one of these checks was successfully => xFactory was set! */ \ - if (xFactory.is()) \ - { \ - xFactory->acquire(); \ - return xFactory.get(); \ - } \ - \ - return NULL; \ - } - -} // namespace comphelper - -#endif // #ifndef __COMPHELPER_REGISTRATION_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/filter/source/config/cache/filterconfig1.component b/filter/source/config/cache/filterconfig1.component index 9d3c7c90fb31..1d6c0153a64c 100644 --- a/filter/source/config/cache/filterconfig1.component +++ b/filter/source/config/cache/filterconfig1.component @@ -26,7 +26,7 @@ * **********************************************************************--> -<component loader="com.sun.star.loader.SharedLibrary" +<component loader="com.sun.star.loader.SharedLibrary" prefix="filterconfig1" xmlns="http://openoffice.org/2010/uno-components"> <implementation name="com.sun.star.comp.filter.config.ConfigFlush"> <service name="com.sun.star.document.FilterConfigRefresh"/> diff --git a/filter/source/config/cache/registration.cxx b/filter/source/config/cache/registration.cxx index 6d449c4aa0ca..0c83bdbf8cb3 100644 --- a/filter/source/config/cache/registration.cxx +++ b/filter/source/config/cache/registration.cxx @@ -29,20 +29,15 @@ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_filter.hxx" -#include "registration.hxx" - +#include <cppuhelper/factory.hxx> #include <rtl/instance.hxx> -//_______________________________________________ -// includes - #ifdef _FILTER_CONFIG_CONSTANT_HXX_ # error "Already included constant.hxx" #else # define PROPNAME_IMPL_DECL # include "constant.hxx" #endif -#include <stdio.h> #include "typedetection.hxx" #include "filterfactory.hxx" #include "contenthandlerfactory.hxx" @@ -99,30 +94,60 @@ static void InitConstants() theConstantsInitializer::get(); } -// extern "C" component_getFactory() -_COMPHELPER_COMPONENT_GETFACTORY -( - { InitConstants(); }, - _COMPHELPER_MULTIINSTANCEFACTORY( TypeDetection::impl_getImplementationName() , - TypeDetection::impl_getSupportedServiceNames(), - TypeDetection::impl_createInstance ) - - _COMPHELPER_MULTIINSTANCEFACTORY( FilterFactory::impl_getImplementationName() , - FilterFactory::impl_getSupportedServiceNames(), - FilterFactory::impl_createInstance ) - - _COMPHELPER_MULTIINSTANCEFACTORY( ContentHandlerFactory::impl_getImplementationName() , - ContentHandlerFactory::impl_getSupportedServiceNames(), - ContentHandlerFactory::impl_createInstance ) - - _COMPHELPER_MULTIINSTANCEFACTORY( FrameLoaderFactory::impl_getImplementationName() , - FrameLoaderFactory::impl_getSupportedServiceNames(), - FrameLoaderFactory::impl_createInstance ) - - _COMPHELPER_ONEINSTANCEFACTORY( ConfigFlush::impl_getImplementationName() , - ConfigFlush::impl_getSupportedServiceNames(), - ConfigFlush::impl_createInstance ) -) +extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL + filterconfig1_component_getFactory( const sal_Char* pImplementationName, + void* pServiceManager, + void* /* pRegistryKey */ ) +{ + if ((!pImplementationName) || (!pServiceManager )) + return NULL; + + InitConstants(); + + com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > + xSMGR = reinterpret_cast< com::sun::star::lang::XMultiServiceFactory* >(pServiceManager); + com::sun::star::uno::Reference< com::sun::star::lang::XSingleServiceFactory > xFactory; + rtl::OUString sImplName = rtl::OUString::createFromAscii(pImplementationName); + + if (TypeDetection::impl_getImplementationName() == sImplName) + xFactory = cppu::createSingleFactory( xSMGR, + TypeDetection::impl_getImplementationName(), + TypeDetection::impl_createInstance, + TypeDetection::impl_getSupportedServiceNames() ); + + if (FilterFactory::impl_getImplementationName() == sImplName) + xFactory = cppu::createSingleFactory( xSMGR, + FilterFactory::impl_getImplementationName(), + FilterFactory::impl_createInstance, + FilterFactory::impl_getSupportedServiceNames() ); + + if (ContentHandlerFactory::impl_getImplementationName() == sImplName) + xFactory = cppu::createSingleFactory( xSMGR, + ContentHandlerFactory::impl_getImplementationName(), + ContentHandlerFactory::impl_createInstance, + ContentHandlerFactory::impl_getSupportedServiceNames() ); + + if (FrameLoaderFactory::impl_getImplementationName() == sImplName) + xFactory = cppu::createSingleFactory( xSMGR, + FrameLoaderFactory::impl_getImplementationName(), + FrameLoaderFactory::impl_createInstance, + FrameLoaderFactory::impl_getSupportedServiceNames() ); + + if (ConfigFlush::impl_getImplementationName() == sImplName) + xFactory = cppu::createOneInstanceFactory( xSMGR, + ConfigFlush::impl_getImplementationName(), + ConfigFlush::impl_createInstance, + ConfigFlush::impl_getSupportedServiceNames() ); + + /* And if one of these checks was successful => xFactory was set! */ + if (xFactory.is()) + { + xFactory->acquire(); + return xFactory.get(); + } + + return NULL; +} } // namespace config } // namespace filter diff --git a/filter/source/odfflatxml/OdfFlatXml.cxx b/filter/source/odfflatxml/OdfFlatXml.cxx index 4be92503fb1f..edacff16e655 100644 --- a/filter/source/odfflatxml/OdfFlatXml.cxx +++ b/filter/source/odfflatxml/OdfFlatXml.cxx @@ -57,8 +57,6 @@ #include <com/sun/star/io/XActiveDataSource.hpp> #include <com/sun/star/io/XSeekable.hpp> -#include <registration.hxx> - using namespace ::rtl; using namespace ::cppu; using namespace ::osl; @@ -235,14 +233,32 @@ Reference< XInterface > SAL_CALL OdfFlatXml::impl_createInstance(const Reference } -// extern "C" component_getFactory() -_COMPHELPER_COMPONENT_GETFACTORY -( - {}, - _COMPHELPER_ONEINSTANCEFACTORY( OdfFlatXml::impl_getImplementationName(), - OdfFlatXml::impl_getSupportedServiceNames(), - OdfFlatXml::impl_createInstance) +extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL +component_getFactory( const sal_Char* pImplementationName, + void* pServiceManager, + void* /* pRegistryKey */ ) +{ + if ((!pImplementationName) || (!pServiceManager)) + return NULL; + + com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > + xSMGR = reinterpret_cast< com::sun::star::lang::XMultiServiceFactory* >(pServiceManager); + com::sun::star::uno::Reference< com::sun::star::lang::XSingleServiceFactory > xFactory; + rtl::OUString sImplName = rtl::OUString::createFromAscii(pImplementationName); + + if (OdfFlatXml::impl_getImplementationName() == sImplName) + xFactory = cppu::createOneInstanceFactory( xSMGR, + OdfFlatXml::impl_getImplementationName(), + OdfFlatXml::impl_createInstance, + OdfFlatXml::impl_getSupportedServiceNames() ); + + if (xFactory.is()) + { + xFactory->acquire(); + return xFactory.get(); + } -) + return NULL; +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |