20#ifndef INCLUDED_CLI_URE_SOURCE_UNO_BRIDGE_CLI_BRIDGE_H
21#define INCLUDED_CLI_URE_SOURCE_UNO_BRIDGE_CLI_BRIDGE_H
23#include "osl/interlck.h"
24#include "uno/mapping.h"
25#include "uno/environment.h"
26#include "uno/dispatcher.h"
30#using <cli_basetypes.dll>
33namespace sr = System::Reflection;
59 mutable oslInterlockedCount
m_ref;
74 void * uno_data, System::Object^ cli_data,
75 typelib_TypeDescriptionReference * type,
83 System::Object^ *cli_data,
void const * uno_data,
84 typelib_TypeDescriptionReference * type, System::Type^ info ,
85 bool bDontCreateObj)
const;
87 System::Object^
map_uno2cli(uno_Interface * pUnoI, typelib_InterfaceTypeDescription* pTD)
const;
89 System::Object^
call_uno(uno_Interface * pUnoI,
91 typelib_TypeDescriptionReference * return_type,
92 sal_Int32 nParams, typelib_MethodParameter
const * pParams,
93 array<System::Object^>^ args, array<System::Type^>^ argTypes,
94 System::Object^* pException)
const;
98 System::Object^ cliI, sr::MethodInfo^ method,
99 typelib_TypeDescriptionReference * return_type,
100 typelib_MethodParameter * params,
int nParams,
101 void * uno_ret,
void * uno_args [],
uno_Any ** uno_exc )
const;
struct _uno_Environment uno_Environment
struct _uno_Mapping uno_Mapping
struct _typelib_TypeDescription typelib_TypeDescription
An instance of Bridge represents exactly one mapping therefore either m_cli2uno or m_uno2cli is valid...
System::Object map_uno2cli(uno_Interface *pUnoI, typelib_InterfaceTypeDescription *pTD) const
System::Object call_uno(uno_Interface *pUnoI, typelib_TypeDescription *member_td, typelib_TypeDescriptionReference *return_type, sal_Int32 nParams, typelib_MethodParameter const *pParams, array< System::Object^>^ args, array< System::Type^>^ argTypes, System::Object^ *pException) const
oslInterlockedCount m_ref
uno_Environment * m_uno_cli_env
Bridge(uno_Environment *java_env, uno_ExtEnvironment *uno_env, bool registered_java2uno)
void map_to_uno(void *uno_data, System::Object^ cli_data, typelib_TypeDescriptionReference *type, bool assign) const
void call_cli(System::Object^ cliI, sr::MethodInfo^ method, typelib_TypeDescriptionReference *return_type, typelib_MethodParameter *params, int nParams, void *uno_ret, void *uno_args[], uno_Any **uno_exc) const
uno_ExtEnvironment * m_uno_env
uno_Interface * map_cli2uno(System::Object^ cliI, typelib_TypeDescription *pTD) const
void map_to_cli(System::Object^ *cli_data, void const *uno_data, typelib_TypeDescriptionReference *type, System::Type^ info, bool bDontCreateObj) const
void acquire() const
ToDo I doubt that the case that the ref count raises from 0 to 1 can occur.
bool m_registered_cli2uno
static Cli_environment g_cli_env