LibreOffice Module bridges (master) 1
Public Member Functions | Public Attributes | List of all members
jni_uno::Bridge Struct Reference

#include <jni_bridge.h>

Collaboration diagram for jni_uno::Bridge:
[legend]

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_Environmentm_java_env
 
Mapping m_java2uno
 
Mapping m_uno2java
 
bool m_registered_java2uno
 

Detailed Description

Definition at line 50 of file jni_bridge.h.

Constructor & Destructor Documentation

◆ ~Bridge()

jni_uno::Bridge::~Bridge ( )

Definition at line 264 of file jni_bridge.cxx.

References m_java_env, and m_uno_env.

◆ Bridge()

jni_uno::Bridge::Bridge ( uno_Environment java_env,
uno_ExtEnvironment *  uno_env,
bool  registered_java2uno 
)
explicit

Member Function Documentation

◆ acquire()

void jni_uno::Bridge::acquire ( ) const

◆ call_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

◆ call_uno()

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

◆ getJniInfo()

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().

◆ handle_java_exc()

void jni_uno::Bridge::handle_java_exc ( JNI_context const &  jni,
JLocalAutoRef const &  jo_exc,
uno_Any uno_exc 
) const

◆ handle_uno_exc()

void jni_uno::Bridge::handle_uno_exc ( JNI_context const &  jni,
uno_Any uno_exc 
) const

◆ map_to_java() [1/2]

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().

◆ map_to_java() [2/2]

jobject jni_uno::Bridge::map_to_java ( JNI_context const &  jni,
uno_Interface *  pUnoI,
JNI_interface_type_info const *  info 
) const

◆ map_to_uno() [1/2]

uno_Interface * jni_uno::Bridge::map_to_uno ( JNI_context const &  jni,
jobject  javaI,
JNI_interface_type_info const *  info 
) const

◆ map_to_uno() [2/2]

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

◆ release()

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().

Member Data Documentation

◆ m_java2uno

Mapping jni_uno::Bridge::m_java2uno

Definition at line 57 of file jni_bridge.h.

Referenced by acquire(), Bridge(), and release().

◆ m_java_env

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().

◆ m_ref

std::atomic<std::size_t> jni_uno::Bridge::m_ref
mutable

Definition at line 52 of file jni_bridge.h.

Referenced by acquire(), and release().

◆ m_registered_java2uno

bool jni_uno::Bridge::m_registered_java2uno

Definition at line 59 of file jni_bridge.h.

Referenced by acquire(), and release().

◆ m_uno2java

Mapping jni_uno::Bridge::m_uno2java

Definition at line 58 of file jni_bridge.h.

Referenced by acquire(), Bridge(), and release().

◆ m_uno_env

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().


The documentation for this struct was generated from the following files: