23#ifndef INCLUDED_CPPUHELPER_IMPLBASE2_HXX 
   24#define INCLUDED_CPPUHELPER_IMPLBASE2_HXX 
   30#include "com/sun/star/lang/XTypeProvider.hpp" 
   42        type_entry m_typeEntries[ 2 + 1 ];
 
   45    template< 
typename Ifc1, 
typename Ifc2, 
typename Impl > 
struct SAL_WARN_UNUSED ImplClassData2
 
   47        class_data* operator ()()
 
   49            static class_data2 s_cd =
 
   52                { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
 
   54                    CPPUHELPER_DETAIL_TYPEENTRY(Ifc1),
 
   55                    CPPUHELPER_DETAIL_TYPEENTRY(Ifc2),
 
   56                    CPPUHELPER_DETAIL_TYPEENTRY(css::lang::XTypeProvider)
 
   59            return reinterpret_cast< class_data * 
>(&s_cd);
 
   73    template< 
class Ifc1, 
class Ifc2 >
 
   75        : 
public css::lang::XTypeProvider
 
   76        , 
public Ifc1, 
public Ifc2
 
   78        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData2 < Ifc1, Ifc2, ImplHelper2<Ifc1, Ifc2> > > {};
 
   80#if defined LIBO_INTERNAL_ONLY 
   89            { 
return ImplHelper_query( rType, 
cd::get(), 
this ); }
 
 
   91            { 
return ImplHelper_getTypes( 
cd::get() ); }
 
 
   93            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  108    template< 
class Ifc1, 
class Ifc2 >
 
  111        , 
public css::lang::XTypeProvider
 
  112        , 
public Ifc1, 
public Ifc2
 
  114        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData2 < Ifc1, Ifc2, WeakImplHelper2<Ifc1, Ifc2> > > {};
 
  117            { 
return WeakImplHelper_query( rType, 
cd::get(), 
this, 
static_cast<OWeakObject *
>(
this) ); }
 
 
  123            { 
return WeakImplHelper_getTypes( 
cd::get() ); }
 
 
  125            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  140    template< 
class Ifc1, 
class Ifc2 >
 
  143        , 
public css::lang::XTypeProvider
 
  144        , 
public Ifc1, 
public Ifc2
 
  146        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData2 < Ifc1, Ifc2, WeakAggImplHelper2<Ifc1, Ifc2> > > {};
 
  151            { 
return WeakAggImplHelper_queryAgg( rType, 
cd::get(), 
this, 
static_cast<OWeakAggObject *
>(
this) ); }
 
 
  157            { 
return WeakAggImplHelper_getTypes( 
cd::get() ); }
 
 
  159            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  177    template< 
class BaseClass, 
class Ifc1, 
class Ifc2 >
 
  180        , 
public Ifc1, 
public Ifc2
 
  182        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData2 < Ifc1, Ifc2, ImplInheritanceHelper2<BaseClass, Ifc1, Ifc2> > > {};
 
  184        template< 
typename T1 >
 
  186        template< 
typename T1, 
typename T2 >
 
  188            BaseClass(arg1, arg2) {}
 
 
  189        template< 
typename T1, 
typename T2, 
typename T3 >
 
  191            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3):
 
  192            BaseClass(arg1, arg2, arg3) {}
 
 
  193        template< 
typename T1, 
typename T2, 
typename T3, 
typename T4 >
 
  195            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4):
 
  196            BaseClass(arg1, arg2, arg3, arg4) {}
 
 
  198            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5 >
 
  200            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  202            BaseClass(arg1, arg2, arg3, arg4, arg5) {}
 
 
  204            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
 
  207            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  208            T5 
const & arg5, T6 
const & arg6):
 
  209            BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
 
 
  217                return BaseClass::queryInterface( rType );
 
 
  220            { BaseClass::acquire(); }
 
 
  222            { BaseClass::release(); }
 
 
  224            { 
return ImplInhHelper_getTypes( 
cd::get(), BaseClass::getTypes() ); }
 
 
  226            { 
return ImplHelper_getImplementationId( 
cd::get() ); }
 
 
 
  245    template< 
class BaseClass, 
class Ifc1, 
class Ifc2 >
 
  248        , 
public Ifc1, 
public Ifc2
 
  250        struct cd : 
public rtl::StaticAggregate< class_data, ImplClassData2 < Ifc1, Ifc2, AggImplInheritanceHelper2<BaseClass, Ifc1, Ifc2> > > {};
 
  252        template< 
