bump product version to 5.0.4.1
[LibreOffice.git] / extensions / source / plugin / base / service.cxx
blobe4b6bfc9dc9e85b0768e26bf8156663e0bae90db
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*************************************************************************
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 * Copyright 2000, 2010 Oracle and/or its affiliates.
8 * OpenOffice.org - a multi-platform office productivity suite
10 * This file is part of OpenOffice.org.
12 * OpenOffice.org is free software: you can redistribute it and/or modify
13 * it under the terms of the GNU Lesser General Public License version 3
14 * only, as published by the Free Software Foundation.
16 * OpenOffice.org is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License version 3 for more details
20 * (a copy is included in the LICENSE file that accompanied this code).
22 * You should have received a copy of the GNU Lesser General Public License
23 * version 3 along with OpenOffice.org. If not, see
24 * <http://www.openoffice.org/license.html>
25 * for a copy of the LGPLv3 License.
27 ************************************************************************/
30 #ifdef AIX
31 #define _LINUX_SOURCE_COMPAT
32 #include <sys/timer.h>
33 #undef _LINUX_SOURCE_COMPAT
34 #endif
36 #ifdef WNT
37 #include <prewin.h>
38 #include <postwin.h>
39 #endif
41 #include <cstdarg>
43 #include <plugin/impl.hxx>
44 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
45 #include <com/sun/star/lang/XSingleServiceFactory.hpp>
46 #include <com/sun/star/container/XSet.hpp>
47 #include <com/sun/star/registry/XRegistryKey.hpp>
49 #include <uno/dispatcher.h>
50 #include <uno/mapping.hxx>
52 #include <cppuhelper/factory.hxx>
54 using namespace cppu;
56 extern "C" {
57 SAL_DLLPUBLIC_EXPORT void* SAL_CALL pl_component_getFactory(
58 const sal_Char* pImplementationName,
59 void* pXUnoSMgr,
60 void* /*pXUnoKey*/
63 void* pRet = 0;
65 OUString aImplName( OUString::createFromAscii( pImplementationName ) );
67 if( pXUnoSMgr )
69 Reference< ::com::sun::star::lang::XMultiServiceFactory > xMgr(
70 static_cast< ::com::sun::star::lang::XMultiServiceFactory* >( pXUnoSMgr )
72 Reference< ::com::sun::star::lang::XSingleServiceFactory > xFactory;
73 if( aImplName.equals( XPluginManager_Impl::getImplementationName_Static() ) )
75 xFactory = ::cppu::createSingleFactory(
76 xMgr, aImplName, PluginManager_CreateInstance,
77 XPluginManager_Impl::getSupportedServiceNames_Static() );
79 else if( aImplName.equals( PluginModel::getImplementationName_Static() ) )
81 xFactory = ::cppu::createSingleFactory(
82 xMgr, aImplName, PluginModel_CreateInstance,
83 PluginModel::getSupportedServiceNames_Static() );
85 if( xFactory.is() )
87 xFactory->acquire();
88 pRet = xFactory.get();
91 return pRet;
93 } /* extern "C" */
95 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */