16da5f311SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
36da5f311SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
46da5f311SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
56da5f311SAndrew Rist  * distributed with this work for additional information
66da5f311SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
76da5f311SAndrew Rist  * to you under the Apache License, Version 2.0 (the
86da5f311SAndrew Rist  * "License"); you may not use this file except in compliance
96da5f311SAndrew Rist  * with the License.  You may obtain a copy of the License at
106da5f311SAndrew Rist  *
116da5f311SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
126da5f311SAndrew Rist  *
136da5f311SAndrew Rist  * Unless required by applicable law or agreed to in writing,
146da5f311SAndrew Rist  * software distributed under the License is distributed on an
156da5f311SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
166da5f311SAndrew Rist  * KIND, either express or implied.  See the License for the
176da5f311SAndrew Rist  * specific language governing permissions and limitations
186da5f311SAndrew Rist  * under the License.
196da5f311SAndrew Rist  *
206da5f311SAndrew Rist  *************************************************************/
216da5f311SAndrew Rist 
226da5f311SAndrew Rist 
23cdf0e10cSrcweir #ifndef _CPPUHELPER_IMPLBASE11_HXX_
24cdf0e10cSrcweir #define _CPPUHELPER_IMPLBASE11_HXX_
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include <cppuhelper/implbase_ex.hxx>
27cdf0e10cSrcweir #include <rtl/instance.hxx>
28cdf0e10cSrcweir 
29cdf0e10cSrcweir namespace cppu
30cdf0e10cSrcweir {
31cdf0e10cSrcweir     /** @internal */
32cdf0e10cSrcweir     struct class_data11
33cdf0e10cSrcweir     {
34cdf0e10cSrcweir         sal_Int16 m_nTypes;
35cdf0e10cSrcweir         sal_Bool m_storedTypeRefs;
36cdf0e10cSrcweir         sal_Bool m_storedId;
37cdf0e10cSrcweir         sal_Int8 m_id[ 16 ];
38cdf0e10cSrcweir         type_entry m_typeEntries[ 11 + 1 ];
39cdf0e10cSrcweir     };
40cdf0e10cSrcweir 
41cdf0e10cSrcweir     /** @internal */
42cdf0e10cSrcweir     template< typename Ifc1, typename Ifc2, typename Ifc3, typename Ifc4, typename Ifc5, typename Ifc6, typename Ifc7, typename Ifc8, typename Ifc9, typename Ifc10, typename Ifc11, typename Impl >
43cdf0e10cSrcweir 	struct ImplClassData11
44cdf0e10cSrcweir     {
operator ()cppu::ImplClassData1145cdf0e10cSrcweir         class_data* operator ()()
46cdf0e10cSrcweir         {
47cdf0e10cSrcweir             static class_data11 s_cd =
48cdf0e10cSrcweir             {
49cdf0e10cSrcweir                 11 +1, sal_False, sal_False,
50cdf0e10cSrcweir 				{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
51cdf0e10cSrcweir 				{
52cdf0e10cSrcweir 					{ { Ifc1::static_type }, ((sal_IntPtr)(Ifc1 *) (Impl *) 16) - 16 },
53cdf0e10cSrcweir 					{ { Ifc2::static_type }, ((sal_IntPtr)(Ifc2 *) (Impl *) 16) - 16 },
54cdf0e10cSrcweir 					{ { Ifc3::static_type }, ((sal_IntPtr)(Ifc3 *) (Impl *) 16) - 16 },
55cdf0e10cSrcweir 					{ { Ifc4::static_type }, ((sal_IntPtr)(Ifc4 *) (Impl *) 16) - 16 },
56cdf0e10cSrcweir 					{ { Ifc5::static_type }, ((sal_IntPtr)(Ifc5 *) (Impl *) 16) - 16 },
57cdf0e10cSrcweir 					{ { Ifc6::static_type }, ((sal_IntPtr)(Ifc6 *) (Impl *) 16) - 16 },
58cdf0e10cSrcweir 					{ { Ifc7::static_type }, ((sal_IntPtr)(Ifc7 *) (Impl *) 16) - 16 },
59cdf0e10cSrcweir 					{ { Ifc8::static_type }, ((sal_IntPtr)(Ifc8 *) (Impl *) 16) - 16 },
60cdf0e10cSrcweir 					{ { Ifc9::static_type }, ((sal_IntPtr)(Ifc9 *) (Impl *) 16) - 16 },
61cdf0e10cSrcweir 					{ { Ifc10::static_type }, ((sal_IntPtr)(Ifc10 *) (Impl *) 16) - 16 },
62cdf0e10cSrcweir 					{ { Ifc11::static_type }, ((sal_IntPtr)(Ifc11 *) (Impl *) 16) - 16 },
63cdf0e10cSrcweir 					{ { ::com::sun::star::lang::XTypeProvider::static_type }, ((sal_IntPtr)(::com::sun::star::lang::XTypeProvider *) (Impl *) 16) - 16 }
64cdf0e10cSrcweir 				}
65cdf0e10cSrcweir             };
66cdf0e10cSrcweir             return reinterpret_cast< class_data * >(&s_cd);
67cdf0e10cSrcweir         }
68cdf0e10cSrcweir     };
69cdf0e10cSrcweir 
70cdf0e10cSrcweir     /** Implementation helper implementing interface ::com::sun::star::lang::XTypeProvider
71cdf0e10cSrcweir         and method XInterface::queryInterface(), but no reference counting.
72cdf0e10cSrcweir 
73cdf0e10cSrcweir         @derive
74cdf0e10cSrcweir         Inherit from this class giving your interface(s) to be implemented as template argument(s).
75cdf0e10cSrcweir         Your sub class defines method implementations for these interface(s) including acquire()/
76cdf0e10cSrcweir         release() and delegates incoming queryInterface() calls to this base class.
77cdf0e10cSrcweir     */
78cdf0e10cSrcweir     template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11 >
79cdf0e10cSrcweir     class SAL_NO_VTABLE ImplHelper11
80cdf0e10cSrcweir         : public ::com::sun::star::lang::XTypeProvider
81cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11
82cdf0e10cSrcweir     {
83cdf0e10cSrcweir         /** @internal */
84cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData11< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, ImplHelper11<Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11> > > {};
85cdf0e10cSrcweir     public:
queryInterface(::com::sun::star::uno::Type const & rType)86cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
87cdf0e10cSrcweir             { return ImplHelper_query( rType, cd::get(), this ); }
getTypes()88cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
89cdf0e10cSrcweir             { return ImplHelper_getTypes( cd::get() ); }
getImplementationId()90cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
91cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
92cdf0e10cSrcweir     };
93cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
94cdf0e10cSrcweir         ::com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
95cdf0e10cSrcweir         (supporting ::com::sun::star::uno::XWeak thru ::cppu::OWeakObject).
96cdf0e10cSrcweir 
97cdf0e10cSrcweir         @derive
98cdf0e10cSrcweir         Inherit from this class giving your interface(s) to be implemented as template argument(s).
99cdf0e10cSrcweir         Your sub class defines method implementations for these interface(s).
100cdf0e10cSrcweir     */
101cdf0e10cSrcweir     template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11 >
102*4c5dbbf0SDamjan Jovanovic     class SAL_DLLPUBLIC_EXPORT SAL_NO_VTABLE WeakImplHelper11
103cdf0e10cSrcweir         : public OWeakObject
104cdf0e10cSrcweir         , public ::com::sun::star::lang::XTypeProvider
105cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11
106cdf0e10cSrcweir     {
107cdf0e10cSrcweir         /** @internal */
108cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData11< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, WeakImplHelper11<Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11> > > {};
109cdf0e10cSrcweir     public:
queryInterface(::com::sun::star::uno::Type const & rType)110cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
111cdf0e10cSrcweir             { return WeakImplHelper_query( rType, cd::get(), this, (OWeakObject *)this ); }
acquire()112cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
113cdf0e10cSrcweir             { OWeakObject::acquire(); }
release()114cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
115cdf0e10cSrcweir             { OWeakObject::release(); }
getTypes()116cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
117cdf0e10cSrcweir             { return WeakImplHelper_getTypes( cd::get() ); }
getImplementationId()118cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
119cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
120cdf0e10cSrcweir     };
121cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
122cdf0e10cSrcweir         ::com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
123cdf0e10cSrcweir         (supporting ::com::sun::star::uno::XWeak thru ::cppu::OWeakAggObject).
124cdf0e10cSrcweir         In addition, it supports also aggregation meaning object of this class can be aggregated
125cdf0e10cSrcweir         (::com::sun::star::uno::XAggregation thru ::cppu::OWeakAggObject).
126cdf0e10cSrcweir         If a delegator is set (this object is aggregated), then incoming queryInterface()
127cdf0e10cSrcweir         calls are delegated to the delegator object. If the delegator does not support the
128cdf0e10cSrcweir         demanded interface, it calls queryAggregation() on its aggregated objects.
129cdf0e10cSrcweir 
130cdf0e10cSrcweir         @derive
131cdf0e10cSrcweir         Inherit from this class giving your interface(s) to be implemented as template argument(s).
132cdf0e10cSrcweir         Your sub class defines method implementations for these interface(s).
133cdf0e10cSrcweir     */
134cdf0e10cSrcweir     template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11 >
135cdf0e10cSrcweir     class SAL_NO_VTABLE WeakAggImplHelper11
136cdf0e10cSrcweir         : public OWeakAggObject
137cdf0e10cSrcweir         , public ::com::sun::star::lang::XTypeProvider
138cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11
139cdf0e10cSrcweir     {
140cdf0e10cSrcweir         /** @internal */
141cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData11< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, WeakAggImplHelper11<Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11> > > {};
142cdf0e10cSrcweir     public:
queryInterface(::com::sun::star::uno::Type const & rType)143cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
144cdf0e10cSrcweir             { return OWeakAggObject::queryInterface( rType ); }
queryAggregation(::com::sun::star::uno::Type const & rType)145cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
146cdf0e10cSrcweir             { return WeakAggImplHelper_queryAgg( rType, cd::get(), this, (OWeakAggObject *)this ); }
acquire()147cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
148cdf0e10cSrcweir             { OWeakAggObject::acquire(); }
release()149cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
150cdf0e10cSrcweir             { OWeakAggObject::release(); }
getTypes()151cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
152cdf0e10cSrcweir             { return WeakAggImplHelper_getTypes( cd::get() ); }
getImplementationId()153cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
154cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
155cdf0e10cSrcweir     };
156cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
157cdf0e10cSrcweir         ::com::sun::star::uno::XInterface inherting from a BaseClass.
158cdf0e10cSrcweir         All acquire() and release() calls are delegated to the BaseClass. Upon queryInterface(),
159cdf0e10cSrcweir         if a demanded interface is not supported by this class directly, the request is
160cdf0e10cSrcweir         delegated to the BaseClass.
161cdf0e10cSrcweir 
162cdf0e10cSrcweir         @attention
163cdf0e10cSrcweir         The BaseClass has to be complete in a sense, that ::com::sun::star::uno::XInterface
164cdf0e10cSrcweir         and ::com::sun::star::lang::XTypeProvider are implemented properly.  The
165cdf0e10cSrcweir         BaseClass must have at least one ctor that can be called with six or
166cdf0e10cSrcweir         fewer arguments, of which none is of non-const reference type.
167cdf0e10cSrcweir 
168cdf0e10cSrcweir         @derive
169cdf0e10cSrcweir         Inherit from this class giving your additional interface(s) to be implemented as
170cdf0e10cSrcweir         template argument(s). Your sub class defines method implementations for these interface(s).
171cdf0e10cSrcweir     */
172cdf0e10cSrcweir     template< class BaseClass, class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11 >
173cdf0e10cSrcweir     class SAL_NO_VTABLE ImplInheritanceHelper11
174cdf0e10cSrcweir         : public BaseClass
175cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11
176cdf0e10cSrcweir     {
177cdf0e10cSrcweir         /** @internal */
178cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData11< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, ImplInheritanceHelper11<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11> > > {};
179cdf0e10cSrcweir     protected:
180cdf0e10cSrcweir         template< typename T1 >
ImplInheritanceHelper11(T1 const & arg1)181cdf0e10cSrcweir         explicit ImplInheritanceHelper11(T1 const & arg1): BaseClass(arg1) {}
182cdf0e10cSrcweir         template< typename T1, typename T2 >
ImplInheritanceHelper11(T1 const & arg1,T2 const & arg2)183cdf0e10cSrcweir         ImplInheritanceHelper11(T1 const & arg1, T2 const & arg2):
184cdf0e10cSrcweir             BaseClass(arg1, arg2) {}
185cdf0e10cSrcweir         template< typename T1, typename T2, typename T3 >
ImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3)186cdf0e10cSrcweir         ImplInheritanceHelper11(
187cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3):
188cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3) {}
189cdf0e10cSrcweir         template< typename T1, typename T2, typename T3, typename T4 >
ImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4)190cdf0e10cSrcweir         ImplInheritanceHelper11(
191cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4):
192cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4) {}
193cdf0e10cSrcweir         template<
194cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5 >
ImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5)195cdf0e10cSrcweir         ImplInheritanceHelper11(
196cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
197cdf0e10cSrcweir             T5 const & arg5):
198cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5) {}
199cdf0e10cSrcweir         template<
200cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5,
201cdf0e10cSrcweir             typename T6 >
ImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5,T6 const & arg6)202cdf0e10cSrcweir         ImplInheritanceHelper11(
203cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
204cdf0e10cSrcweir             T5 const & arg5, T6 const & arg6):
205cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
206cdf0e10cSrcweir     public:
ImplInheritanceHelper11()207cdf0e10cSrcweir         ImplInheritanceHelper11() {}
queryInterface(::com::sun::star::uno::Type const & rType)208cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
209cdf0e10cSrcweir             {
210cdf0e10cSrcweir                 ::com::sun::star::uno::Any aRet( ImplHelper_queryNoXInterface( rType, cd::get(), this ) );
211cdf0e10cSrcweir                 if (aRet.hasValue())
212cdf0e10cSrcweir                     return aRet;
213cdf0e10cSrcweir                 return BaseClass::queryInterface( rType );
214cdf0e10cSrcweir             }
acquire()215cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
216cdf0e10cSrcweir             { BaseClass::acquire(); }
release()217cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
218cdf0e10cSrcweir             { BaseClass::release(); }
getTypes()219cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
220cdf0e10cSrcweir             { return ImplInhHelper_getTypes( cd::get(), BaseClass::getTypes() ); }
getImplementationId()221cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
222cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
223cdf0e10cSrcweir     };
224cdf0e10cSrcweir     /** Implementation helper implementing interfaces ::com::sun::star::lang::XTypeProvider and
225cdf0e10cSrcweir         ::com::sun::star::uno::XInterface inherting from a BaseClass.
226cdf0e10cSrcweir         All acquire(),  release() and queryInterface() calls are delegated to the BaseClass.
227cdf0e10cSrcweir         Upon queryAggregation(), if a demanded interface is not supported by this class directly,
228cdf0e10cSrcweir         the request is delegated to the BaseClass.
229cdf0e10cSrcweir 
230cdf0e10cSrcweir         @attention
231cdf0e10cSrcweir         The BaseClass has to be complete in a sense, that ::com::sun::star::uno::XInterface,
232cdf0e10cSrcweir         ::com::sun::star::uno::XAggregation and ::com::sun::star::lang::XTypeProvider
233cdf0e10cSrcweir         are implemented properly.  The BaseClass must have at least one ctor
234cdf0e10cSrcweir         that can be called with six or fewer arguments, of which none is of
235cdf0e10cSrcweir         non-const reference type.
236cdf0e10cSrcweir 
237cdf0e10cSrcweir         @derive
238cdf0e10cSrcweir         Inherit from this class giving your additional interface(s) to be implemented as
239cdf0e10cSrcweir         template argument(s). Your sub class defines method implementations for these interface(s).
240cdf0e10cSrcweir     */
241cdf0e10cSrcweir     template< class BaseClass, class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11 >
242cdf0e10cSrcweir     class SAL_NO_VTABLE AggImplInheritanceHelper11
243cdf0e10cSrcweir         : public BaseClass
244cdf0e10cSrcweir         , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11
245cdf0e10cSrcweir     {
246cdf0e10cSrcweir         /** @internal */
247cdf0e10cSrcweir         struct cd : public rtl::StaticAggregate< class_data, ImplClassData11< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, AggImplInheritanceHelper11<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11> > > {};
248cdf0e10cSrcweir     protected:
249cdf0e10cSrcweir         template< typename T1 >
AggImplInheritanceHelper11(T1 const & arg1)250cdf0e10cSrcweir         explicit AggImplInheritanceHelper11(T1 const & arg1): BaseClass(arg1) {}
251cdf0e10cSrcweir         template< typename T1, typename T2 >
AggImplInheritanceHelper11(T1 const & arg1,T2 const & arg2)252cdf0e10cSrcweir         AggImplInheritanceHelper11(T1 const & arg1, T2 const & arg2):
253cdf0e10cSrcweir             BaseClass(arg1, arg2) {}
254cdf0e10cSrcweir         template< typename T1, typename T2, typename T3 >
AggImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3)255cdf0e10cSrcweir         AggImplInheritanceHelper11(
256cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3):
257cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3) {}
258cdf0e10cSrcweir         template< typename T1, typename T2, typename T3, typename T4 >
AggImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4)259cdf0e10cSrcweir         AggImplInheritanceHelper11(
260cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4):
261cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4) {}
262cdf0e10cSrcweir         template<
263cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5 >
AggImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5)264cdf0e10cSrcweir         AggImplInheritanceHelper11(
265cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
266cdf0e10cSrcweir             T5 const & arg5):
267cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5) {}
268cdf0e10cSrcweir         template<
269cdf0e10cSrcweir             typename T1, typename T2, typename T3, typename T4, typename T5,
270cdf0e10cSrcweir             typename T6 >
AggImplInheritanceHelper11(T1 const & arg1,T2 const & arg2,T3 const & arg3,T4 const & arg4,T5 const & arg5,T6 const & arg6)271cdf0e10cSrcweir         AggImplInheritanceHelper11(
272cdf0e10cSrcweir             T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
273cdf0e10cSrcweir             T5 const & arg5, T6 const & arg6):
274cdf0e10cSrcweir             BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
275cdf0e10cSrcweir     public:
AggImplInheritanceHelper11()276cdf0e10cSrcweir         AggImplInheritanceHelper11() {}
queryInterface(::com::sun::star::uno::Type const & rType)277cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
278cdf0e10cSrcweir             { return BaseClass::queryInterface( rType ); }
queryAggregation(::com::sun::star::uno::Type const & rType)279cdf0e10cSrcweir         virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( ::com::sun::star::uno::Type const & rType ) throw (::com::sun::star::uno::RuntimeException)
280cdf0e10cSrcweir             {
281cdf0e10cSrcweir                 ::com::sun::star::uno::Any aRet( ImplHelper_queryNoXInterface( rType, cd::get(), this ) );
282cdf0e10cSrcweir                 if (aRet.hasValue())
283cdf0e10cSrcweir                     return aRet;
284cdf0e10cSrcweir                 return BaseClass::queryAggregation( rType );
285cdf0e10cSrcweir             }
acquire()286cdf0e10cSrcweir         virtual void SAL_CALL acquire() throw ()
287cdf0e10cSrcweir             { BaseClass::acquire(); }
release()288cdf0e10cSrcweir         virtual void SAL_CALL release() throw ()
289cdf0e10cSrcweir             { BaseClass::release(); }
getTypes()290cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
291cdf0e10cSrcweir             { return ImplInhHelper_getTypes( cd::get(), BaseClass::getTypes() ); }
getImplementationId()292cdf0e10cSrcweir         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException)
293cdf0e10cSrcweir             { return ImplHelper_getImplementationId( cd::get() ); }
294cdf0e10cSrcweir     };
295cdf0e10cSrcweir }
296cdf0e10cSrcweir 
297cdf0e10cSrcweir #endif
298