diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/static/unoembindhelpers/PrimaryBindings.hxx | 13 |
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) |