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