Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include <config_features.h>
21 :
22 : #include "SwXFilterOptions.hxx"
23 : #include "unofreg.hxx"
24 : #include <sal/types.h>
25 : #include <osl/diagnose.h>
26 : #include <cppuhelper/factory.hxx>
27 : #include <sfx2/sfxmodelfactory.hxx>
28 :
29 : #include <string.h>
30 :
31 : using namespace ::com::sun::star;
32 : using namespace ::com::sun::star::lang;
33 :
34 : // #i73788#
35 : #include <cppuhelper/implementationentry.hxx>
36 : #include <finalthreadmanager.hxx>
37 :
38 : extern "C"
39 : {
40 :
41 : static ::cppu::ImplementationEntry const entries[] = {
42 : { &comp_FinalThreadManager::_create,
43 : &comp_FinalThreadManager::_getImplementationName,
44 : &comp_FinalThreadManager::_getSupportedServiceNames,
45 : &::cppu::createSingleComponentFactory, 0, 0 },
46 : { 0, 0, 0, 0, 0, 0 }
47 : };
48 :
49 400 : SAL_DLLPUBLIC_EXPORT void * SAL_CALL sw_component_getFactory(
50 : const sal_Char * pImplName,
51 : void * pServiceManager,
52 : void * pRegistryKey )
53 : {
54 400 : void * pRet = 0;
55 400 : if( pServiceManager )
56 : {
57 : uno::Reference< XMultiServiceFactory > xMSF(
58 400 : reinterpret_cast< XMultiServiceFactory * >( pServiceManager ) );
59 :
60 800 : uno::Reference< XSingleServiceFactory > xFactory;
61 :
62 400 : const sal_Int32 nImplNameLen = strlen( pImplName );
63 800 : if( SwXMLImport_getImplementationName().equalsAsciiL( pImplName,
64 800 : nImplNameLen ) )
65 : {
66 12 : xFactory = ::cppu::createSingleFactory( xMSF,
67 : SwXMLImport_getImplementationName(),
68 : SwXMLImport_createInstance,
69 6 : SwXMLImport_getSupportedServiceNames() );
70 : }
71 788 : else if( SwXMLImportStyles_getImplementationName().equalsAsciiL(
72 788 : pImplName, nImplNameLen ) )
73 : {
74 100 : xFactory = ::cppu::createSingleFactory( xMSF,
75 : SwXMLImportStyles_getImplementationName(),
76 : SwXMLImportStyles_createInstance,
77 50 : SwXMLImportStyles_getSupportedServiceNames() );
78 : }
79 688 : else if( SwXMLImportContent_getImplementationName().equalsAsciiL(
80 688 : pImplName, nImplNameLen ) )
81 : {
82 96 : xFactory = ::cppu::createSingleFactory( xMSF,
83 : SwXMLImportContent_getImplementationName(),
84 : SwXMLImportContent_createInstance,
85 48 : SwXMLImportContent_getSupportedServiceNames() );
86 : }
87 592 : else if( SwXMLImportMeta_getImplementationName().equalsAsciiL(
88 592 : pImplName, nImplNameLen ) )
89 : {
90 104 : xFactory = ::cppu::createSingleFactory( xMSF,
91 : SwXMLImportMeta_getImplementationName(),
92 : SwXMLImportMeta_createInstance,
93 52 : SwXMLImportMeta_getSupportedServiceNames() );
94 : }
95 488 : else if( SwXMLImportSettings_getImplementationName().equalsAsciiL(
96 488 : pImplName, nImplNameLen ) )
97 : {
98 100 : xFactory = ::cppu::createSingleFactory( xMSF,
99 : SwXMLImportSettings_getImplementationName(),
100 : SwXMLImportSettings_createInstance,
101 50 : SwXMLImportSettings_getSupportedServiceNames() );
102 : }
103 388 : else if( SwXMLExportOOO_getImplementationName().equalsAsciiL( pImplName,
104 388 : nImplNameLen ) )
105 : {
106 0 : xFactory = ::cppu::createSingleFactory( xMSF,
107 : SwXMLExportOOO_getImplementationName(),
108 : SwXMLExportOOO_createInstance,
109 0 : SwXMLExportOOO_getSupportedServiceNames() );
110 : }
111 388 : else if( SwXMLExportStylesOOO_getImplementationName().equalsAsciiL(
112 388 : pImplName, nImplNameLen ) )
113 : {
114 4 : xFactory = ::cppu::createSingleFactory( xMSF,
115 : SwXMLExportStylesOOO_getImplementationName(),
116 : SwXMLExportStylesOOO_createInstance,
117 2 : SwXMLExportStylesOOO_getSupportedServiceNames() );
118 : }
119 384 : else if( SwXMLExportContentOOO_getImplementationName().equalsAsciiL(
120 384 : pImplName, nImplNameLen ) )
121 : {
122 4 : xFactory = ::cppu::createSingleFactory( xMSF,
123 : SwXMLExportContentOOO_getImplementationName(),
124 : SwXMLExportContentOOO_createInstance,
125 2 : SwXMLExportContentOOO_getSupportedServiceNames() );
126 : }
127 380 : else if( SwXMLExportMetaOOO_getImplementationName().equalsAsciiL(
128 380 : pImplName, nImplNameLen ) )
129 : {
130 0 : xFactory = ::cppu::createSingleFactory( xMSF,
131 : SwXMLExportMetaOOO_getImplementationName(),
132 : SwXMLExportMetaOOO_createInstance,
133 0 : SwXMLExportMetaOOO_getSupportedServiceNames() );
134 : }
135 380 : else if( SwXMLExportSettingsOOO_getImplementationName().equalsAsciiL(
136 380 : pImplName, nImplNameLen ) )
137 : {
138 4 : xFactory = ::cppu::createSingleFactory( xMSF,
139 : SwXMLExportSettingsOOO_getImplementationName(),
140 : SwXMLExportSettingsOOO_createInstance,
141 2 : SwXMLExportSettingsOOO_getSupportedServiceNames() );
142 : }
143 376 : else if( SwXMLExport_getImplementationName().equalsAsciiL( pImplName,
144 376 : nImplNameLen ) )
145 : {
146 0 : xFactory = ::cppu::createSingleFactory( xMSF,
147 : SwXMLExport_getImplementationName(),
148 : SwXMLExport_createInstance,
149 0 : SwXMLExport_getSupportedServiceNames() );
150 : }
151 376 : else if( SwXMLExportStyles_getImplementationName().equalsAsciiL(
152 376 : pImplName, nImplNameLen ) )
153 : {
154 48 : xFactory = ::cppu::createSingleFactory( xMSF,
155 : SwXMLExportStyles_getImplementationName(),
156 : SwXMLExportStyles_createInstance,
157 24 : SwXMLExportStyles_getSupportedServiceNames() );
158 : }
159 328 : else if( SwXMLExportContent_getImplementationName().equalsAsciiL(
160 328 : pImplName, nImplNameLen ) )
161 : {
162 48 : xFactory = ::cppu::createSingleFactory( xMSF,
163 : SwXMLExportContent_getImplementationName(),
164 : SwXMLExportContent_createInstance,
165 24 : SwXMLExportContent_getSupportedServiceNames() );
166 : }
167 280 : else if( SwXMLExportMeta_getImplementationName().equalsAsciiL(
168 280 : pImplName, nImplNameLen ) )
169 : {
170 36 : xFactory = ::cppu::createSingleFactory( xMSF,
171 : SwXMLExportMeta_getImplementationName(),
172 : SwXMLExportMeta_createInstance,
173 18 : SwXMLExportMeta_getSupportedServiceNames() );
174 : }
175 244 : else if( SwXMLExportSettings_getImplementationName().equalsAsciiL(
176 244 : pImplName, nImplNameLen ) )
177 : {
178 44 : xFactory = ::cppu::createSingleFactory( xMSF,
179 : SwXMLExportSettings_getImplementationName(),
180 : SwXMLExportSettings_createInstance,
181 22 : SwXMLExportSettings_getSupportedServiceNames() );
182 : }
183 200 : else if( SwXAutoTextContainer_getImplementationName().equalsAsciiL(
184 200 : pImplName, nImplNameLen ) )
185 : {
186 8 : xFactory = ::cppu::createSingleFactory( xMSF,
187 : SwXAutoTextContainer_getImplementationName(),
188 : SwXAutoTextContainer_createInstance,
189 4 : SwXAutoTextContainer_getSupportedServiceNames() );
190 : }
191 192 : else if( SwXModule_getImplementationName().equalsAsciiL(
192 192 : pImplName, nImplNameLen ) )
193 : {
194 4 : xFactory = ::cppu::createSingleFactory( xMSF,
195 : SwXModule_getImplementationName(),
196 : SwXModule_createInstance,
197 2 : SwXModule_getSupportedServiceNames() );
198 : }
199 : #if HAVE_FEATURE_DBCONNECTIVITY
200 188 : else if( SwXMailMerge_getImplementationName().equalsAsciiL(
201 188 : pImplName, nImplNameLen ) )
202 : {
203 4 : xFactory = ::cppu::createSingleFactory( xMSF,
204 : SwXMailMerge_getImplementationName(),
205 : SwXMailMerge_createInstance,
206 2 : SwXMailMerge_getSupportedServiceNames() );
207 : }
208 : #endif
209 184 : else if( SwXFilterOptions::getImplementationName_Static().equalsAsciiL(
210 184 : pImplName, nImplNameLen ) )
211 : {
212 0 : xFactory = ::cppu::createSingleFactory( xMSF,
213 : SwXFilterOptions::getImplementationName_Static(),
214 : SwXFilterOptions_createInstance,
215 0 : SwXFilterOptions::getSupportedServiceNames_Static() );
216 : }
217 184 : else if( SwTextDocument_getImplementationName().equalsAsciiL(
218 184 : pImplName, nImplNameLen ) )
219 : {
220 168 : xFactory = ::sfx2::createSfxModelFactory( xMSF,
221 : SwTextDocument_getImplementationName(),
222 : SwTextDocument_createInstance,
223 84 : SwTextDocument_getSupportedServiceNames() );
224 : }
225 16 : else if( SwWebDocument_getImplementationName().equalsAsciiL(
226 16 : pImplName, nImplNameLen ) )
227 : {
228 4 : xFactory = ::cppu::createSingleFactory( xMSF,
229 : SwWebDocument_getImplementationName(),
230 : SwWebDocument_createInstance,
231 2 : SwWebDocument_getSupportedServiceNames() );
232 : }
233 12 : else if( SwGlobalDocument_getImplementationName().equalsAsciiL(
234 12 : pImplName, nImplNameLen ) )
235 : {
236 0 : xFactory = ::cppu::createSingleFactory( xMSF,
237 : SwGlobalDocument_getImplementationName(),
238 : SwGlobalDocument_createInstance,
239 0 : SwGlobalDocument_getSupportedServiceNames() );
240 : }
241 12 : else if( SwUnoModule_getImplementationName().equalsAsciiL(
242 12 : pImplName, nImplNameLen ) )
243 : {
244 4 : xFactory = ::cppu::createSingleFactory( xMSF,
245 : SwUnoModule_getImplementationName(),
246 : SwUnoModule_createInstance,
247 2 : SwUnoModule_getSupportedServiceNames() );
248 : }
249 8 : else if( LayoutDumpFilter_getImplementationName().equalsAsciiL(
250 8 : pImplName, nImplNameLen ) )
251 : {
252 0 : xFactory = ::cppu::createSingleFactory( xMSF,
253 : LayoutDumpFilter_getImplementationName(),
254 : LayoutDumpFilter_createInstance,
255 0 : LayoutDumpFilter_getSupportedServiceNames() );
256 : }
257 8 : else if( comp_FinalThreadManager::_getImplementationName().equalsAsciiL(
258 8 : pImplName, nImplNameLen ) )
259 : {
260 : pRet = ::cppu::component_getFactoryHelper(
261 4 : pImplName, pServiceManager, pRegistryKey, entries);
262 : }
263 :
264 400 : if( xFactory.is())
265 : {
266 396 : xFactory->acquire();
267 396 : pRet = xFactory.get();
268 400 : }
269 : }
270 400 : return pRet;
271 : }
272 :
273 : } // extern "C"
274 :
275 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|