C bridge test; method param name correction
This commit is contained in:
@@ -2,9 +2,9 @@
|
|||||||
*
|
*
|
||||||
* $RCSfile: lbnames.h,v $
|
* $RCSfile: lbnames.h,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.1.1.1 $
|
* $Revision: 1.2 $
|
||||||
*
|
*
|
||||||
* last change: $Author: hr $ $Date: 2000-09-18 15:25:51 $
|
* last change: $Author: dbo $ $Date: 2001-04-12 13:39:23 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
@@ -65,6 +65,10 @@
|
|||||||
*/
|
*/
|
||||||
#define UNO_LB_JAVA_NAMESPACE java
|
#define UNO_LB_JAVA_NAMESPACE java
|
||||||
#define UNO_LB_JAVA "java"
|
#define UNO_LB_JAVA "java"
|
||||||
|
/** ANSI C compilers<br>
|
||||||
|
*/
|
||||||
|
#define UNO_LB_C_NAMESPACE c_uno
|
||||||
|
#define UNO_LB_C "c"
|
||||||
/** Miscrosoft VC++ 4.2 - 6.0 compiler; RTTI is not supported<br>
|
/** Miscrosoft VC++ 4.2 - 6.0 compiler; RTTI is not supported<br>
|
||||||
*/
|
*/
|
||||||
#define UNO_LB_MSCI_NAMESPACE msci
|
#define UNO_LB_MSCI_NAMESPACE msci
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
*
|
*
|
||||||
* $RCSfile: static_types.cxx,v $
|
* $RCSfile: static_types.cxx,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.7 $
|
* $Revision: 1.8 $
|
||||||
*
|
*
|
||||||
* last change: $Author: jsc $ $Date: 2001-03-30 13:39:19 $
|
* last change: $Author: dbo $ $Date: 2001-04-12 13:39:23 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
@@ -278,12 +278,12 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
|
|||||||
|
|
||||||
typelib_CompoundMember_Init aMembers[2];
|
typelib_CompoundMember_Init aMembers[2];
|
||||||
OUString sMemberType0( RTL_CONSTASCII_USTRINGPARAM("string") );
|
OUString sMemberType0( RTL_CONSTASCII_USTRINGPARAM("string") );
|
||||||
OUString sMemberName0( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.Exception::Message") );
|
OUString sMemberName0( RTL_CONSTASCII_USTRINGPARAM("Message") );
|
||||||
aMembers[0].eTypeClass = typelib_TypeClass_STRING;
|
aMembers[0].eTypeClass = typelib_TypeClass_STRING;
|
||||||
aMembers[0].pTypeName = sMemberType0.pData;
|
aMembers[0].pTypeName = sMemberType0.pData;
|
||||||
aMembers[0].pMemberName = sMemberName0.pData;
|
aMembers[0].pMemberName = sMemberName0.pData;
|
||||||
OUString sMemberType1( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface") );
|
OUString sMemberType1( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface") );
|
||||||
OUString sMemberName1( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.Exception::Context") );
|
OUString sMemberName1( RTL_CONSTASCII_USTRINGPARAM("Context") );
|
||||||
aMembers[1].eTypeClass = typelib_TypeClass_INTERFACE;
|
aMembers[1].eTypeClass = typelib_TypeClass_INTERFACE;
|
||||||
aMembers[1].pTypeName = sMemberType1.pData;
|
aMembers[1].pTypeName = sMemberType1.pData;
|
||||||
aMembers[1].pMemberName = sMemberName1.pData;
|
aMembers[1].pMemberName = sMemberName1.pData;
|
||||||
@@ -307,7 +307,7 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
|
|||||||
// XInterface members
|
// XInterface members
|
||||||
typelib_InterfaceMethodTypeDescription * pMethod = 0;
|
typelib_InterfaceMethodTypeDescription * pMethod = 0;
|
||||||
typelib_Parameter_Init aParameters[1];
|
typelib_Parameter_Init aParameters[1];
|
||||||
OUString sParamName0( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::aType") );
|
OUString sParamName0( RTL_CONSTASCII_USTRINGPARAM("aType") );
|
||||||
OUString sParamType0( RTL_CONSTASCII_USTRINGPARAM("type") );
|
OUString sParamType0( RTL_CONSTASCII_USTRINGPARAM("type") );
|
||||||
aParameters[0].pParamName = sParamName0.pData;
|
aParameters[0].pParamName = sParamName0.pData;
|
||||||
aParameters[0].eTypeClass = typelib_TypeClass_TYPE;
|
aParameters[0].eTypeClass = typelib_TypeClass_TYPE;
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
*
|
*
|
||||||
* $RCSfile: lbmap.cxx,v $
|
* $RCSfile: lbmap.cxx,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.15 $
|
* $Revision: 1.16 $
|
||||||
*
|
*
|
||||||
* last change: $Author: dbo $ $Date: 2001-03-28 10:46:10 $
|
* last change: $Author: dbo $ $Date: 2001-04-12 13:39:23 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
@@ -472,8 +472,11 @@ static Mapping getMediateMapping(
|
|||||||
Environment aUno;
|
Environment aUno;
|
||||||
Mapping aUno2To;
|
Mapping aUno2To;
|
||||||
|
|
||||||
|
// backwards: from dest to source of mapping chain
|
||||||
|
|
||||||
// connect to uno
|
// connect to uno
|
||||||
if (rTo.getTypeName().equalsAsciiL( RTL_CONSTASCII_STRINGPARAM(UNO_LB_UNO ) )) // to is uno
|
OUString aUnoEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) );
|
||||||
|
if (rTo.getTypeName() == aUnoEnvTypeName) // to is uno
|
||||||
{
|
{
|
||||||
aUno = rTo;
|
aUno = rTo;
|
||||||
// no Uno2To mapping necessary
|
// no Uno2To mapping necessary
|
||||||
@@ -481,11 +484,12 @@ static Mapping getMediateMapping(
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// get registered uno env
|
// get registered uno env
|
||||||
OUString aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) );
|
::uno_getEnvironment( (uno_Environment **)&aUno, aUnoEnvTypeName.pData, 0 );
|
||||||
uno_getEnvironment( (uno_Environment **)&aUno, aEnvTypeName.pData, 0 );
|
|
||||||
|
|
||||||
aUno2To = getDirectMapping( aUno, rTo );
|
aUno2To = getDirectMapping( aUno, rTo );
|
||||||
// : uno <-> to
|
// : uno <-> to
|
||||||
|
if (! aUno2To.is())
|
||||||
|
return Mapping();
|
||||||
}
|
}
|
||||||
|
|
||||||
// connect to uno
|
// connect to uno
|
||||||
@@ -493,8 +497,7 @@ static Mapping getMediateMapping(
|
|||||||
{
|
{
|
||||||
// create anonymous uno env
|
// create anonymous uno env
|
||||||
Environment aAnUno;
|
Environment aAnUno;
|
||||||
OUString aEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) );
|
::uno_createEnvironment( (uno_Environment **)&aAnUno, aUnoEnvTypeName.pData, 0 );
|
||||||
uno_createEnvironment( (uno_Environment **)&aAnUno, aEnvTypeName.pData, 0 );
|
|
||||||
|
|
||||||
Mapping aAnUno2Uno( getDirectMapping( aAnUno, aUno, rAddPurpose ) );
|
Mapping aAnUno2Uno( getDirectMapping( aAnUno, aUno, rAddPurpose ) );
|
||||||
if (! aAnUno2Uno.is())
|
if (! aAnUno2Uno.is())
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
#
|
#
|
||||||
# $RCSfile: makefile.mk,v $
|
# $RCSfile: makefile.mk,v $
|
||||||
#
|
#
|
||||||
# $Revision: 1.15 $
|
# $Revision: 1.16 $
|
||||||
#
|
#
|
||||||
# last change: $Author: dbo $ $Date: 2001-03-21 11:35:34 $
|
# last change: $Author: dbo $ $Date: 2001-04-12 13:39:24 $
|
||||||
#
|
#
|
||||||
# The Contents of this file are made available subject to the terms of
|
# The Contents of this file are made available subject to the terms of
|
||||||
# either of the following licenses
|
# either of the following licenses
|
||||||
@@ -90,7 +90,7 @@ OBJFILES= \
|
|||||||
APP1TARGET= testcppu
|
APP1TARGET= testcppu
|
||||||
APP1OBJS= \
|
APP1OBJS= \
|
||||||
$(OBJ)$/testcppu.obj \
|
$(OBJ)$/testcppu.obj \
|
||||||
$(OBJ)$/test_di.obj
|
$(OBJ)$/test_di.obj
|
||||||
# $(OBJ)$/test_sec.obj
|
# $(OBJ)$/test_sec.obj
|
||||||
|
|
||||||
APP1STDLIBS+= \
|
APP1STDLIBS+= \
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
*
|
*
|
||||||
* $RCSfile: test_di.cxx,v $
|
* $RCSfile: test_di.cxx,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.5 $
|
* $Revision: 1.6 $
|
||||||
*
|
*
|
||||||
* last change: $Author: jl $ $Date: 2001-03-27 13:55:46 $
|
* last change: $Author: dbo $ $Date: 2001-04-12 13:39:24 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
@@ -590,50 +590,118 @@ sal_Bool raiseException( const Reference< XLanguageBindingTest > & xLBT )
|
|||||||
}
|
}
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
void test_di(void)
|
static bool perform_test( Reference< XInterface > const & xObj, Reference< XInterface > const & xDummy )
|
||||||
{
|
{
|
||||||
|
Reference< XLanguageBindingTest > xLBT( xObj, UNO_QUERY );
|
||||||
|
if (xLBT.is() && performTest( xLBT, xDummy ))
|
||||||
|
{
|
||||||
|
if (raiseException( xLBT ))
|
||||||
|
{
|
||||||
|
::fprintf( stderr, "> dynamic invocation test succeeded!\n" );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
::fprintf( stderr, "> exception test failed!\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
::fprintf( stderr, "> dynamic invocation test failed!\n" );
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
void test_Cpp(void)
|
||||||
|
{
|
||||||
|
// C++-UNO test
|
||||||
|
{
|
||||||
TestDummy * p = new TestDummy();
|
TestDummy * p = new TestDummy();
|
||||||
Reference< XInterface > xDummy( *p );
|
Reference< XInterface > xDummy( *p );
|
||||||
{
|
{
|
||||||
Test_Impl * p = new Test_Impl();
|
Test_Impl * p = new Test_Impl();
|
||||||
Reference< XInterface > x( *p );
|
Reference< XInterface > xOriginal( *p );
|
||||||
{
|
{
|
||||||
Reference<XLanguageBindingTest > xOriginal( x, UNO_QUERY );
|
Reference< XInterface > xMapped;
|
||||||
Reference<XLanguageBindingTest > xLBT;
|
|
||||||
|
|
||||||
uno_Environment * pCppEnv1 = 0;
|
uno_Environment * pCppEnv1 = 0;
|
||||||
uno_Environment * pCppEnv2 = 0;
|
uno_Environment * pCppEnv2 = 0;
|
||||||
|
|
||||||
OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
|
OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
|
||||||
uno_getEnvironment( &pCppEnv1, aCppEnvTypeName.pData, 0 );
|
::uno_getEnvironment( &pCppEnv1, aCppEnvTypeName.pData, 0 );
|
||||||
uno_createEnvironment( &pCppEnv2, aCppEnvTypeName.pData, 0 ); // anonymous
|
::uno_createEnvironment( &pCppEnv2, aCppEnvTypeName.pData, 0 ); // anonymous
|
||||||
|
|
||||||
Mapping aMapping( pCppEnv1, pCppEnv2, OUString( RTL_CONSTASCII_USTRINGPARAM("prot") ) );
|
Mapping aMapping( pCppEnv1, pCppEnv2, OUString( RTL_CONSTASCII_USTRINGPARAM("prot") ) );
|
||||||
aMapping.mapInterface( (void **)&xLBT, xOriginal.get(), ::getCppuType( &xOriginal ) );
|
OSL_ENSURE( aMapping.is(), "### cannot get mapping C++ <-> prot <-> C++!" );
|
||||||
OSL_ENSURE( aMapping.is(), "### cannot get mapping!" );
|
aMapping.mapInterface( (void **)&xMapped, xOriginal.get(), ::getCppuType( &xMapped ) );
|
||||||
|
|
||||||
(*pCppEnv2->release)( pCppEnv2 );
|
|
||||||
(*pCppEnv1->release)( pCppEnv1 );
|
(*pCppEnv1->release)( pCppEnv1 );
|
||||||
|
(*pCppEnv2->release)( pCppEnv2 );
|
||||||
|
|
||||||
OSL_ASSERT( xLBT.is() );
|
if (perform_test( xMapped, xDummy ))
|
||||||
|
|
||||||
if (xLBT.is() && performTest( xLBT, xDummy ))
|
|
||||||
{
|
{
|
||||||
if (raiseException( xLBT ))
|
::fprintf( stderr, "> C++-UNO test succeeded!\n" );
|
||||||
{
|
|
||||||
printf( "> dynamic invocation test succeeded!\n" );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
printf( "> exception test failed!\n" );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf( "> dynamic invocation test failed!\n" );
|
::fprintf( stderr, "### C++-UNO test failed!\n" );
|
||||||
|
exit( 1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OSL_ENSURE( p->getRefCount() == 1, "### test object ref count > 1 !" );
|
OSL_ENSURE( p->getRefCount() == 1, "### test object ref count > 1 !" );
|
||||||
}
|
}
|
||||||
OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" );
|
OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
void test_C(void)
|
||||||
|
{
|
||||||
|
// C-UNO test
|
||||||
|
{
|
||||||
|
TestDummy * p = new TestDummy();
|
||||||
|
Reference< XInterface > xDummy( *p );
|
||||||
|
{
|
||||||
|
Test_Impl * p = new Test_Impl();
|
||||||
|
Reference< XInterface > xOriginal( *p );
|
||||||
|
{
|
||||||
|
Reference< XInterface > xMapped;
|
||||||
|
|
||||||
|
uno_Environment * pCppEnv1 = 0;
|
||||||
|
uno_Environment * pCppEnv2 = 0;
|
||||||
|
uno_Environment * pCEnv1 = 0;
|
||||||
|
uno_Environment * pCEnv2 = 0;
|
||||||
|
OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) );
|
||||||
|
OUString aCEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_C) );
|
||||||
|
::uno_getEnvironment( &pCEnv1, aCEnvTypeName.pData, 0 );
|
||||||
|
::uno_createEnvironment( &pCEnv2, aCEnvTypeName.pData, 0 ); // anonymous
|
||||||
|
::uno_getEnvironment( &pCppEnv1, aCppEnvTypeName.pData, 0 );
|
||||||
|
::uno_createEnvironment( &pCppEnv2, aCppEnvTypeName.pData, 0 ); // anonymous
|
||||||
|
Mapping aCpp1ToC1( pCppEnv1, pCEnv1 );
|
||||||
|
Mapping aC2ToCpp2( pCEnv2, pCppEnv2 );
|
||||||
|
|
||||||
|
void * pC = 0;
|
||||||
|
aCpp1ToC1.mapInterface( &pC, xOriginal.get(), ::getCppuType( &xOriginal ) );
|
||||||
|
aC2ToCpp2.mapInterface( (void **)&xMapped, pC, ::getCppuType( &xOriginal ) );
|
||||||
|
(*pCEnv1->pExtEnv->releaseInterface)( pCEnv1->pExtEnv, pC );
|
||||||
|
|
||||||
|
(*pCppEnv1->release)( pCppEnv1 );
|
||||||
|
(*pCppEnv2->release)( pCppEnv2 );
|
||||||
|
(*pCEnv1->release)( pCEnv1 );
|
||||||
|
(*pCEnv2->release)( pCEnv2 );
|
||||||
|
|
||||||
|
if (perform_test( xMapped, xDummy ))
|
||||||
|
{
|
||||||
|
::fprintf( stderr, "> C-UNO test succeeded!\n" );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
::fprintf( stderr, "### C-UNO test failed!\n" );
|
||||||
|
exit( 1 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
OSL_ENSURE( p->getRefCount() == 1, "### test object ref count > 1 !" );
|
||||||
|
}
|
||||||
|
OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,9 +2,9 @@
|
|||||||
*
|
*
|
||||||
* $RCSfile: testcppu.cxx,v $
|
* $RCSfile: testcppu.cxx,v $
|
||||||
*
|
*
|
||||||
* $Revision: 1.11 $
|
* $Revision: 1.12 $
|
||||||
*
|
*
|
||||||
* last change: $Author: jsc $ $Date: 2001-04-02 10:07:14 $
|
* last change: $Author: dbo $ $Date: 2001-04-12 13:39:24 $
|
||||||
*
|
*
|
||||||
* The Contents of this file are made available subject to the terms of
|
* The Contents of this file are made available subject to the terms of
|
||||||
* either of the following licenses
|
* either of the following licenses
|
||||||
@@ -1007,8 +1007,12 @@ int SAL_CALL main(int argc, char **argv)
|
|||||||
// void test_security( const Reference< XMultiServiceFactory > & );
|
// void test_security( const Reference< XMultiServiceFactory > & );
|
||||||
// test_security( xMgr );
|
// test_security( xMgr );
|
||||||
// perform test
|
// perform test
|
||||||
void test_di(void);
|
|
||||||
test_di();
|
void test_Cpp(void);
|
||||||
|
void test_C(void);
|
||||||
|
test_Cpp();
|
||||||
|
test_C();
|
||||||
|
|
||||||
testAssignment();
|
testAssignment();
|
||||||
testCppu();
|
testCppu();
|
||||||
testArray();
|
testArray();
|
||||||
|
Reference in New Issue
Block a user