20#include <osl/mutex.hxx>
21#include <osl/thread.h>
22#include <osl/thread.hxx>
35 oslThreadIdentifier m_threadId;
37 virtual ~UnsafeBridge()
override;
40 explicit UnsafeBridge();
42 virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam)
override;
43 virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list * pParam)
override;
45 virtual void v_enter()
override;
46 virtual void v_leave()
override;
48 virtual bool v_isValid(OUString * pReason)
override;
53UnsafeBridge::UnsafeBridge()
57 SAL_INFO(
"cppu.unsafebridge",
"LIFE: UnsafeBridge::UnsafeBridge(uno_Environment * pEnv) -> " <<
this);
60UnsafeBridge::~UnsafeBridge()
62 SAL_INFO(
"cppu.unsafebridge",
"LIFE: UnsafeBridge::~UnsafeBridge() -> " <<
this);
64 SAL_WARN_IF(m_count < 0,
"cppu.unsafebridge",
"m_count is less than 0");
67void UnsafeBridge::v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam)
74void UnsafeBridge::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam)
76 SAL_WARN_IF(m_count <= 0,
"cppu.unsafebridge",
"m_count is less than or equal to 0");
83 m_threadId = osl::Thread::getCurrentIdentifier();
86void UnsafeBridge::v_enter()
90 SAL_WARN_IF(m_count < 0,
"cppu.unsafebridge",
"m_count is less than 0");
93 m_threadId = osl::Thread::getCurrentIdentifier();
98void UnsafeBridge::v_leave()
100 SAL_WARN_IF(m_count <= 0,
"cppu.unsafebridge",
"m_count is less than or equal to 0");
110bool UnsafeBridge::v_isValid(OUString * pReason)
115 *pReason =
"not entered";
119 result = m_threadId == osl::Thread::getCurrentIdentifier();
122 *pReason =
"wrong thread";
void SAL_DLLPUBLIC_EXPORT uno_ext_getMapping(uno_Mapping **ppMapping, uno_Environment *pFrom, uno_Environment *pTo)
void SAL_DLLPUBLIC_EXPORT uno_initEnvironment(uno_Environment *pEnv) SAL_THROW_EXTERN_C()
C++ wrapper for binary C Enterable (http://wiki.openoffice.org/wiki/Uno/Cpp/Spec/Environment_Stack)
virtual bool v_isValid(rtl::OUString *pReason)=0
virtual void v_callOut_v(uno_EnvCallee *pCallee, va_list *pParam)=0
virtual void v_callInto_v(uno_EnvCallee *pCallee, va_list *pParam)=0
struct _uno_Environment uno_Environment
#define SAL_WARN_IF(condition, area, stream)
#define SAL_INFO(area, stream)
struct _uno_Mapping uno_Mapping
void Environment_initWithEnterable(uno_Environment *pEnvironment, cppu::Enterable *pEnterable)
C++ helper for implementing Purpose Environments.
void createMapping(uno_Mapping **ppMapping, uno_Environment *pFrom, uno_Environment *pTo, ProbeFun *probeFun, void *pContext)
#define SAL_THROW_EXTERN_C()