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 : /** This header generates the following template classes with a variable number
21 : of interfaces:
22 :
23 : comphelper::ImplHelper<N> <typename Ifc1, ..., typename Ifc<N> >
24 : comphelper::WeakImplHelper<N> <typename Ifc1, ..., typename Ifc<N> >
25 : comphelper::WeakComponentImplHelper<N> <typename Ifc1, ...,
26 : typename Ifc<N> >
27 : comphelper::ImplInheritanceHelper<N> <typename BaseClass,
28 : typename Ifc1, ..., typename Ifc<N> >
29 :
30 : as already present in headers cppuhelper/implbase<1-12>.hxx and
31 : cppuhelper/compbase<1-12>.hxx.
32 : <N> denotes the number of interface types passed as template arguments.
33 : Don't use this header for interface numbers up to 12;
34 : always use the existing cppuhelper/(impl|comp)base<1-12>.hxx headers
35 : for this purpose, which eases debugging.
36 :
37 : Including this header requires a little discipline, because it has no
38 : include guards. Please use the following external include guard rule
39 : where <N> is the number of interface types:
40 :
41 : #ifndef INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_<N>
42 : #define INCLUDED_COMPHELPER_IMPLBASE_VAR_HXX_<N>
43 : #define COMPHELPER_IMPLBASE_INTERFACE_NUMBER <N>
44 : #include <comphelper/implbase_var.hxx>
45 : #endif
46 :
47 : Additionally you can
48 :
49 : #define COMPHELPER_IMPLBASE_MAX_CTOR_ARGS <N>
50 :
51 : to control the maximum number of templated ctor arguments for the
52 : ImplInheritanceHelper<N> classes.
53 : The default is a maximum of 6 arguments.
54 : */
55 :
56 : #ifndef COMPHELPER_IMPLBASE_INTERFACE_NUMBER
57 : #error "you have to define COMPHELPER_IMPLBASE_INTERFACE_NUMBER prior to including comphelper/implbase_var.hxx!"
58 : #endif // ! defined(COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
59 :
60 : #if !defined(COMPHELPER_IMPLBASE_TEST_PHASE) && COMPHELPER_IMPLBASE_INTERFACE_NUMBER <= 12
61 : #error "include proper header file: cppuhelper/implbase<N>.hxx or cppuhelper/compbase<N>.hxx!"
62 : #endif
63 :
64 : #ifndef COMPHELPER_IMPLBASE_MAX_CTOR_ARGS
65 : #define COMPHELPER_IMPLBASE_MAX_CTOR_ARGS 6 // default
66 : #endif
67 :
68 : #include <cppuhelper/implbase_ex.hxx>
69 : #include <rtl/instance.hxx>
70 : #include <cppuhelper/compbase_ex.hxx>
71 :
72 : #include <boost/preprocessor/cat.hpp>
73 : #include <boost/preprocessor/repetition.hpp>
74 : #include <boost/preprocessor/arithmetic/add.hpp>
75 :
76 : namespace comphelper {
77 :
78 : // Suppress warnings about hidden functions in case any of the IfcN has
79 : // functions named dispose, addEventListener, or removeEventListener:
80 :
81 : namespace detail {
82 :
83 : struct BOOST_PP_CAT(class_data, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
84 : {
85 : sal_Int16 m_nTypes;
86 : sal_Bool m_storedTypeRefs;
87 : sal_Bool m_storedId;
88 : sal_Int8 m_id[16];
89 : ::cppu::type_entry m_typeEntries[COMPHELPER_IMPLBASE_INTERFACE_NUMBER + 1];
90 : };
91 :
92 : /// @internal
93 : template < BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
94 : typename Ifc), typename Impl >
95 : struct BOOST_PP_CAT(ImplClassData, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
96 : {
97 0 : ::cppu::class_data * operator()() {
98 : static BOOST_PP_CAT(class_data, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
99 : s_cd = {
100 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER + 1, sal_False, sal_False,
101 : { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
102 : {
103 : #define COMPHELPER_IMPLBASE_classdataList(z_, n_, unused_) \
104 : { { BOOST_PP_CAT(Ifc, n_)::static_type }, \
105 : reinterpret_cast<sal_IntPtr>( static_cast< BOOST_PP_CAT(Ifc, n_) * >( \
106 : reinterpret_cast<Impl *>(16) ) ) - 16 },
107 : BOOST_PP_REPEAT(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
108 : COMPHELPER_IMPLBASE_classdataList, ~)
109 : #undef COMPHELPER_IMPLBASE_classdataList
110 : { { ::com::sun::star::lang::XTypeProvider::static_type },
111 : reinterpret_cast<sal_IntPtr>(
112 : static_cast< ::com::sun::star::lang::XTypeProvider * >(
113 : reinterpret_cast<Impl *>(16) ) ) - 16 }
114 : }
115 : };
116 0 : return reinterpret_cast< ::cppu::class_data * >(&s_cd);
117 : }
118 : };
119 :
120 : } // namespace detail
121 :
122 : /** Implementation helper implementing interface
123 : ::com::sun::star::lang::XTypeProvider and method
124 : XInterface::queryInterface(), but no reference counting.
125 :
126 : @derive
127 : Inherit from this class giving your interface(s) to be implemented as
128 : template argument(s). Your sub class defines method implementations for
129 : these interface(s) including acquire()/release() and delegates incoming
130 : queryInterface() calls to this base class.
131 : */
132 : template< BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
133 : typename Ifc) >
134 : class SAL_NO_VTABLE BOOST_PP_CAT(ImplHelper,
135 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
136 : : public ::com::sun::star::lang::XTypeProvider,
137 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, public Ifc)
138 : {
139 : /// @internal
140 : struct cd : public ::rtl::StaticAggregate<
141 : ::cppu::class_data,
142 : BOOST_PP_CAT(detail::ImplClassData,
143 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
144 : <
145 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc),
146 : BOOST_PP_CAT(ImplHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)<
147 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc)>
148 : > > {};
149 :
150 : protected:
151 0 : BOOST_PP_CAT(ImplHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)() {}
152 0 : virtual ~BOOST_PP_CAT(ImplHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)() {}
153 :
154 : public:
155 : virtual ::com::sun::star::uno::Any
156 0 : SAL_CALL queryInterface( ::com::sun::star::uno::Type const& rType )
157 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
158 0 : { return ::cppu::ImplHelper_query( rType, cd::get(), this ); }
159 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >
160 0 : SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
161 0 : { return ::cppu::ImplHelper_getTypes( cd::get() ); }
162 : virtual ::com::sun::star::uno::Sequence<sal_Int8>
163 0 : SAL_CALL getImplementationId()
164 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
165 0 : { return ::cppu::ImplHelper_getImplementationId( cd::get() ); }
166 : };
167 :
168 : /** Implementation helper implementing interfaces
169 : ::com::sun::star::lang::XTypeProvider and
170 : ::com::sun::star::uno::XInterface
171 : which supports weak mechanism to be held weakly
172 : (supporting ::com::sun::star::uno::XWeak thru ::cppu::OWeakObject).
173 :
174 : @derive
175 : Inherit from this class giving your interface(s) to be implemented as
176 : template argument(s). Your sub class defines method implementations for
177 : these interface(s).
178 : */
179 : template< BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
180 : typename Ifc) >
181 0 : class SAL_NO_VTABLE BOOST_PP_CAT(WeakImplHelper,
182 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
183 : : public ::cppu::OWeakObject,
184 : public ::com::sun::star::lang::XTypeProvider,
185 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, public Ifc)
186 : {
187 : /// @internal
188 : struct cd : public ::rtl::StaticAggregate<
189 : ::cppu::class_data,
190 : BOOST_PP_CAT(detail::ImplClassData,
191 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
192 : <
193 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc),
194 : BOOST_PP_CAT(WeakImplHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)<
195 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc)>
196 : > > {};
197 :
198 : public:
199 : virtual ::com::sun::star::uno::Any
200 0 : SAL_CALL queryInterface( ::com::sun::star::uno::Type const& rType )
201 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
202 : {
203 : return ::cppu::WeakImplHelper_query(
204 0 : rType, cd::get(), this, static_cast<OWeakObject *>(this) );
205 : }
206 0 : virtual void SAL_CALL acquire() throw () SAL_OVERRIDE
207 0 : { OWeakObject::acquire(); }
208 0 : virtual void SAL_CALL release() throw () SAL_OVERRIDE
209 0 : { OWeakObject::release(); }
210 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >
211 0 : SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
212 0 : { return ::cppu::WeakImplHelper_getTypes( cd::get() ); }
213 : virtual ::com::sun::star::uno::Sequence<sal_Int8>
214 0 : SAL_CALL getImplementationId()
215 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
216 0 : { return ::cppu::ImplHelper_getImplementationId( cd::get() ); }
217 : };
218 :
219 : /** Implementation helper implementing interfaces
220 : ::com::sun::star::lang::XTypeProvider and
221 : ::com::sun::star::uno::XInterface inherting from a BaseClass.
222 :
223 : All acquire() and release() calls are delegated to the BaseClass.
224 : Upon queryInterface(), if a demanded interface is not supported by this
225 : class directly, the request is delegated to the BaseClass.
226 :
227 : @attention
228 : The BaseClass has to be complete in a sense, that
229 : ::com::sun::star::uno::XInterface and
230 : ::com::sun::star::lang::XTypeProvider are implemented properly.
231 : The BaseClass must have at least one ctor that can be called with
232 : COMPHELPER_IMPLBASE_MAX_CTOR_ARGS or fewer arguments.
233 :
234 : @derive
235 : Inherit from this class giving your additional interface(s) to be
236 : implemented as template argument(s). Your sub class defines method
237 : implementations for these interface(s).
238 : */
239 : template <typename BaseClass,
240 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
241 : typename Ifc) >
242 0 : class SAL_NO_VTABLE BOOST_PP_CAT(ImplInheritanceHelper,
243 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
244 : : public BaseClass,
245 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, public Ifc)
246 : {
247 : /// @internal
248 : struct cd : public ::rtl::StaticAggregate<
249 : ::cppu::class_data,
250 : BOOST_PP_CAT(detail::ImplClassData,
251 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
252 : <
253 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc),
254 : BOOST_PP_CAT(ImplInheritanceHelper,
255 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)<
256 : BaseClass,
257 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc)>
258 : > > {};
259 :
260 : protected:
261 : #define COMPHELPER_IMPLBASE_templctor_args(z_, n_, unused_) \
262 : BOOST_PP_CAT(T, n_) const& BOOST_PP_CAT(arg, n_)
263 : #define COMPHELPER_IMPLBASE_templctor(z_, n_, classname_) \
264 : template< BOOST_PP_ENUM_PARAMS( BOOST_PP_ADD(n_, 1), typename T) > \
265 : explicit BOOST_PP_CAT(classname_, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)( \
266 : BOOST_PP_ENUM(BOOST_PP_ADD(n_, 1), \
267 : COMPHELPER_IMPLBASE_templctor_args, ~) ) \
268 : : BaseClass( BOOST_PP_ENUM_PARAMS(BOOST_PP_ADD(n_, 1), arg) ) {}
269 :
270 0 : BOOST_PP_CAT(ImplInheritanceHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)()
271 0 : : BaseClass() {}
272 : BOOST_PP_REPEAT(COMPHELPER_IMPLBASE_MAX_CTOR_ARGS,
273 : COMPHELPER_IMPLBASE_templctor, ImplInheritanceHelper)
274 :
275 : public:
276 : virtual ::com::sun::star::uno::Any
277 0 : SAL_CALL queryInterface( ::com::sun::star::uno::Type const& rType )
278 : throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE
279 : {
280 : ::com::sun::star::uno::Any const aRet(
281 0 : ::cppu::ImplHelper_queryNoXInterface( rType, cd::get(), this ) );
282 0 : if (aRet.hasValue())
283 0 : return aRet;
284 0 : return BaseClass::queryInterface( rType );
285 : }
286 0 : virtual void SAL_CALL acquire() throw () SAL_OVERRIDE
287 0 : { BaseClass::acquire(); }
288 0 : virtual void SAL_CALL release() throw () SAL_OVERRIDE
289 0 : { BaseClass::release(); }
290 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >
291 0 : SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE
292 : {
293 : return ::cppu::ImplInhHelper_getTypes(
294 0 : cd::get(), BaseClass::getTypes() );
295 : }
296 : virtual ::com::sun::star::uno::Sequence<sal_Int8>
297 0 : SAL_CALL getImplementationId()
298 : throw (::com::sun::star::uno::RuntimeException) SAL_OVERRIDE
299 0 : { return ::cppu::ImplHelper_getImplementationId( cd::get() ); }
300 : };
301 :
302 : // not needed anymore:
303 : #undef COMPHELPER_IMPLBASE_templctor_args
304 : #undef COMPHELPER_IMPLBASE_templctor
305 :
306 : /** Implementation helper supporting
307 : ::com::sun::star::lang::XTypeProvider and
308 : ::com::sun::star::lang::XComponent.
309 :
310 : Upon disposing objects of this class, sub-classes receive a disposing()
311 : call. Objects of this class can be held weakly, i.e. by a
312 : ::com::sun::star::uno::WeakReference.
313 :
314 : @attention
315 : The life-cycle of the passed mutex reference has to be longer than objects
316 : of this class.
317 :
318 : @derive
319 : Inherit from this class giving your interface(s) to be implemented as
320 : template argument(s). Your sub class defines method implementations for
321 : these interface(s).
322 : */
323 : template < BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
324 : typename Ifc) >
325 0 : class SAL_NO_VTABLE BOOST_PP_CAT(WeakComponentImplHelper,
326 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
327 : : public ::cppu::WeakComponentImplHelperBase,
328 : public ::com::sun::star::lang::XTypeProvider,
329 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, public Ifc)
330 : {
331 : /// @internal
332 : struct cd : public ::rtl::StaticAggregate<
333 : ::cppu::class_data,
334 : BOOST_PP_CAT(detail::ImplClassData,
335 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
336 : <
337 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc),
338 : BOOST_PP_CAT(WeakComponentImplHelper,
339 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)<
340 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc)>
341 : > > {};
342 :
343 : public:
344 0 : BOOST_PP_CAT(WeakComponentImplHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)(
345 0 : ::osl::Mutex & rMutex ) : WeakComponentImplHelperBase(rMutex) {}
346 :
347 : virtual ::com::sun::star::uno::Any
348 0 : SAL_CALL queryInterface( ::com::sun::star::uno::Type const& rType )
349 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
350 : {
351 : return ::cppu::WeakComponentImplHelper_query(
352 : rType, cd::get(), this,
353 0 : static_cast< ::cppu::WeakComponentImplHelperBase * >(this) );
354 : }
355 0 : virtual void SAL_CALL acquire() throw () SAL_OVERRIDE
356 0 : { WeakComponentImplHelperBase::acquire(); }
357 0 : virtual void SAL_CALL release() throw () SAL_OVERRIDE
358 0 : { WeakComponentImplHelperBase::release(); }
359 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >
360 0 : SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
361 0 : { return ::cppu::WeakComponentImplHelper_getTypes( cd::get() ); }
362 : virtual ::com::sun::star::uno::Sequence<sal_Int8>
363 0 : SAL_CALL getImplementationId()
364 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
365 0 : { return ::cppu::ImplHelper_getImplementationId( cd::get() ); }
366 :
367 : // implement XComponent directly avoiding ambiguities:
368 0 : virtual void SAL_CALL dispose()
369 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
370 0 : { WeakComponentImplHelperBase::dispose(); }
371 0 : virtual void SAL_CALL addEventListener(
372 : ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener>
373 : const & xListener ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
374 0 : { WeakComponentImplHelperBase::addEventListener( xListener ); }
375 0 : virtual void SAL_CALL removeEventListener(
376 : ::com::sun::star::uno::Reference< ::com::sun::star::lang::XEventListener>
377 : const & xListener ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
378 0 : { WeakComponentImplHelperBase::removeEventListener( xListener ); }
379 : };
380 :
381 : template < BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
382 : typename Ifc) >
383 0 : class SAL_NO_VTABLE BOOST_PP_CAT(PartialWeakComponentImplHelper,
384 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
385 : : public ::cppu::WeakComponentImplHelperBase,
386 : public ::com::sun::star::lang::XTypeProvider,
387 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, public Ifc)
388 : {
389 : /// @internal
390 : struct cd : public ::rtl::StaticAggregate<
391 : ::cppu::class_data,
392 : BOOST_PP_CAT(detail::ImplClassData,
393 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
394 : <
395 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc),
396 : BOOST_PP_CAT(PartialWeakComponentImplHelper,
397 : COMPHELPER_IMPLBASE_INTERFACE_NUMBER)<
398 : BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc)>
399 : > > {};
400 :
401 : public:
402 0 : BOOST_PP_CAT(PartialWeakComponentImplHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)(
403 0 : ::osl::Mutex & rMutex ) : WeakComponentImplHelperBase(rMutex) {}
404 :
405 : virtual ::com::sun::star::uno::Any
406 0 : SAL_CALL queryInterface( ::com::sun::star::uno::Type const& rType )
407 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
408 : {
409 : return ::cppu::WeakComponentImplHelper_query(
410 : rType, cd::get(), this,
411 0 : static_cast< ::cppu::WeakComponentImplHelperBase * >(this) );
412 : }
413 0 : virtual void SAL_CALL acquire() throw () SAL_OVERRIDE
414 0 : { WeakComponentImplHelperBase::acquire(); }
415 0 : virtual void SAL_CALL release() throw () SAL_OVERRIDE
416 0 : { WeakComponentImplHelperBase::release(); }
417 : virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >
418 0 : SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
419 0 : { return ::cppu::WeakComponentImplHelper_getTypes( cd::get() ); }
420 : virtual ::com::sun::star::uno::Sequence<sal_Int8>
421 0 : SAL_CALL getImplementationId()
422 : throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE
423 0 : { return ::cppu::ImplHelper_getImplementationId( cd::get() ); }
424 : };
425 :
426 :
427 : } // namespace comphelper
428 :
429 : // undef for multiple use/inclusion of this header:
430 : #undef COMPHELPER_IMPLBASE_MAX_CTOR_ARGS
431 : #undef COMPHELPER_IMPLBASE_INTERFACE_NUMBER
432 :
433 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|