typename T1 >
 
  254        template< 
typename T1, 
typename T2 >
 
  256            BaseClass(arg1, arg2) {}
 
 
  257        template< 
typename T1, 
typename T2, 
typename T3 >
 
  259            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3):
 
  260            BaseClass(arg1, arg2, arg3) {}
 
 
  261        template< 
typename T1, 
typename T2, 
typename T3, 
typename T4 >
 
  263            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4):
 
  264            BaseClass(arg1, arg2, arg3, arg4) {}
 
 
  266            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5 >
 
  268            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  270            BaseClass(arg1, arg2, arg3, arg4, arg5) {}
 
 
  272            typename T1, 
typename T2, 
typename T3, 
typename T4, 
typename T5,
 
  275            T1 
const & arg1, T2 
const & arg2, T3 
const & arg3, T4 
const & arg4,
 
  276            T5 
const & arg5, T6 
const & arg6):
 
  277            BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
 
 
  281            { 
return BaseClass::queryInterface( rType ); }
 
 
  287                return BaseClass::queryAggregation( rType );
 
 
  290            { BaseClass::acquire(); }
 
 
  292            { BaseClass::release(); }
 
 
  294            { 
return ImplInhHelper_getTypes( 
cd::get(), BaseClass::getTypes() ); }
 
 
  296            { 
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 queryInterface(),...
Definition implbase2.hxx:77
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase2.hxx:92
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase2.hxx:88
~ImplHelper2() SAL_NOEXCEPT
Definition implbase2.hxx:98
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase2.hxx:90
Implementation helper implementing interfaces css::lang::XTypeProvider and css::uno::XInterface which...
Definition implbase2.hxx:113
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 implbase2.hxx:116
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase2.hxx:124
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
decreasing m_refCount
Definition implbase2.hxx:120
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase2.hxx:122
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
increasing m_refCount
Definition implbase2.hxx:118
Implementation helper implementing interfaces css::lang::XTypeProvider and css::uno::XInterface which...
Definition implbase2.hxx:145
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase2.hxx:156
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
If a delegator is set, then the delegators gets acquired.
Definition implbase2.hxx:152
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
If a delegator is set, then the delegators gets released.
Definition implbase2.hxx:154
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase2.hxx:158
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 implbase2.hxx:148
virtual css::uno::Any queryAggregation(css::uno::Type const &rType) SAL_OVERRIDE
Called by the delegator or queryInterface.
Definition implbase2.hxx:150
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase2.hxx:219
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase2.hxx:221
ImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3)
Definition implbase2.hxx:190
ImplInheritanceHelper2()
Definition implbase2.hxx:211
ImplInheritanceHelper2(T1 const &arg1, T2 const &arg2)
Definition implbase2.hxx:187
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase2.hxx:212
ImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5, T6 const &arg6)
Definition implbase2.hxx:206
ImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4)
Definition implbase2.hxx:194
ImplInheritanceHelper2(T1 const &arg1)
Definition implbase2.hxx:185
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase2.hxx:223
ImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5)
Definition implbase2.hxx:199
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase2.hxx:225
virtual css::uno::Sequence< sal_Int8 > getImplementationId() SAL_OVERRIDE
Definition implbase2.hxx:295
virtual void release() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase2.hxx:291
AggImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4)
Definition implbase2.hxx:262
AggImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5, T6 const &arg6)
Definition implbase2.hxx:274
virtual css::uno::Any queryInterface(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase2.hxx:280
AggImplInheritanceHelper2(T1 const &arg1)
Definition implbase2.hxx:253
virtual css::uno::Any queryAggregation(css::uno::Type const &rType) SAL_OVERRIDE
Definition implbase2.hxx:282
virtual css::uno::Sequence< css::uno::Type > getTypes() SAL_OVERRIDE
Definition implbase2.hxx:293
AggImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3, T4 const &arg4, T5 const &arg5)
Definition implbase2.hxx:267
virtual void acquire() SAL_NOEXCEPT SAL_OVERRIDE
Definition implbase2.hxx:289
AggImplInheritanceHelper2()
Definition implbase2.hxx:279
AggImplInheritanceHelper2(T1 const &arg1, T2 const &arg2)
Definition implbase2.hxx:255
AggImplInheritanceHelper2(T1 const &arg1, T2 const &arg2, T3 const &arg3)
Definition implbase2.hxx:258
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