23#ifndef INCLUDED_CPPUHELPER_IMPLBASE4_HXX 
   24#define INCLUDED_CPPUHELPER_IMPLBASE4_HXX 
   30#include "com/sun/star/lang/XTypeProvider.hpp" 
   42        type_entry m_typeEntries[ 4 + 1 ];
 
   45    template< 
typename Ifc1, 
typename Ifc2, 
typename Ifc3, 
typename Ifc4, 
typename Impl >
 
   48        class_data* operator ()()
 
   50            static class_data4 s_cd =
 
   53                { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 
   55                    CPPUHELPER_DETAIL_TYPEENTRY(Ifc1),
 
   56                    CPPUHELPER_DETAIL_TYPEENTRY(Ifc2),
 
   57                    CPPUHELPER_DETAIL_TYPEENTRY(Ifc3),
 
   58                    CPPUHELPER_DETAIL_TYPEENTRY(Ifc4),
 
   59                    CPPUHELPER_DETAIL_TYPEENTRY(css::lang::XTypeProvider)
 
   62            return reinterpret_cast< class_data * 
>(&s_cd);
 
   76    template< 
class Ifc1, 
class Ifc2, 
class Ifc3, 
class Ifc4 >
 
   78        : 
public css::lang::XTypeProvider
 
   79        , 
public Ifc1, 
public Ifc2, 
public Ifc3, 
public Ifc4
 
   81        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData4 < Ifc1, Ifc2, Ifc3, Ifc4, ImplHelper4<Ifc1, Ifc2, Ifc3, Ifc4> > > {};
 
   83#if defined LIBO_INTERNAL_ONLY 
   92            { 
return ImplHelper_query( rType, 
cd::get(), 
this ); }
 
 
   94            { 
return ImplHelper_getTypes( 
cd::get() ); }
 
 
   96            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  111    template< 
class Ifc1, 
class Ifc2, 
class Ifc3, 
class Ifc4 >
 
  114        , 
public css::lang::XTypeProvider
 
  115        , 
public Ifc1, 
public Ifc2, 
public Ifc3, 
public Ifc4
 
  117        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData4 < Ifc1, Ifc2, Ifc3, Ifc4, WeakImplHelper4<Ifc1, Ifc2, Ifc3, Ifc4> > > {};
 
  120            { 
return WeakImplHelper_query( rType, 
cd::get(), 
this, 
static_cast<OWeakObject *
>(
this) ); }
 
 
  126            { 
return WeakImplHelper_getTypes( 
cd::get() ); }
 
 
  128            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  143    template< 
class Ifc1, 
class Ifc2, 
class Ifc3, 
class Ifc4 >
 
  146        , 
public css::lang::XTypeProvider
 
  147        , 
public Ifc1, 
public Ifc2, 
public Ifc3, 
public Ifc4
 
  149        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData4 < Ifc1, Ifc2, Ifc3, Ifc4, WeakAggImplHelper4<Ifc1, Ifc2, Ifc3, Ifc4> > > {};
 
  154            { 
return WeakAggImplHelper_queryAgg( rType, 
cd::get(), 
this, 
static_cast<OWeakAggObject *
>(
this) ); }
 
 
  160            { 
return WeakAggImplHelper_getTypes( 
cd::get() ); }
 
 
  162            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  180    template< 
class BaseClass, 
class Ifc1, 
class Ifc2, 
class Ifc3, 
class Ifc4 >
 
  183        , 
public Ifc1, 
public Ifc2, 
public Ifc3, 
public Ifc4
 
  185        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData4 < Ifc1, Ifc2, Ifc3, Ifc4, ImplInheritanceHelper4<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4> > > {};
 
  187        template< 
typename T1 >
 
  189        template< 
typename T1, 
typename T2 >
 
  191            BaseClass(arg1, arg2) {}
 
 
  192        template< 
typename T1, 
typename T2, 
typename T3 >
 
  194            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3):
 
  195            BaseClass(arg1, arg2, arg3) {}
 
 
  196        template< 
typename T1, 
typename T2, 
typename T3, 
typename T4 >
 
  198            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4):
 
  199            BaseClass(arg1, arg2, arg3, arg4) {}
 
 
  201            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5 >
 
  203            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  205            BaseClass(arg1, arg2, arg3, arg4, arg5) {}
 
 
  207            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
 
  210            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  211            T5 
const & arg5, T6 
const & arg6):
 
  212            BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
 
 
  220                return BaseClass::queryInterface( rType );
 
 
  223            { BaseClass::acquire(); }
 
 
  225            { BaseClass::release(); }
 
 
  227            { 
return ImplInhHelper_getTypes( 
cd::get(), BaseClass::getTypes() ); }
 
 
  229            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  248    template< 
class BaseClass, 
class Ifc1, 
class Ifc2, 
class Ifc3, 
class Ifc4 >
 
  251        , 
public Ifc1, 
public Ifc2, 
public Ifc3, 
public Ifc4
 
  253        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData4 < Ifc1, Ifc2, Ifc3, Ifc4, AggImplInheritanceHelper4<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4> > > {};
 
  255        template< 
typename T1 >
 
  257        template< 
typename T1, 
typename T2 >
 
  259            BaseClass(arg1, arg2) {}
 
 
  260        template< 
