xref: /trunk/main/cppuhelper/inc/cppuhelper/stdidlclass.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
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