summaryrefslogtreecommitdiff
path: root/comphelper/inc/comphelper/implbase_var.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'comphelper/inc/comphelper/implbase_var.hxx')
-rw-r--r--comphelper/inc/comphelper/implbase_var.hxx48
1 files changed, 48 insertions, 0 deletions
diff --git a/comphelper/inc/comphelper/implbase_var.hxx b/comphelper/inc/comphelper/implbase_var.hxx
index 97d360f853a6..4ced6b8fce93 100644
--- a/comphelper/inc/comphelper/implbase_var.hxx
+++ b/comphelper/inc/comphelper/implbase_var.hxx
@@ -1,3 +1,4 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -395,9 +396,56 @@ public:
{ WeakComponentImplHelperBase::removeEventListener( xListener ); }
};
+template < BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER,
+ typename Ifc) >
+class SAL_NO_VTABLE BOOST_PP_CAT(PartialWeakComponentImplHelper,
+ COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
+ : public ::cppu::WeakComponentImplHelperBase,
+ public ::com::sun::star::lang::XTypeProvider,
+ BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, public Ifc)
+{
+ /// @internal
+ struct cd : public ::rtl::StaticAggregate<
+ ::cppu::class_data,
+ BOOST_PP_CAT(detail::ImplClassData,
+ COMPHELPER_IMPLBASE_INTERFACE_NUMBER)
+ <
+ BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc),
+ BOOST_PP_CAT(PartialWeakComponentImplHelper,
+ COMPHELPER_IMPLBASE_INTERFACE_NUMBER)<
+ BOOST_PP_ENUM_PARAMS(COMPHELPER_IMPLBASE_INTERFACE_NUMBER, Ifc)>
+ > > {};
+
+public:
+ BOOST_PP_CAT(PartialWeakComponentImplHelper, COMPHELPER_IMPLBASE_INTERFACE_NUMBER)(
+ ::osl::Mutex & rMutex ) : WeakComponentImplHelperBase(rMutex) {}
+
+ virtual ::com::sun::star::uno::Any
+ SAL_CALL queryInterface( ::com::sun::star::uno::Type const& rType )
+ throw (::com::sun::star::uno::RuntimeException)
+ {
+ return ::cppu::WeakComponentImplHelper_query(
+ rType, cd::get(), this,
+ static_cast< ::cppu::WeakComponentImplHelperBase * >(this) );
+ }
+ virtual void SAL_CALL acquire() throw ()
+ { WeakComponentImplHelperBase::acquire(); }
+ virtual void SAL_CALL release() throw ()
+ { WeakComponentImplHelperBase::release(); }
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type >
+ SAL_CALL getTypes() throw (::com::sun::star::uno::RuntimeException)
+ { return ::cppu::WeakComponentImplHelper_getTypes( cd::get() ); }
+ virtual ::com::sun::star::uno::Sequence<sal_Int8>
+ SAL_CALL getImplementationId()
+ throw (::com::sun::star::uno::RuntimeException)
+ { return ::cppu::ImplHelper_getImplementationId( cd::get() ); }
+};
+
+
} // namespace comphelper
// undef for multiple use/inclusion of this header:
#undef COMPHELPER_IMPLBASE_MAX_CTOR_ARGS
#undef COMPHELPER_IMPLBASE_INTERFACE_NUMBER
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */