1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23 #ifndef _CPPUHELPER_STDIDLCLASS_HXX_
24 #define _CPPUHELPER_STDIDLCLASS_HXX_
25
26 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
27 #include <com/sun/star/reflection/XIdlClass.hpp>
28
29 #include "cppuhelper/cppuhelperdllapi.h"
30
31 namespace cppu {
32
33 /*
34 @deprecated
35 */
36 CPPUHELPER_DLLPUBLIC
37 ::com::sun::star::reflection::XIdlClass * SAL_CALL createStandardClassWithSequence(
38 const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr ,
39 const ::rtl::OUString & sImplementationName ,
40 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > & rSuperClass,
41 const ::com::sun::star::uno::Sequence < ::rtl::OUString > &seq )
42 SAL_THROW( () );
43
44
45
46 /**
47 Standardfunction to create an XIdlClass for a component.
48 There is a function for each number of supported interfaces up to 10.
49
50 Since the switch to the final component model, there are no use cases anymore, where
51 these functions should be used. Instead use the implementation helpers directly
52 (see cppuhelper/implbase1.hxx).
53
54 @see OTypeCollection
55
56 @deprecated
57 */
58 template < class Interface1 >
59 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
60 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *)61 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
62 const ::rtl::OUString &sImplementationName ,
63 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
64 const Interface1 *
65 )
66 SAL_THROW( () )
67 {
68 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(1);
69 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
70 return createStandardClassWithSequence(
71 rSMgr,
72 sImplementationName,
73 rSuperClass,
74 seqInterface
75 );
76 }
77
78
79
80 template < class Interface1, class Interface2 >
81 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
82 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *)83 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
84 const ::rtl::OUString &sImplementationName ,
85 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
86 const Interface1 *,
87 const Interface2 *
88 )
89 SAL_THROW( () )
90 {
91 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(2);
92 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
93 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
94 return createStandardClassWithSequence(
95 rSMgr,
96 sImplementationName,
97 rSuperClass,
98 seqInterface
99 );
100 }
101
102
103
104
105
106 template < class Interface1, class Interface2 , class Interface3 >
107 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
108 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *)109 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
110 const ::rtl::OUString &sImplementationName ,
111 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
112 const Interface1 *,
113 const Interface2 *,
114 const Interface3 *
115 )
116 SAL_THROW( () )
117 {
118 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(3);
119 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
120 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
121 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
122 return createStandardClassWithSequence(
123 rSMgr,
124 sImplementationName,
125 rSuperClass,
126 seqInterface
127 );
128 }
129
130
131
132
133
134 template < class Interface1, class Interface2 , class Interface3 , class Interface4 >
135 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
136 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *,const Interface4 *)137 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
138 const ::rtl::OUString &sImplementationName ,
139 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
140 const Interface1 *,
141 const Interface2 *,
142 const Interface3 *,
143 const Interface4 *
144 )
145 SAL_THROW( () )
146 {
147 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(4);
148 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
149 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
150 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
151 seqInterface.getArray()[3] = Interface4::static_type().getTypeName();
152 return createStandardClassWithSequence(
153 rSMgr,
154 sImplementationName,
155 rSuperClass,
156 seqInterface
157 );
158 }
159
160
161
162
163
164
165
166 template < class Interface1, class Interface2 , class Interface3 , class Interface4 , class Interface5 >
167 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
168 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *,const Interface4 *,const Interface5 *)169 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
170 const ::rtl::OUString &sImplementationName ,
171 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
172 const Interface1 *,
173 const Interface2 *,
174 const Interface3 *,
175 const Interface4 *,
176 const Interface5 *
177 )
178 SAL_THROW( () )
179 {
180 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(5);
181 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
182 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
183 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
184 seqInterface.getArray()[3] = Interface4::static_type().getTypeName();
185 seqInterface.getArray()[4] = Interface5::static_type().getTypeName();
186 return createStandardClassWithSequence(
187 rSMgr,
188 sImplementationName,
189 rSuperClass,
190 seqInterface
191 );
192 }
193
194
195
196
197 template < class Interface1, class Interface2 , class Interface3 , class Interface4 , class Interface5 ,
198 class Interface6 >
199 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
200 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *,const Interface4 *,const Interface5 *,const Interface6 *)201 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
202 const ::rtl::OUString &sImplementationName ,
203 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
204 const Interface1 *,
205 const Interface2 *,
206 const Interface3 *,
207 const Interface4 *,
208 const Interface5 *,
209 const Interface6 *
210 )
211 SAL_THROW( () )
212 {
213 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(6);
214 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
215 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
216 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
217 seqInterface.getArray()[3] = Interface4::static_type().getTypeName();
218 seqInterface.getArray()[4] = Interface5::static_type().getTypeName();
219 seqInterface.getArray()[5] = Interface6::static_type().getTypeName();
220 return createStandardClassWithSequence(
221 rSMgr,
222 sImplementationName,
223 rSuperClass,
224 seqInterface
225 );
226 }
227
228
229
230
231
232 template < class Interface1, class Interface2 , class Interface3 , class Interface4 , class Interface5 ,
233 class Interface6, class Interface7 >
234 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
235 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *,const Interface4 *,const Interface5 *,const Interface6 *,const Interface7 *)236 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
237 const ::rtl::OUString &sImplementationName ,
238 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
239 const Interface1 *,
240 const Interface2 *,
241 const Interface3 *,
242 const Interface4 *,
243 const Interface5 *,
244 const Interface6 *,
245 const Interface7 *
246 )
247 SAL_THROW( () )
248 {
249 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(7);
250 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
251 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
252 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
253 seqInterface.getArray()[3] = Interface4::static_type().getTypeName();
254 seqInterface.getArray()[4] = Interface5::static_type().getTypeName();
255 seqInterface.getArray()[5] = Interface6::static_type().getTypeName();
256 seqInterface.getArray()[6] = Interface7::static_type().getTypeName();
257 return createStandardClassWithSequence(
258 rSMgr,
259 sImplementationName,
260 rSuperClass,
261 seqInterface
262 );
263 }
264
265
266
267
268
269
270 template < class Interface1, class Interface2, class Interface3 , class Interface4 , class Interface5 ,
271 class Interface6, class Interface7, class Interface8 >
272 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
273 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *,const Interface4 *,const Interface5 *,const Interface6 *,const Interface7 *,const Interface8 *)274 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
275 const ::rtl::OUString &sImplementationName ,
276 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
277 const Interface1 *,
278 const Interface2 *,
279 const Interface3 *,
280 const Interface4 *,
281 const Interface5 *,
282 const Interface6 *,
283 const Interface7 *,
284 const Interface8 *
285 )
286 SAL_THROW( () )
287 {
288 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(8);
289 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
290 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
291 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
292 seqInterface.getArray()[3] = Interface4::static_type().getTypeName();
293 seqInterface.getArray()[4] = Interface5::static_type().getTypeName();
294 seqInterface.getArray()[5] = Interface6::static_type().getTypeName();
295 seqInterface.getArray()[6] = Interface7::static_type().getTypeName();
296 seqInterface.getArray()[7] = Interface8::static_type().getTypeName();
297 return createStandardClassWithSequence(
298 rSMgr,
299 sImplementationName,
300 rSuperClass,
301 seqInterface
302 );
303 }
304
305
306
307
308 template < class Interface1, class Interface2, class Interface3 , class Interface4 , class Interface5 ,
309 class Interface6, class Interface7, class Interface8 , class Interface9 >
310 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
311 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *,const Interface4 *,const Interface5 *,const Interface6 *,const Interface7 *,const Interface8 *,const Interface9 *)312 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
313 const ::rtl::OUString &sImplementationName ,
314 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
315 const Interface1 *,
316 const Interface2 *,
317 const Interface3 *,
318 const Interface4 *,
319 const Interface5 *,
320 const Interface6 *,
321 const Interface7 *,
322 const Interface8 *,
323 const Interface9 *
324 )
325 SAL_THROW( () )
326 {
327 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(9);
328 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
329 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
330 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
331 seqInterface.getArray()[3] = Interface4::static_type().getTypeName();
332 seqInterface.getArray()[4] = Interface5::static_type().getTypeName();
333 seqInterface.getArray()[5] = Interface6::static_type().getTypeName();
334 seqInterface.getArray()[6] = Interface7::static_type().getTypeName();
335 seqInterface.getArray()[7] = Interface8::static_type().getTypeName();
336 seqInterface.getArray()[8] = Interface9::static_type().getTypeName();
337 return createStandardClassWithSequence(
338 rSMgr,
339 sImplementationName,
340 rSuperClass,
341 seqInterface
342 );
343 }
344
345
346 template < class Interface1, class Interface2, class Interface3 , class Interface4 , class Interface5 ,
347 class Interface6, class Interface7, class Interface8 , class Interface9 , class Interface10 >
348 inline ::com::sun::star::reflection::XIdlClass * SAL_CALL
349 //inline ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass >
createStandardClass(const::com::sun::star::uno::Reference<::com::sun::star::lang::XMultiServiceFactory> & rSMgr,const::rtl::OUString & sImplementationName,const::com::sun::star::uno::Reference<::com::sun::star::reflection::XIdlClass> & rSuperClass,const Interface1 *,const Interface2 *,const Interface3 *,const Interface4 *,const Interface5 *,const Interface6 *,const Interface7 *,const Interface8 *,const Interface9 *,const Interface10 *)350 createStandardClass( const ::com::sun::star::uno::Reference < ::com::sun::star::lang::XMultiServiceFactory > &rSMgr,
351 const ::rtl::OUString &sImplementationName ,
352 const ::com::sun::star::uno::Reference < ::com::sun::star::reflection::XIdlClass > &rSuperClass ,
353 const Interface1 *,
354 const Interface2 *,
355 const Interface3 *,
356 const Interface4 *,
357 const Interface5 *,
358 const Interface6 *,
359 const Interface7 *,
360 const Interface8 *,
361 const Interface9 *,
362 const Interface10 *
363 )
364 SAL_THROW( () )
365 {
366 ::com::sun::star::uno::Sequence < ::rtl::OUString > seqInterface(10);
367 seqInterface.getArray()[0] = Interface1::static_type().getTypeName();
368 seqInterface.getArray()[1] = Interface2::static_type().getTypeName();
369 seqInterface.getArray()[2] = Interface3::static_type().getTypeName();
370 seqInterface.getArray()[3] = Interface4::static_type().getTypeName();
371 seqInterface.getArray()[4] = Interface5::static_type().getTypeName();
372 seqInterface.getArray()[5] = Interface6::static_type().getTypeName();
373 seqInterface.getArray()[6] = Interface7::static_type().getTypeName();
374 seqInterface.getArray()[7] = Interface8::static_type().getTypeName();
375 seqInterface.getArray()[8] = Interface9::static_type().getTypeName();
376 seqInterface.getArray()[9] = Interface10::static_type().getTypeName();
377 return createStandardClassWithSequence(
378 rSMgr,
379 sImplementationName,
380 rSuperClass,
381 seqInterface
382 );
383 }
384
385 } // end namespace cppu
386
387 #endif
388