Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*************************************************************************
3 : *
4 : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : *
6 : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : *
8 : * OpenOffice.org - a multi-platform office productivity suite
9 : *
10 : * This file is part of OpenOffice.org.
11 : *
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.
15 : *
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).
21 : *
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.
26 : *
27 : ************************************************************************/
28 :
29 :
30 : #ifdef AIX
31 : #define _LINUX_SOURCE_COMPAT
32 : #include <sys/timer.h>
33 : #undef _LINUX_SOURCE_COMPAT
34 : #endif
35 :
36 : #ifdef WNT
37 : #include <prewin.h>
38 : #include <postwin.h>
39 : #undef OPTIONAL
40 : #endif
41 :
42 : #include <cstdarg>
43 :
44 : #include <plugin/impl.hxx>
45 : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
46 : #include <com/sun/star/lang/XSingleServiceFactory.hpp>
47 : #include <com/sun/star/container/XSet.hpp>
48 : #include <com/sun/star/registry/XRegistryKey.hpp>
49 :
50 : #include <uno/dispatcher.h>
51 : #include <uno/mapping.hxx>
52 :
53 : #include <cppuhelper/factory.hxx>
54 :
55 : using namespace cppu;
56 :
57 : extern "C" {
58 0 : SAL_DLLPUBLIC_EXPORT void* SAL_CALL pl_component_getFactory(
59 : const sal_Char* pImplementationName,
60 : void* pXUnoSMgr,
61 : void* /*pXUnoKey*/
62 : )
63 : {
64 0 : void* pRet = 0;
65 :
66 0 : OUString aImplName( OUString::createFromAscii( pImplementationName ) );
67 :
68 0 : if( pXUnoSMgr )
69 : {
70 : Reference< ::com::sun::star::lang::XMultiServiceFactory > xMgr(
71 : reinterpret_cast< ::com::sun::star::lang::XMultiServiceFactory* >( pXUnoSMgr )
72 0 : );
73 0 : Reference< ::com::sun::star::lang::XSingleServiceFactory > xFactory;
74 0 : if( aImplName.equals( XPluginManager_Impl::getImplementationName_Static() ) )
75 : {
76 0 : xFactory = ::cppu::createSingleFactory(
77 : xMgr, aImplName, PluginManager_CreateInstance,
78 0 : XPluginManager_Impl::getSupportedServiceNames_Static() );
79 : }
80 0 : else if( aImplName.equals( PluginModel::getImplementationName_Static() ) )
81 : {
82 0 : xFactory = ::cppu::createSingleFactory(
83 : xMgr, aImplName, PluginModel_CreateInstance,
84 0 : PluginModel::getSupportedServiceNames_Static() );
85 : }
86 0 : if( xFactory.is() )
87 : {
88 0 : xFactory->acquire();
89 0 : pRet = xFactory.get();
90 0 : }
91 : }
92 0 : return pRet;
93 : }
94 : } /* extern "C" */
95 :
96 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|