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