summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/static/unoembindhelpers/PrimaryBindings.hxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/static/unoembindhelpers/PrimaryBindings.hxx b/include/static/unoembindhelpers/PrimaryBindings.hxx
index 80b55d5278ac..13ddd05cce26 100644
--- a/include/static/unoembindhelpers/PrimaryBindings.hxx
+++ b/include/static/unoembindhelpers/PrimaryBindings.hxx
@@ -14,11 +14,14 @@
#include <cstdint>
#include <limits>
#include <stdexcept>
+#include <typeinfo>
#include <emscripten/bind.h>
#include <com/sun/star/uno/Reference.hxx>
#include <com/sun/star/uno/Sequence.hxx>
+#include <com/sun/star/uno/Type.hxx>
+#include <cppu/unotype.hxx>
#include <sal/types.h>
template <typename T> struct emscripten::smart_ptr_trait<css::uno::Reference<T>>
@@ -33,6 +36,11 @@ template <typename T> struct emscripten::smart_ptr_trait<css::uno::Reference<T>>
namespace unoembindhelpers
{
+namespace detail
+{
+void registerUnoType(css::uno::Type const& type, std::type_info const* id);
+}
+
enum class uno_Reference
{
FromAny
@@ -76,6 +84,11 @@ void checkSequenceAccess(css::uno::Sequence<T> const& sequence, sal_Int32 index)
}
}
+template <typename T> void registerUnoType()
+{
+ detail::registerUnoType(cppu::UnoType<T>::get(), &typeid(T));
+}
+
template <typename T> void registerSequence(char const* name)
{
emscripten::class_<css::uno::Sequence<T>>(name)