LibreOffice Module bridges (master) 1
|
#include <jni_bridge.h>
Public Member Functions | |
~Bridge () | |
Bridge (uno_Environment *java_env, uno_ExtEnvironment *uno_env, bool registered_java2uno) | |
void | acquire () const |
void | release () const |
void | map_to_uno (JNI_context const &jni, void *uno_data, jvalue java_data, typelib_TypeDescriptionReference *type, JNI_type_info const *info, bool assign, bool out_param, bool special_wrapped_integral_types=false) const |
void | map_to_java (JNI_context const &jni, jvalue *java_data, void const *uno_data, typelib_TypeDescriptionReference *type, JNI_type_info const *info, bool in_param, bool out_param, bool special_wrapped_integral_types=false) const |
void | handle_uno_exc (JNI_context const &jni, uno_Any *uno_exc) const |
void | call_java (jobject javaI, typelib_InterfaceTypeDescription *iface_td, sal_Int32 local_member_index, sal_Int32 function_pos_offset, typelib_TypeDescriptionReference *return_type, typelib_MethodParameter *params, sal_Int32 nParams, void *uno_ret, void *uno_args[], uno_Any **uno_exc) const |
jobject | map_to_java (JNI_context const &jni, uno_Interface *pUnoI, JNI_interface_type_info const *info) const |
void | handle_java_exc (JNI_context const &jni, JLocalAutoRef const &jo_exc, uno_Any *uno_exc) const |
jobject | call_uno (JNI_context const &jni, uno_Interface *pUnoI, typelib_TypeDescription *member_td, typelib_TypeDescriptionReference *return_tdref, sal_Int32 nParams, typelib_MethodParameter const *pParams, jobjectArray jo_args) const |
uno_Interface * | map_to_uno (JNI_context const &jni, jobject javaI, JNI_interface_type_info const *info) const |
JNI_info const * | getJniInfo () const |
Public Attributes | |
std::atomic< std::size_t > | m_ref |
uno_ExtEnvironment * | m_uno_env |
uno_Environment * | m_java_env |
Mapping | m_java2uno |
Mapping | m_uno2java |
bool | m_registered_java2uno |
Definition at line 50 of file jni_bridge.h.
jni_uno::Bridge::~Bridge | ( | ) |
Definition at line 264 of file jni_bridge.cxx.
References m_java_env, and m_uno_env.
|
explicit |
Definition at line 229 of file jni_bridge.cxx.
References jni_uno::Mapping::m_bridge, m_java2uno, m_java_env, m_uno2java, m_uno_env, Mapping_acquire(), and Mapping_release().
void jni_uno::Bridge::acquire | ( | ) | const |
Definition at line 195 of file jni_bridge.cxx.
References Bridge_free(), m_java2uno, m_java_env, m_ref, m_registered_java2uno, m_uno2java, m_uno_env, and uno_registerMapping().
Referenced by map_to_java().
void jni_uno::Bridge::call_java | ( | jobject | javaI, |
typelib_InterfaceTypeDescription * | iface_td, | ||
sal_Int32 | local_member_index, | ||
sal_Int32 | function_pos_offset, | ||
typelib_TypeDescriptionReference * | return_type, | ||
typelib_MethodParameter * | params, | ||
sal_Int32 | nParams, | ||
void * | uno_ret, | ||
void * | uno_args[], | ||
uno_Any ** | uno_exc | ||
) | const |
Definition at line 126 of file jni_uno2java.cxx.
References jni_uno::JNI_context::ensure_no_exception(), jni_uno::JLocalAutoRef::get(), jni_uno::JNI_context::get_stack_trace(), jni_uno::JNI_info::get_type_info(), getJniInfo(), handle_java_exc(), i, jni_uno::jstring_to_oustring(), jni_uno::JNI_type_info::m_class, m_java_env, jni_uno::JNI_interface_type_info::m_methods, jni_uno::JniUnoEnvironmentData::machine, map_to_java(), map_to_uno(), n, nPos, p, jni_uno::JLocalAutoRef::reset(), SAL_INFO, SAL_WARN_IF, and uno_type_destructData().
jobject jni_uno::Bridge::call_uno | ( | JNI_context const & | jni, |
uno_Interface * | pUnoI, | ||
typelib_TypeDescription * | member_td, | ||
typelib_TypeDescriptionReference * | return_tdref, | ||
sal_Int32 | nParams, | ||
typelib_MethodParameter const * | pParams, | ||
jobjectArray | jo_args | ||
) | const |
Definition at line 159 of file jni_java2uno.cxx.
References jni_uno::JNI_context::ensure_no_exception(), jni_uno::JLocalAutoRef::get(), jni_uno::TypeDescr::get(), get(), handle_uno_exc(), map_to_java(), map_to_uno(), n, nPos, p, type, and uno_type_destructData().
JNI_info const * jni_uno::Bridge::getJniInfo | ( | ) | const |
Definition at line 270 of file jni_bridge.cxx.
References m_java_env.
Referenced by call_java(), handle_java_exc(), handle_uno_exc(), map_to_java(), and map_to_uno().
void jni_uno::Bridge::handle_java_exc | ( | JNI_context const & | jni, |
JLocalAutoRef const & | jo_exc, | ||
uno_Any * | uno_exc | ||
) | const |
Definition at line 67 of file jni_uno2java.cxx.
References jni_uno::rtl_mem::allocate(), jni_uno::JNI_context::ensure_no_exception(), jni_uno::JLocalAutoRef::get(), jni_uno::JNI_context::get_stack_trace(), getJniInfo(), jni_uno::JLocalAutoRef::is(), jni_uno::jstring_to_oustring(), map_to_uno(), SAL_INFO, and typelib_typedescriptionreference_acquire().
Referenced by call_java().
void jni_uno::Bridge::handle_uno_exc | ( | JNI_context const & | jni, |
uno_Any * | uno_exc | ||
) | const |
Definition at line 91 of file jni_java2uno.cxx.
References jni_uno::JNI_context::ensure_no_exception(), jni_uno::JLocalAutoRef::get(), jni_uno::JNI_context::get_stack_trace(), getJniInfo(), jni_uno::jstring_to_oustring(), map_to_java(), SAL_INFO, and uno_any_destruct().
Referenced by call_uno().
void jni_uno::Bridge::map_to_java | ( | JNI_context const & | jni, |
jvalue * | java_data, | ||
void const * | uno_data, | ||
typelib_TypeDescriptionReference * | type, | ||
JNI_type_info const * | info, | ||
bool | in_param, | ||
bool | out_param, | ||
bool | special_wrapped_integral_types = false |
||
) | const |
Definition at line 1155 of file jni_data.cxx.
References jni_uno::JNI_info::append_sig(), args, jni_uno::create_type(), jni_uno::JNI_context::ensure_no_exception(), jni_uno::find_class(), jni_uno::JLocalAutoRef::get(), jni_uno::TypeDescr::get(), jni_uno::JNI_context::get_stack_trace(), jni_uno::JNI_info::get_type_info(), getJniInfo(), jni_uno::is_XInterface(), jni_uno::JNI_type_info::m_class, jni_uno::JNI_info::m_class_Boolean, jni_uno::JNI_info::m_class_Byte, jni_uno::JNI_info::m_class_Character, jni_uno::JNI_info::m_class_Double, jni_uno::JNI_info::m_class_Float, jni_uno::JNI_info::m_class_Integer, jni_uno::JNI_info::m_class_Long, jni_uno::JNI_info::m_class_Short, jni_uno::JNI_info::m_class_String, jni_uno::JNI_info::m_ctor_Boolean_with_boolean, jni_uno::JNI_info::m_ctor_Byte_with_byte, jni_uno::JNI_info::m_ctor_Character_with_char, jni_uno::JNI_info::m_ctor_Double_with_double, jni_uno::JNI_info::m_ctor_Float_with_float, jni_uno::JNI_info::m_ctor_Integer_with_int, jni_uno::JNI_info::m_ctor_Long_with_long, jni_uno::JNI_info::m_ctor_Short_with_short, jni_uno::JNI_compound_type_info::m_exc_ctor, jni_uno::JNI_info::m_object_Type_UNSIGNED_HYPER, jni_uno::JNI_info::m_object_Type_UNSIGNED_LONG, jni_uno::JNI_info::m_object_Type_UNSIGNED_SHORT, jni_uno::JNI_type_info::m_td, jni_uno::JNI_interface_type_info::m_type, map_to_java(), name, nElements, nPos, OUStringToOString(), p, jni_uno::JLocalAutoRef::release(), jni_uno::JLocalAutoRef::reset(), type, typelib_typedescriptionreference_assign(), and jni_uno::ustring_to_jstring().
Referenced by call_java(), call_uno(), handle_uno_exc(), and map_to_java().
jobject jni_uno::Bridge::map_to_java | ( | JNI_context const & | jni, |
uno_Interface * | pUnoI, | ||
JNI_interface_type_info const * | info | ||
) | const |
Definition at line 35 of file jni_java2uno.cxx.
References acquire(), args, jni_uno::JNI_context::ensure_no_exception(), jni_uno::JLocalAutoRef::get(), getJniInfo(), m_java_env, jni_uno::JNI_info::m_object_java_env, jni_uno::JNI_interface_type_info::m_proxy_ctor, jni_uno::JNI_type_info::m_td, jni_uno::JNI_interface_type_info::m_type, m_uno_env, typelib_typedescription_acquire(), and jni_uno::ustring_to_jstring().
uno_Interface * jni_uno::Bridge::map_to_uno | ( | JNI_context const & | jni, |
jobject | javaI, | ||
JNI_interface_type_info const * | info | ||
) | const |
Definition at line 471 of file jni_uno2java.cxx.
References jni_uno::compute_oid(), jni_uno::JLocalAutoRef::get(), jni_uno::jstring_to_oustring(), and jni_uno::JNI_type_info::m_td.
void jni_uno::Bridge::map_to_uno | ( | JNI_context const & | jni, |
void * | uno_data, | ||
jvalue | java_data, | ||
typelib_TypeDescriptionReference * | type, | ||
JNI_type_info const * | info, | ||
bool | assign, | ||
bool | out_param, | ||
bool | special_wrapped_integral_types = false |
||
) | const |
Definition at line 211 of file jni_data.cxx.
References jni_uno::rtl_mem::allocate(), assign(), jni_uno::create_type(), jni_uno::JNI_context::ensure_no_exception(), jni_uno::JLocalAutoRef::get(), jni_uno::TypeDescr::get(), jni_uno::JNI_context::get_stack_trace(), jni_uno::JNI_info::get_type_info(), getJniInfo(), jni_uno::JLocalAutoRef::is(), jni_uno::jstring_to_oustring(), jni_uno::jstring_to_ustring(), jni_uno::JNI_compound_type_info::m_base, jni_uno::JNI_info::m_field_Enum_m_value, jni_uno::JNI_compound_type_info::m_fields, jni_uno::JNI_info::m_method_Boolean_booleanValue, jni_uno::JNI_info::m_method_Byte_byteValue, jni_uno::JNI_info::m_method_Character_charValue, jni_uno::JNI_info::m_method_Double_doubleValue, jni_uno::JNI_info::m_method_Float_floatValue, jni_uno::JNI_info::m_method_Integer_intValue, jni_uno::JNI_info::m_method_Long_longValue, jni_uno::JNI_info::m_method_Short_shortValue, jni_uno::JNI_type_info::m_td, map_to_uno(), nElements, nPos, p, jni_uno::JLocalAutoRef::reset(), jni_uno::seq_allocate(), type, jni_uno::type_equals(), typelib_typedescriptionreference_acquire(), typelib_typedescriptionreference_release(), uno_any_construct(), uno_any_destruct(), uno_destructData(), and uno_type_destructData().
Referenced by call_java(), call_uno(), handle_java_exc(), and map_to_uno().
void jni_uno::Bridge::release | ( | ) | const |
Definition at line 217 of file jni_bridge.cxx.
References m_java2uno, m_ref, m_registered_java2uno, m_uno2java, and uno_revokeMapping().
Mapping jni_uno::Bridge::m_java2uno |
Definition at line 57 of file jni_bridge.h.
uno_Environment* jni_uno::Bridge::m_java_env |
Definition at line 55 of file jni_bridge.h.
Referenced by acquire(), Bridge(), call_java(), getJniInfo(), map_to_java(), and ~Bridge().
|
mutable |
Definition at line 52 of file jni_bridge.h.
bool jni_uno::Bridge::m_registered_java2uno |
Definition at line 59 of file jni_bridge.h.
Mapping jni_uno::Bridge::m_uno2java |
Definition at line 58 of file jni_bridge.h.
uno_ExtEnvironment* jni_uno::Bridge::m_uno_env |
Definition at line 54 of file jni_bridge.h.
Referenced by acquire(), Bridge(), map_to_java(), and ~Bridge().