typename T1, 
typename T2, 
typename T3 >
 
  262            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3):
 
  263            BaseClass(arg1, arg2, arg3) {}
 
 
  264        template< 
typename T1, 
typename T2, 
typename T3, 
typename T4 >
 
  266            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4):
 
  267            BaseClass(arg1, arg2, arg3, arg4) {}
 
 
  269            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5 >
 
  271            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  273            BaseClass(arg1, arg2, arg3, arg4, arg5) {}
 
 
  275            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
 
  278            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  279            T5 
const & arg5, T6 
const & arg6):
 
  280            BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
 
 
  284            { 
return BaseClass::queryInterface( rType ); }
 
 
  290                return BaseClass::queryAggregation( rType );
 
 
  293            { BaseClass::acquire(); }
 
 
  295            { BaseClass::release(); }
 
 
  297            { 
return ImplInhHelper_getTypes( 
cd::get(), BaseClass::getTypes() ); }
 
 
  299            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
#define SAL_NOEXCEPT
Macro for C++11 "noexcept" vs.
Definition types.h:434
#define SAL_NO_VTABLE
Use this for pure virtual classes, e.g.
Definition types.h:312
unsigned char sal_Bool
Definition types.h:38
#define SAL_OVERRIDE
C++11 "override" feature.
Definition types.h:409
signed char sal_Int8
Definition types.h:43
#define SAL_WARN_UNUSED
Annotate classes where a compiler should warn if an instance is unused.
Definition types.h:611
Definition Enterable.hxx:31
Helper class for a late-initialized static aggregate, e.g.
Definition instance.hxx:548
static class_data * get()
Definition instance.hxx:556
Template C++ class representing an IDL sequence.
Definition Sequence.h:61
Implementation helper implementing interface css::lang::XTypeProvider and method XInterface::queryInt...
Definition implbase4.hxx:80
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase4.hxx:95
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase4.hxx:91
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase4.hxx:93
~ImplHelper4() SAL_NOEXCEPT
Definition implbase4.hxx:101
Implementation helper implementing interfaces css::lang::XTypeProvider and css::uno::XInterface which...
Definition implbase4.hxx:116
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase4.hxx:127
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase4.hxx:125
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
decreasing m_refCount
Definition implbase4.hxx:123
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
Basic queryInterface() implementation supporting com::sun::star::uno::XWeak and com::sun::star::uno::...
Definition implbase4.hxx:119
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
increasing m_refCount
Definition implbase4.hxx:121
Implementation helper implementing interfaces css::lang::XTypeProvider and css::uno::XInterface which...
Definition implbase4.hxx:148
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
If a delegator is set, then the delegator is queried for the demanded interface.
Definition implbase4.hxx:151
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
If a delegator is set, then the delegators gets released.
Definition implbase4.hxx:157
virtual css::uno::Any queryAggregation(css::uno::Type const &rType) SAL_OVERRIDE
Called by the delegator or queryInterface.
Definition implbase4.hxx:153
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase4.hxx:161
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
If a delegator is set, then the delegators gets acquired.
Definition implbase4.hxx:155
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase4.hxx:159
ImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5, T6 const &arg6)
Definition implbase4.hxx:209
ImplInheritanceHelper4()
Definition implbase4.hxx:214
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase4.hxx:215
ImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4)
Definition implbase4.hxx:197
ImplInheritanceHelper4(T1 const &arg1)
Definition implbase4.hxx:188
ImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3)
Definition implbase4.hxx:193
ImplInheritanceHelper4(T1 const &arg1, T2 const &arg2)
Definition implbase4.hxx:190
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase4.hxx:224
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase4.hxx:226
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase4.hxx:222
ImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5)
Definition implbase4.hxx:202
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase4.hxx:228
AggImplInheritanceHelper4(T1 const &arg1)
Definition implbase4.hxx:256
AggImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5)
Definition implbase4.hxx:270
AggImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4)
Definition implbase4.hxx:265
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase4.hxx:298
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase4.hxx:283
virtual css::uno::Any queryAggregation(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase4.hxx:285
AggImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3)
Definition implbase4.hxx:261
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase4.hxx:294
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase4.hxx:292
AggImplInheritanceHelper4(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5, T6 const &arg6)
Definition implbase4.hxx:277
AggImplInheritanceHelper4(T1 const &arg1, T2 const &arg2)
Definition implbase4.hxx:258
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase4.hxx:296
AggImplInheritanceHelper4()
Definition implbase4.hxx:282
OWeakObject()
Default Constructor.
Definition weak.hxx:100
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
increasing m_refCount
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
decreasing m_refCount
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
If a delegator is set, then the delegators gets acquired.
OWeakAggObject()
Constructor.
Definition weakagg.hxx:52
virtual css::uno::Any queryInterface(const css::uno::Type &rType) SAL_OVERRIDE
If a delegator is set, then the delegator is queried for the demanded interface.
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
If a delegator is set, then the delegators gets released.
C++ class representing an IDL any.
Definition Any.h:58
bool hasValue() const
Tests if any contains a value.
Definition Any.h:193
C++ class representing an IDL meta type.
Definition Type.h:59