Kaydet (Commit) 8ad48d88 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Variadic cppu::ImplInheritanceHelper

Change-Id: I7d958fdf328e44a0d299b29a3a165425731ccf7c
üst 7a091b24
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include <svtools/transfer.hxx> #include <svtools/transfer.hxx>
#include <osl/mutex.hxx> #include <osl/mutex.hxx>
#include <osl/thread.hxx> #include <osl/thread.hxx>
#include <cppuhelper/implbase9.hxx> #include <cppuhelper/implbase.hxx>
#include <svtools/cliplistener.hxx> #include <svtools/cliplistener.hxx>
struct FmFoundRecordInformation; struct FmFoundRecordInformation;
...@@ -57,7 +57,7 @@ namespace dbtools ...@@ -57,7 +57,7 @@ namespace dbtools
namespace dbaui namespace dbaui
{ {
typedef ::cppu::ImplInheritanceHelper9 < OGenericUnoController typedef ::cppu::ImplInheritanceHelper < OGenericUnoController
, ::com::sun::star::sdb::XSQLErrorListener , ::com::sun::star::sdb::XSQLErrorListener
, ::com::sun::star::form::XDatabaseParameterListener , ::com::sun::star::form::XDatabaseParameterListener
, ::com::sun::star::form::XConfirmDeleteListener , ::com::sun::star::form::XConfirmDeleteListener
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <cstddef> #include <cstddef>
#include <exception> #include <exception>
#include <utility>
#include <com/sun/star/lang/XTypeProvider.hpp> #include <com/sun/star/lang/XTypeProvider.hpp>
#include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Any.hxx>
...@@ -89,6 +90,11 @@ class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakImplHelper: ...@@ -89,6 +90,11 @@ class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakImplHelper:
class_data, detail::ImplClassData<WeakImplHelper, Ifc...>> class_data, detail::ImplClassData<WeakImplHelper, Ifc...>>
{}; {};
protected:
WeakImplHelper() {}
virtual ~WeakImplHelper() {}
public: public:
css::uno::Any SAL_CALL queryInterface(css::uno::Type const & aType) css::uno::Any SAL_CALL queryInterface(css::uno::Type const & aType)
throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
...@@ -107,6 +113,43 @@ public: ...@@ -107,6 +113,43 @@ public:
{ return css::uno::Sequence<sal_Int8>(); } { return css::uno::Sequence<sal_Int8>(); }
}; };
template<typename BaseClass, typename... Ifc>
class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE ImplInheritanceHelper:
public BaseClass, public Ifc...
{
struct cd:
rtl::StaticAggregate<
class_data, detail::ImplClassData<ImplInheritanceHelper, Ifc...>>
{};
protected:
template<typename... Arg> ImplInheritanceHelper(Arg &&... arg):
BaseClass(std::forward<Arg>(arg)...)
{}
virtual ~ImplInheritanceHelper() {}
public:
css::uno::Any SAL_CALL queryInterface(css::uno::Type const & aType)
throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
{
css::uno::Any ret(ImplHelper_queryNoXInterface(aType, cd::get(), this));
return ret.hasValue() ? ret : BaseClass::queryInterface(aType);
}
void SAL_CALL acquire() throw () SAL_OVERRIDE { BaseClass::acquire(); }
void SAL_CALL release() throw () SAL_OVERRIDE { BaseClass::release(); }
css::uno::Sequence<css::uno::Type> SAL_CALL getTypes()
throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
{ return ImplInhHelper_getTypes(cd::get(), BaseClass::getTypes()); }
css::uno::Sequence<sal_Int8> SAL_CALL getImplementationId()
throw (css::uno::RuntimeException, std::exception) SAL_OVERRIDE
{ return css::uno::Sequence<sal_Int8>(); }
};
} }
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment