diff options
author | Thomas Lange [tl] <tl@openoffice.org> | 2010-06-14 14:38:44 +0200 |
---|---|---|
committer | Thomas Lange [tl] <tl@openoffice.org> | 2010-06-14 14:38:44 +0200 |
commit | 61c2b19a67e3253c1b4facca616930c3d9f043de (patch) | |
tree | 97112dfd696a0b77fe3d4fbd45e93de3a48d99a7 | |
parent | b0ebe7d06cdf6e40cea99607ddc2985fa1a7d62a (diff) | |
parent | daca94b7f69ce224a15e1cfb9ace1d43dc71e4a3 (diff) |
CWS tl80: merge with DEV300_m82
264 files changed, 3798 insertions, 11808 deletions
diff --git a/bridges/prj/build.lst b/bridges/prj/build.lst index c6e342520672..0e7979742562 100644 --- a/bridges/prj/build.lst +++ b/bridges/prj/build.lst @@ -12,16 +12,17 @@ br bridges\source\cpp_uno\gcc3_os2_intel nmake - p br_gcc3os br_cppuno_shared br br bridges\source\cpp_uno\gcc3_freebsd_intel nmake - u br_gcc3fi br_cppuno_shared br_unotypes br_inc NULL br bridges\source\cpp_uno\gcc3_linux_x86-64 nmake - u br_gcc3lx br_cppuno_shared br_unotypes br_inc NULL br bridges\source\cpp_uno\gcc3_freebsd_x86-64 nmake - u br_gcc3fx br_cppuno_shared br_unotypes br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_powerpc nmake - u br_gcclp3 br_cppuno_shared br_unotypes br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_powerpc64 nmake - u br_gcclp3_64 br_cppuno_shared br_unotypes br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_mips nmake - u br_gcc3mips br_cppuno_shared br_unotypes br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_m68k nmake - u br_gcc3m68k br_cppuno_shared br_unotypes br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_s390 nmake - u br_gccl33 br_unotypes br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_s390x nmake - u br_gccl3x br_unotypes br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_sparc nmake - u br_gccl3s br_unotypes br_cppuno_shared br_inc NULL -br bridges\source\cpp_uno\gcc3_linux_arm nmake - u br_gccl3r br_unotypes NULL -br bridges\source\cpp_uno\gcc3_linux_ia64 nmake - u br_gccl3a br_unotypes NULL -br bridges\source\cpp_uno\gcc3_linux_hppa nmake - u br_gccl3h br_unotypes NULL +br bridges\source\cpp_uno\gcc3_linux_powerpc nmake - u br_gcc3lp br_cppuno_shared br_unotypes br_inc NULL +br bridges\source\cpp_uno\gcc3_linux_powerpc64 nmake - u br_gcc3lp_64 br_cppuno_shared br_unotypes br_inc NULL +br bridges\source\cpp_uno\gcc3_linux_mips nmake - u br_gcc3lmips br_cppuno_shared br_unotypes br_inc NULL +br bridges\source\cpp_uno\gcc3_linux_m68k nmake - u br_gcc3lm68k br_cppuno_shared br_unotypes br_inc NULL +br bridges\source\cpp_uno\gcc3_linux_s390 nmake - u br_gcc3l3 br_unotypes br_inc NULL +br bridges\source\cpp_uno\gcc3_linux_s390x nmake - u br_gcc3l3_64 br_unotypes br_inc NULL +br bridges\source\cpp_uno\gcc3_linux_sparc nmake - u br_gcc3ls br_unotypes br_cppuno_shared br_inc NULL +br bridges\source\cpp_uno\gcc3_linux_arm nmake - u br_gcc3lr br_unotypes NULL +br bridges\source\cpp_uno\gcc3_linux_ia64 nmake - u br_gcc3la br_unotypes NULL +br bridges\source\cpp_uno\gcc3_linux_hppa nmake - u br_gcc3lh br_unotypes NULL +br bridges\source\cpp_uno\gcc3_linux_alpha nmake - u br_gcc3ll br_unotypes NULL br bridges\source\cpp_uno\gcc3_macosx_intel nmake - u br_gcc3macoxi br_cppuno_shared br_unotypes br_inc NULL br bridges\source\cpp_uno\gcc3_macosx_powerpc nmake - u br_gcc3macoxp br_cppuno_shared br_unotypes br_inc NULL br bridges\source\cpp_uno\cc50_solaris_sparc nmake - u br_cc50sols br_unotypes br_cppuno_shared br_inc NULL diff --git a/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk b/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk index 1e00634bd6a3..87ff690dd653 100644 --- a/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk +++ b/bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk @@ -77,8 +77,5 @@ SHL1STDLIBS= \ .INCLUDE : target.mk $(SLO)$/%.obj: %.s -#cmc: Ideally --noexecstack would be in operations, but with #i51385# pyuno -#remote bridgeing breaks -# $(CC) -Wa,--noexecstack -c -o $(SLO)$/$(@:b).o $< $(CC) -c -o $(SLO)$/$(@:b).o $< touch $@ diff --git a/bridges/source/cpp_uno/gcc3_linux_alpha/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_alpha/cpp2uno.cxx new file mode 100644 index 000000000000..abc5ce67e4b4 --- /dev/null +++ b/bridges/source/cpp_uno/gcc3_linux_alpha/cpp2uno.cxx @@ -0,0 +1,676 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_bridges.hxx" + +#include <com/sun/star/uno/genfunc.hxx> +#include <uno/data.h> +#include <typelib/typedescription.hxx> + +#include "bridges/cpp_uno/shared/bridge.hxx" +#include "bridges/cpp_uno/shared/cppinterfaceproxy.hxx" +#include "bridges/cpp_uno/shared/types.hxx" +#include "bridges/cpp_uno/shared/vtablefactory.hxx" + +#include "share.hxx" +#include <stdio.h> + +//Calling Standards: +// "Calling Standard for Alpha Systems" +// (Tru64 UNIX Version 5.1 or higher, August 2000) +//http://www.tru64unix.compaq.com/docs/base_doc/DOCUMENTATION/V51_HTML/ARH9MBTE/TITLE.HTM + +using namespace ::com::sun::star::uno; + +namespace +{ +static typelib_TypeClass cpp2uno_call( + bridges::cpp_uno::shared::CppInterfaceProxy * pThis, + const typelib_TypeDescription * pMemberTypeDescr, + typelib_TypeDescriptionReference * pReturnTypeRef, // 0 indicates void return + sal_Int32 nParams, typelib_MethodParameter * pParams, + void ** gpreg, void ** fpreg, void ** ovrflw, + sal_Int64 * pRegisterReturn /* space for register return */ ) +{ +#ifdef CMC_DEBUG + fprintf(stderr, "as far as cpp2uno_call\n"); +#endif + int nregs = 0; //number of words passed in registers + + // gpreg: [ret *], this, [gpr params] + // fpreg: [fpr params] + // ovrflw: [gpr or fpr params (properly aligned)] + + // return + typelib_TypeDescription * pReturnTypeDescr = 0; + if (pReturnTypeRef) + TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef ); + + void * pUnoReturn = 0; + void * pCppReturn = 0; // complex return ptr: if != 0 && != pUnoReturn, reconversion need + + if (pReturnTypeDescr) + { + if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr )) + { + pUnoReturn = pRegisterReturn; // direct way for simple types + } + else // complex return via ptr (pCppReturn) + { + pCppReturn = *(void **)gpreg; + gpreg++; + fpreg++; + nregs++; + + pUnoReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr ) + ? alloca( pReturnTypeDescr->nSize ) + : pCppReturn); // direct way + } + } + // pop this + gpreg++; + fpreg++; + nregs++; + + // stack space + OSL_ENSURE( sizeof(void *) == sizeof(sal_Int64), "### unexpected size!" ); + // parameters + void ** pUnoArgs = (void **)alloca( 4 * sizeof(void *) * nParams ); + void ** pCppArgs = pUnoArgs + nParams; + // indizes of values this have to be converted (interface conversion cpp<=>uno) + sal_Int32 * pTempIndizes = (sal_Int32 *)(pUnoArgs + (2 * nParams)); + // type descriptions for reconversions + typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pUnoArgs + (3 * nParams)); + + sal_Int32 nTempIndizes = 0; + for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos ) + { + const typelib_MethodParameter & rParam = pParams[nPos]; + typelib_TypeDescription * pParamTypeDescr = 0; + TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef ); + +#ifdef CMC_DEBUG + fprintf(stderr, "arg %d of %d\n", nPos, nParams); +#endif + + if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr )) // value + { +#ifdef CMC_DEBUG + fprintf(stderr, "simple type is %d\n", pParamTypeDescr->eTypeClass); +#endif + + switch (pParamTypeDescr->eTypeClass) + { + case typelib_TypeClass_FLOAT: + case typelib_TypeClass_DOUBLE: + if (nregs < axp::MAX_WORDS_IN_REGS) + { + if (pParamTypeDescr->eTypeClass == typelib_TypeClass_FLOAT) + { + float tmp = (float) (*((double *)fpreg)); + (*((float *) fpreg)) = tmp; + } + + pCppArgs[nPos] = pUnoArgs[nPos] = fpreg; + gpreg++; + fpreg++; + nregs++; + } + else + { + pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw; + ovrflw++; + } + break; + case typelib_TypeClass_BYTE: + case typelib_TypeClass_BOOLEAN: + if (nregs < axp::MAX_WORDS_IN_REGS) + { + pCppArgs[nPos] = pUnoArgs[nPos] = gpreg; + gpreg++; + fpreg++; + nregs++; + } + else + { + pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw; + ovrflw++; + } + break; + case typelib_TypeClass_CHAR: + case typelib_TypeClass_SHORT: + case typelib_TypeClass_UNSIGNED_SHORT: + if (nregs < axp::MAX_WORDS_IN_REGS) + { + pCppArgs[nPos] = pUnoArgs[nPos] = gpreg; + gpreg++; + fpreg++; + nregs++; + } + else + { + pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw; + ovrflw++; + } + break; + case typelib_TypeClass_ENUM: + case typelib_TypeClass_LONG: + case typelib_TypeClass_UNSIGNED_LONG: + if (nregs < axp::MAX_WORDS_IN_REGS) + { + pCppArgs[nPos] = pUnoArgs[nPos] = gpreg; + gpreg++; + fpreg++; + nregs++; + } + else + { + pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw; + ovrflw++; + } + break; + default: + if (nregs < axp::MAX_WORDS_IN_REGS) + { + pCppArgs[nPos] = pUnoArgs[nPos] = gpreg; + gpreg++; + fpreg++; + nregs++; + } + else + { + pCppArgs[nPos] = pUnoArgs[nPos] = ovrflw; + ovrflw++; + } + break; + } + + // no longer needed + TYPELIB_DANGER_RELEASE( pParamTypeDescr ); + } + else // ptr to complex value | ref + { +#ifdef CMC_DEBUG + fprintf(stderr, "complex, nregs is %d\n", nregs); +#endif + + void *pCppStack; //temporary stack pointer + + if (nregs < axp::MAX_WORDS_IN_REGS) + { + pCppArgs[nPos] = pCppStack = *gpreg; + gpreg++; + fpreg++; + nregs++; + } + else + { + pCppArgs[nPos] = pCppStack = *ovrflw; + ovrflw++; + } + + if (! rParam.bIn) // is pure out + { + // uno out is unconstructed mem! + pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ); + pTempIndizes[nTempIndizes] = nPos; + // will be released at reconversion + ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr; + } + // is in/inout + else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr )) + { + uno_copyAndConvertData( pUnoArgs[nPos] = alloca( pParamTypeDescr->nSize ), + pCppStack, pParamTypeDescr, + pThis->getBridge()->getCpp2Uno() ); + pTempIndizes[nTempIndizes] = nPos; // has to be reconverted + // will be released at reconversion + ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr; + } + else // direct way + { + pUnoArgs[nPos] = pCppStack; + // no longer needed + TYPELIB_DANGER_RELEASE( pParamTypeDescr ); + } + } + } + +#ifdef CMC_DEBUG + fprintf(stderr, "end of params\n"); +#endif + + // ExceptionHolder + uno_Any aUnoExc; // Any will be constructed by callee + uno_Any * pUnoExc = &aUnoExc; + + // invoke uno dispatch call + (*pThis->getUnoI()->pDispatcher)( pThis->getUnoI(), pMemberTypeDescr, pUnoReturn, pUnoArgs, &pUnoExc ); + + // in case an exception occured... + if (pUnoExc) + { + // destruct temporary in/inout params + for ( ; nTempIndizes--; ) + { + sal_Int32 nIndex = pTempIndizes[nTempIndizes]; + + if (pParams[nIndex].bIn) // is in/inout => was constructed + uno_destructData( pUnoArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], 0 ); + TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] ); + } + if (pReturnTypeDescr) + TYPELIB_DANGER_RELEASE( pReturnTypeDescr ); + + CPPU_CURRENT_NAMESPACE::raiseException( &aUnoExc, pThis->getBridge()->getUno2Cpp() ); // has to destruct the any + // is here for dummy + return typelib_TypeClass_VOID; + } + else // else no exception occured... + { + // temporary params + for ( ; nTempIndizes--; ) + { + sal_Int32 nIndex = pTempIndizes[nTempIndizes]; + typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes]; + + if (pParams[nIndex].bOut) // inout/out + { + // convert and assign + uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release ); + uno_copyAndConvertData( pCppArgs[nIndex], pUnoArgs[nIndex], pParamTypeDescr, + pThis->getBridge()->getUno2Cpp() ); + } + // destroy temp uno param + uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); + + TYPELIB_DANGER_RELEASE( pParamTypeDescr ); + } + // return + if (pCppReturn) // has complex return + { + if (pUnoReturn != pCppReturn) // needs reconversion + { + uno_copyAndConvertData( pCppReturn, pUnoReturn, pReturnTypeDescr, + pThis->getBridge()->getUno2Cpp() ); + // destroy temp uno return + uno_destructData( pUnoReturn, pReturnTypeDescr, 0 ); + } + // complex return ptr is set to return reg + *(void **)pRegisterReturn = pCppReturn; + } + if (pReturnTypeDescr) + { + typelib_TypeClass eRet = (typelib_TypeClass)pReturnTypeDescr->eTypeClass; + TYPELIB_DANGER_RELEASE( pReturnTypeDescr ); + return eRet; + } + else + return typelib_TypeClass_VOID; + } +} + + +//============================================================================ +static typelib_TypeClass cpp_mediate( + sal_uInt64 nOffsetAndIndex, + void ** gpreg, void ** fpreg, void ** ovrflw, + sal_Int64 * pRegisterReturn /* space for register return */ ) +{ + OSL_ENSURE( sizeof(sal_Int64)==sizeof(void *), "### unexpected!" ); + + sal_Int32 nVtableOffset = (nOffsetAndIndex >> 32); + sal_Int32 nFunctionIndex = (nOffsetAndIndex & 0xFFFFFFFF); + +#ifdef CMC_DEBUG + fprintf(stderr, "nVTableOffset, nFunctionIndex are %x %x\n", nVtableOffset, nFunctionIndex); +#endif + +#ifdef CMC_DEBUG + // Let's figure out what is really going on here + { + fprintf( stderr, "= cpp_mediate () =\nGPR's (%d): ", 6 ); + for ( unsigned int i = 0; i < 6; ++i ) + fprintf( stderr, "0x%lx, ", gpreg[i] ); + fprintf( stderr, "\n"); + fprintf( stderr, "\nFPR's (%d): ", 6 ); + for ( unsigned int i = 0; i < 6; ++i ) + fprintf( stderr, "0x%lx (%f), ", fpreg[i], fpreg[i] ); + fprintf( stderr, "\n"); + } +#endif + + + // gpreg: [ret *], this, [other gpr params] + // fpreg: [fpr params] + // ovrflw: [gpr or fpr params (properly aligned)] + + // _this_ ptr is patched cppu_XInterfaceProxy object + void * pThis; + if( nFunctionIndex & 0x80000000 ) + { + nFunctionIndex &= 0x7fffffff; + pThis = gpreg[1]; + } + else + { + pThis = gpreg[0]; + } + + pThis = static_cast< char * >(pThis) - nVtableOffset; + + bridges::cpp_uno::shared::CppInterfaceProxy * pCppI + = bridges::cpp_uno::shared::CppInterfaceProxy::castInterfaceToProxy( + pThis); + + typelib_InterfaceTypeDescription * pTypeDescr = pCppI->getTypeDescr(); + + + OSL_ENSURE( nFunctionIndex < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" ); + if (nFunctionIndex >= pTypeDescr->nMapFunctionIndexToMemberIndex) + { + throw RuntimeException( + rtl::OUString::createFromAscii("illegal vtable index!"), + (XInterface *)pCppI ); + } + + // determine called method + OSL_ENSURE( nVtableCall < pTypeDescr->nMapFunctionIndexToMemberIndex, "### illegal vtable index!" ); + sal_Int32 nMemberPos = pTypeDescr->pMapFunctionIndexToMemberIndex[nFunctionIndex]; + OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### illegal member index!" ); + + TypeDescription aMemberDescr( pTypeDescr->ppAllMembers[nMemberPos] ); + + typelib_TypeClass eRet; + switch (aMemberDescr.get()->eTypeClass) + { + case typelib_TypeClass_INTERFACE_ATTRIBUTE: + { + if (pTypeDescr->pMapMemberIndexToFunctionIndex[nMemberPos] == nFunctionIndex) + { + // is GET method + eRet = cpp2uno_call( + pCppI, aMemberDescr.get(), + ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef, + 0, 0, // no params + gpreg, fpreg, ovrflw, pRegisterReturn ); + } + else + { + // is SET method + typelib_MethodParameter aParam; + aParam.pTypeRef = + ((typelib_InterfaceAttributeTypeDescription *)aMemberDescr.get())->pAttributeTypeRef; + aParam.bIn = sal_True; + aParam.bOut = sal_False; + + eRet = cpp2uno_call( + pCppI, aMemberDescr.get(), + 0, // indicates void return + 1, &aParam, + gpreg, fpreg, ovrflw, pRegisterReturn ); + } + break; + } + case typelib_TypeClass_INTERFACE_METHOD: + { + // is METHOD + switch (nFunctionIndex) + { + case 1: // acquire() + pCppI->acquireProxy(); // non virtual call! + eRet = typelib_TypeClass_VOID; + break; + case 2: // release() + pCppI->releaseProxy(); // non virtual call! + eRet = typelib_TypeClass_VOID; + break; + case 0: // queryInterface() opt + { + typelib_TypeDescription * pTD = 0; + TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( gpreg[2] )->getTypeLibType() ); + if (pTD) + { + XInterface * pInterface = 0; + (*pCppI->getBridge()->getCppEnv()->getRegisteredInterface)( + pCppI->getBridge()->getCppEnv(), + (void **)&pInterface, pCppI->getOid().pData, + (typelib_InterfaceTypeDescription *)pTD ); + + if (pInterface) + { + ::uno_any_construct( + reinterpret_cast< uno_Any * >( gpreg[0] ), + &pInterface, pTD, cpp_acquire ); + pInterface->release(); + TYPELIB_DANGER_RELEASE( pTD ); + *(void **)pRegisterReturn = gpreg[0]; + eRet = typelib_TypeClass_ANY; + break; + } + TYPELIB_DANGER_RELEASE( pTD ); + } + } // else perform queryInterface() + default: + eRet = cpp2uno_call( + pCppI, aMemberDescr.get(), + ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pReturnTypeRef, + ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->nParams, + ((typelib_InterfaceMethodTypeDescription *)aMemberDescr.get())->pParams, + gpreg, fpreg, ovrflw, pRegisterReturn ); + } + break; + } + default: + { + throw RuntimeException( + rtl::OUString::createFromAscii("no member description found!"), + (XInterface *)pCppI ); + // is here for dummy + eRet = typelib_TypeClass_VOID; + } + } + + return eRet; +} + +long cpp_vtable_call(long r16, long r17, long r18, long r19, long r20, long r21, long firstonstack) +{ + register long r1 asm("$1"); + sal_uInt64 nOffsetAndIndex = r1; + + long sp = (long)&firstonstack; + + sal_uInt64 gpreg[axp::MAX_GPR_REGS]; + gpreg[0] = r16; + gpreg[1] = r17; + gpreg[2] = r18; + gpreg[3] = r19; + gpreg[4] = r20; + gpreg[5] = r21; + + double fpreg[axp::MAX_SSE_REGS]; + register double f16 asm("$f16"); fpreg[0] = f16; + register double f17 asm("$f17"); fpreg[1] = f17; + register double f18 asm("$f18"); fpreg[2] = f18; + register double f19 asm("$f19"); fpreg[3] = f19; + register double f20 asm("$f20"); fpreg[4] = f20; + register double f21 asm("$f21"); fpreg[5] = f21; + + volatile long nRegReturn[1]; +#ifdef CMC_DEBUG + fprintf(stderr, "before mediate with %lx\n",nOffsetAndIndex); + fprintf(stderr, "non-doubles are %x %x %x %x %x %x\n", gpreg[0], gpreg[1], gpreg[2], gpreg[3], gpreg[4], gpreg[5]); + fprintf(stderr, "doubles are %f %f %f %f %f %f\n", fpreg[0], fpreg[1], fpreg[2], fpreg[3], fpreg[4], fpreg[5]); +#endif + typelib_TypeClass aType = + cpp_mediate( nOffsetAndIndex, (void**)gpreg, (void**)fpreg, (void**)sp, + (sal_Int64*)nRegReturn ); +#ifdef CMC_DEBUG + fprintf(stderr, "after mediate ret is %lx %ld\n", nRegReturn[0], nRegReturn[0]); +#endif + + switch( aType ) + { + case typelib_TypeClass_BOOLEAN: + case typelib_TypeClass_BYTE: + nRegReturn[0] = (unsigned long)(*(unsigned char *)nRegReturn); + break; + case typelib_TypeClass_CHAR: + case typelib_TypeClass_UNSIGNED_SHORT: + case typelib_TypeClass_SHORT: + nRegReturn[0] = (unsigned long)(*(unsigned short *)nRegReturn); + break; + case typelib_TypeClass_ENUM: + case typelib_TypeClass_UNSIGNED_LONG: + case typelib_TypeClass_LONG: + nRegReturn[0] = (unsigned long)(*(unsigned int *)nRegReturn); + break; + case typelib_TypeClass_VOID: + default: + break; + case typelib_TypeClass_FLOAT: + { + double tmp = (double) (*((float *)nRegReturn)); + (*((double *) nRegReturn)) = tmp; + } + //deliberate fall through + case typelib_TypeClass_DOUBLE: + __asm__ ( "ldt $f0,%0\n\t" + : : "m" (*((double*)nRegReturn)) : "$f0"); + break; + } + return nRegReturn[0]; +} + +const int codeSnippetSize = 32; + +unsigned char *codeSnippet( unsigned char * code, sal_Int32 nFunctionIndex, sal_Int32 nVtableOffset, bool simple_ret_type ) +{ + if (! simple_ret_type) + nFunctionIndex |= 0x80000000; + + unsigned char * p = code; + *(unsigned int*)&p[0] = 0x47fb0401; /* mov $27,$1 */ + *(unsigned int*)&p[4] = 0xa43b0010; /* ldq $1,16($27) */ + *(unsigned int*)&p[8] = 0xa77b0018; /* ldq $27,24($27) */ + *(unsigned int*)&p[12] = 0x6bfb0000; /* jmp $31,($27),0 */ + *(unsigned int*)&p[16] = nFunctionIndex; + *(unsigned int*)&p[20] = nVtableOffset; + *(unsigned long*)&p[24] = (unsigned long)cpp_vtable_call; + return (code + codeSnippetSize); +} +} + +void bridges::cpp_uno::shared::VtableFactory::flushCode(unsigned char const *, unsigned char const *) +{ + //http://www.gnu.org/software/lightning/manual/html_node/Standard-functions.html + __asm__ __volatile__("call_pal 0x86"); +} + +struct bridges::cpp_uno::shared::VtableFactory::Slot { void * fn; }; + +bridges::cpp_uno::shared::VtableFactory::Slot * +bridges::cpp_uno::shared::VtableFactory::mapBlockToVtable(void * block) +{ + return static_cast< Slot * >(block) + 2; +} + +sal_Size bridges::cpp_uno::shared::VtableFactory::getBlockSize( + sal_Int32 slotCount) +{ + return (slotCount + 2) * sizeof (Slot) + slotCount * codeSnippetSize; +} + +bridges::cpp_uno::shared::VtableFactory::Slot * +bridges::cpp_uno::shared::VtableFactory::initializeBlock( + void * block, sal_Int32 slotCount) +{ + Slot * slots = mapBlockToVtable(block); + slots[-2].fn = 0; + slots[-1].fn = 0; + return slots + slotCount; +} + +unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( + Slot ** slots, unsigned char * code, sal_PtrDiff writetoexecdiff, + typelib_InterfaceTypeDescription const * type, sal_Int32 functionOffset, + sal_Int32 functionCount, sal_Int32 vtableOffset) +{ + (*slots) -= functionCount; + Slot * s = *slots; +#ifdef CMC_DEBUG + fprintf(stderr, "in addLocalFunctions functionOffset is %x\n",functionOffset); + fprintf(stderr, "in addLocalFunctions vtableOffset is %x\n",vtableOffset); +#endif + + for (sal_Int32 i = 0; i < type->nMembers; ++i) { + typelib_TypeDescription * member = 0; + TYPELIB_DANGER_GET(&member, type->ppMembers[i]); + OSL_ASSERT(member != 0); + switch (member->eTypeClass) { + case typelib_TypeClass_INTERFACE_ATTRIBUTE: + // Getter: + (s++)->fn = code + writetoexecdiff; + code = codeSnippet( + code, functionOffset++, vtableOffset, + bridges::cpp_uno::shared::isSimpleType( + reinterpret_cast< + typelib_InterfaceAttributeTypeDescription * >( + member)->pAttributeTypeRef)); + + // Setter: + if (!reinterpret_cast< + typelib_InterfaceAttributeTypeDescription * >( + member)->bReadOnly) + { + (s++)->fn = code + writetoexecdiff; + code = codeSnippet(code, functionOffset++, vtableOffset, true); + } + break; + + case typelib_TypeClass_INTERFACE_METHOD: + (s++)->fn = code + writetoexecdiff; + code = codeSnippet( + code, functionOffset++, vtableOffset, + bridges::cpp_uno::shared::isSimpleType( + reinterpret_cast< + typelib_InterfaceMethodTypeDescription * >( + member)->pReturnTypeRef)); + break; + + default: + OSL_ASSERT(false); + break; + } + TYPELIB_DANGER_RELEASE(member); + } + return code; +} + +/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx b/bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx new file mode 100644 index 000000000000..3e666a11cdd0 --- /dev/null +++ b/bridges/source/cpp_uno/gcc3_linux_alpha/except.cxx @@ -0,0 +1,287 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_bridges.hxx" + +#include <stdio.h> +#include <string.h> +#include <dlfcn.h> +#include <cxxabi.h> +#include <hash_map> + +#include <rtl/strbuf.hxx> +#include <rtl/ustrbuf.hxx> +#include <osl/diagnose.h> +#include <osl/mutex.hxx> + +#include <com/sun/star/uno/genfunc.hxx> +#include <typelib/typedescription.hxx> +#include <uno/any2.h> + +#include "share.hxx" + + +using namespace ::std; +using namespace ::osl; +using namespace ::rtl; +using namespace ::com::sun::star::uno; +using namespace ::__cxxabiv1; + + +namespace CPPU_CURRENT_NAMESPACE +{ + +void dummy_can_throw_anything( char const * ) +{ +} + +//================================================================================================== +static OUString toUNOname( char const * p ) SAL_THROW( () ) +{ +#if OSL_DEBUG_LEVEL > 1 + char const * start = p; +#endif + + // example: N3com3sun4star4lang24IllegalArgumentExceptionE + + OUStringBuffer buf( 64 ); + OSL_ASSERT( 'N' == *p ); + ++p; // skip N + + while ('E' != *p) + { + // read chars count + long n = (*p++ - '0'); + while ('0' <= *p && '9' >= *p) + { + n *= 10; + n += (*p++ - '0'); + } + buf.appendAscii( p, n ); + p += n; + if ('E' != *p) + buf.append( (sal_Unicode)'.' ); + } + +#if OSL_DEBUG_LEVEL > 1 + OUString ret( buf.makeStringAndClear() ); + OString c_ret( OUStringToOString( ret, RTL_TEXTENCODING_ASCII_US ) ); + fprintf( stderr, "> toUNOname(): %s => %s\n", start, c_ret.getStr() ); + return ret; +#else + return buf.makeStringAndClear(); +#endif +} + +//================================================================================================== +class RTTI +{ + typedef hash_map< OUString, type_info *, OUStringHash > t_rtti_map; + + Mutex m_mutex; + t_rtti_map m_rttis; + t_rtti_map m_generatedRttis; + + void * m_hApp; + +public: + RTTI() SAL_THROW( () ); + ~RTTI() SAL_THROW( () ); + + type_info * getRTTI( typelib_CompoundTypeDescription * ) SAL_THROW( () ); +}; +//__________________________________________________________________________________________________ +RTTI::RTTI() SAL_THROW( () ) + : m_hApp( dlopen( 0, RTLD_LAZY ) ) +{ +} +//__________________________________________________________________________________________________ +RTTI::~RTTI() SAL_THROW( () ) +{ + dlclose( m_hApp ); +} + +//__________________________________________________________________________________________________ +type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () ) +{ + type_info * rtti; + + OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName; + + MutexGuard guard( m_mutex ); + t_rtti_map::const_iterator iRttiFind( m_rttis.find( unoName ) ); + if (iRttiFind == m_rttis.end()) + { + // RTTI symbol + OStringBuffer buf( 64 ); + buf.append( RTL_CONSTASCII_STRINGPARAM("_ZTIN") ); + sal_Int32 index = 0; + do + { + OUString token( unoName.getToken( 0, '.', index ) ); + buf.append( token.getLength() ); + OString c_token( OUStringToOString( token, RTL_TEXTENCODING_ASCII_US ) ); + buf.append( c_token ); + } + while (index >= 0); + buf.append( 'E' ); + + OString symName( buf.makeStringAndClear() ); + rtti = (type_info *)dlsym( m_hApp, symName.getStr() ); + + if (rtti) + { + pair< t_rtti_map::iterator, bool > insertion( + m_rttis.insert( t_rtti_map::value_type( unoName, rtti ) ) ); + OSL_ENSURE( insertion.second, "### inserting new rtti failed?!" ); + } + else + { + // try to lookup the symbol in the generated rtti map + t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) ); + if (iFind == m_generatedRttis.end()) + { + // we must generate it ! + // symbol and rtti-name is nearly identical, + // the symbol is prefixed with _ZTI + char const * rttiName = symName.getStr() +4; +#if OSL_DEBUG_LEVEL > 1 + fprintf( stderr,"generated rtti for %s\n", rttiName ); +#endif + if (pTypeDescr->pBaseTypeDescription) + { + // ensure availability of base + type_info * base_rtti = getRTTI( + (typelib_CompoundTypeDescription *)pTypeDescr->pBaseTypeDescription ); + rtti = new __si_class_type_info( + strdup( rttiName ), (__class_type_info *)base_rtti ); + } + else + { + // this class has no base class + rtti = new __class_type_info( strdup( rttiName ) ); + } + + pair< t_rtti_map::iterator, bool > insertion( + m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) ); + OSL_ENSURE( insertion.second, "### inserting new generated rtti failed?!" ); + } + else // taking already generated rtti + { + rtti = iFind->second; + } + } + } + else + { + rtti = iRttiFind->second; + } + + return rtti; +} + +//-------------------------------------------------------------------------------------------------- +static void deleteException( void * pExc ) +{ + __cxa_exception const * header = ((__cxa_exception const *)pExc - 1); + typelib_TypeDescription * pTD = 0; + OUString unoName( toUNOname( header->exceptionType->name() ) ); + ::typelib_typedescription_getByName( &pTD, unoName.pData ); + OSL_ENSURE( pTD, "### unknown exception type! leaving out destruction => leaking!!!" ); + if (pTD) + { + ::uno_destructData( pExc, pTD, cpp_release ); + ::typelib_typedescription_release( pTD ); + } +} + +//================================================================================================== +void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ) +{ + void * pCppExc; + type_info * rtti; + + { + // construct cpp exception object + typelib_TypeDescription * pTypeDescr = 0; + TYPELIB_DANGER_GET( &pTypeDescr, pUnoExc->pType ); + OSL_ASSERT( pTypeDescr ); + if (! pTypeDescr) + terminate(); + + pCppExc = __cxa_allocate_exception( pTypeDescr->nSize ); + ::uno_copyAndConvertData( pCppExc, pUnoExc->pData, pTypeDescr, pUno2Cpp ); + + // destruct uno exception + ::uno_any_destruct( pUnoExc, 0 ); + // avoiding locked counts + static RTTI * s_rtti = 0; + if (! s_rtti) + { + MutexGuard guard( Mutex::getGlobalMutex() ); + if (! s_rtti) + { +#ifdef LEAK_STATIC_DATA + s_rtti = new RTTI(); +#else + static RTTI rtti_data; + s_rtti = &rtti_data; +#endif + } + } + rtti = (type_info *)s_rtti->getRTTI( (typelib_CompoundTypeDescription *) pTypeDescr ); + TYPELIB_DANGER_RELEASE( pTypeDescr ); + OSL_ENSURE( rtti, "### no rtti for throwing exception!" ); + if (! rtti) + terminate(); + } + + __cxa_throw( pCppExc, rtti, deleteException ); +} + +//================================================================================================== +void fillUnoException( __cxa_exception * header, uno_Any * pExc, uno_Mapping * pCpp2Uno ) +{ + OSL_ENSURE( header, "### no exception header!!!" ); + if (! header) + terminate(); + + typelib_TypeDescription * pExcTypeDescr = 0; + OUString unoName( toUNOname( header->exceptionType->name() ) ); + ::typelib_typedescription_getByName( &pExcTypeDescr, unoName.pData ); + OSL_ENSURE( pExcTypeDescr, "### can not get type description for exception!!!" ); + if (! pExcTypeDescr) + terminate(); + + // construct uno exception any + ::uno_any_constructAndConvert( pExc, header->adjustedPtr, pExcTypeDescr, pCpp2Uno ); + ::typelib_typedescription_release( pExcTypeDescr ); +} + +} +/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/cppu/test/alignment/makefile.mk b/bridges/source/cpp_uno/gcc3_linux_alpha/makefile.mk index 03e4d2de23a8..2650c4376933 100644 --- a/cppu/test/alignment/makefile.mk +++ b/bridges/source/cpp_uno/gcc3_linux_alpha/makefile.mk @@ -25,16 +25,12 @@ # #************************************************************************* -# -# build /test first, then /test/alignment -# +PRJ=..$/..$/.. -PRJ=..$/.. -PRJNAME=cppu -TARGET=alignment -LIBTARGET=NO +PRJNAME=bridges +TARGET=gcc3_uno +LIBTARGET=no ENABLE_EXCEPTIONS=TRUE -NO_BSYMBOLIC=TRUE # --- Settings ----------------------------------------------------- @@ -42,43 +38,40 @@ NO_BSYMBOLIC=TRUE # --- Files -------------------------------------------------------- -UNOUCRDEP=$(BIN)$/testcppu.rdb -UNOUCRRDB=$(BIN)$/testcppu.rdb -UNOUCROUT=$(INCCOM)$/test$/alignment -INCPRE+=$(INCCOM)$/test -I$(INCCOM)$/test$/alignment -I$(PRJ)$/test$/alignment +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXL" -.IF "$(src_env)" == "" -merge_rdb=$(SOLARBINDIR)$/udkapi.rdb -.ELSE -merge_rdb=$(SOLARBINDIR)$/applicat.rdb +.IF "$(cppu_no_leak)" == "" +CFLAGS += -DLEAK_STATIC_DATA .ENDIF -DEPOBJFILES= \ - $(OBJ)$/pass1.obj \ - $(OBJ)$/pass2.obj +# In case someone enabled the non-standard -fomit-frame-pointer which does not +# work with the .cxx sources in this directory: +CFLAGSCXX += -fno-omit-frame-pointer -APP1OBJS = $(OBJ)$/pass1.obj -APP1STDLIBS += $(CPPUHELPERLIB) $(CPPULIB) $(REGLIB) $(SALHELPERLIB) $(SALLIB) -APP1TARGET = pass1 +CFLAGSNOOPT=-O0 -APP2OBJS = $(OBJ)$/pass2.obj -APP2STDLIBS = $(SALLIB) -APP2TARGET = pass2 +SLOFILES= \ + $(SLO)$/except.obj \ + $(SLO)$/cpp2uno.obj \ + $(SLO)$/uno2cpp.obj -# --- Targets ------------------------------------------------------ +SHL1TARGET= $(TARGET) -.IF "$(depend)" == "" -ALLTAR: execute_pass2 -.ELSE -ALL: ALLDEP -.ENDIF +SHL1DEF=$(MISC)$/$(SHL1TARGET).def +SHL1IMPLIB=i$(TARGET) +SHL1VERSIONMAP=..$/..$/bridge_exports.map +SHL1RPATH=URELIB -.INCLUDE : target.mk +SHL1OBJS = $(SLOFILES) +SHL1LIBS = $(SLB)$/cpp_uno_shared.lib -$(MISC)$/pass2.cxx: $(APP1TARGETN) - regmerge $(UNOUCRRDB) / $(merge_rdb) - cppumaker @$(mktmp $(CPPUMAKERFLAGS) -BUCR -O$(UNOUCROUT) $(foreach,c,$(shell @$(APP1TARGETN) -env:UNO_TYPES={$(subst,\,\\ $(UNOUCRRDB))} $(subst,\,\\ $(MISC)$/pass2.cxx) dump_types) -T$c) $(UNOUCRRDB)) +SHL1STDLIBS= \ + $(CPPULIB) \ + $(SALLIB) -execute_pass2: $(APP2TARGETN) - $(APP2TARGETN) +.ENDIF + +# --- Targets ------------------------------------------------------ + +.INCLUDE : target.mk diff --git a/bridges/source/cpp_uno/gcc3_linux_alpha/share.hxx b/bridges/source/cpp_uno/gcc3_linux_alpha/share.hxx new file mode 100644 index 000000000000..c2f0189a2065 --- /dev/null +++ b/bridges/source/cpp_uno/gcc3_linux_alpha/share.hxx @@ -0,0 +1,98 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "uno/mapping.h" + +#include <typeinfo> +#include <exception> +#include <cstddef> + +namespace CPPU_CURRENT_NAMESPACE +{ + + void dummy_can_throw_anything( char const * ); + + +// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h + +struct _Unwind_Exception +{ + unsigned exception_class __attribute__((__mode__(__DI__))); + void * exception_cleanup; + unsigned private_1 __attribute__((__mode__(__word__))); + unsigned private_2 __attribute__((__mode__(__word__))); +} __attribute__((__aligned__)); + +struct __cxa_exception +{ + ::std::type_info *exceptionType; + void (*exceptionDestructor)(void *); + + ::std::unexpected_handler unexpectedHandler; + ::std::terminate_handler terminateHandler; + + __cxa_exception *nextException; + + int handlerCount; + + int handlerSwitchValue; + const unsigned char *actionRecord; + const unsigned char *languageSpecificData; + void *catchTemp; + void *adjustedPtr; + + _Unwind_Exception unwindHeader; +}; + +extern "C" void *__cxa_allocate_exception( + std::size_t thrown_size ) throw(); +extern "C" void __cxa_throw ( + void *thrown_exception, std::type_info *tinfo, void (*dest) (void *) ) __attribute__((noreturn)); + +struct __cxa_eh_globals +{ + __cxa_exception *caughtExceptions; + unsigned int uncaughtExceptions; +}; +extern "C" __cxa_eh_globals *__cxa_get_globals () throw(); + +// ----- + +//================================================================================================== +void raiseException( + uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ); +//================================================================================================== +void fillUnoException( + __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno ); +} + +namespace axp +{ + enum axplimits { MAX_WORDS_IN_REGS = 6, MAX_GPR_REGS = 6, MAX_SSE_REGS = 6 }; +} + +/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/bridges/source/cpp_uno/gcc3_linux_alpha/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_alpha/uno2cpp.cxx new file mode 100644 index 000000000000..7f51d425806c --- /dev/null +++ b/bridges/source/cpp_uno/gcc3_linux_alpha/uno2cpp.cxx @@ -0,0 +1,532 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_bridges.hxx" + +#include <malloc.h> + +#include <com/sun/star/uno/genfunc.hxx> +#include <uno/data.h> + +#include "bridges/cpp_uno/shared/bridge.hxx" +#include "bridges/cpp_uno/shared/types.hxx" +#include "bridges/cpp_uno/shared/unointerfaceproxy.hxx" +#include "bridges/cpp_uno/shared/vtables.hxx" + +#include "share.hxx" + +#include <stdio.h> +#include <string.h> + + +using namespace ::rtl; +using namespace ::com::sun::star::uno; + +void MapReturn(long r0, typelib_TypeClass eTypeClass, sal_uInt64* pRegisterReturn) +{ + register float fret asm("$f0"); + register double dret asm("$f0"); + +#ifdef CMC_DEBUG + fprintf(stderr,"Mapping Return with %lx %ld %f\n", r0, r0, dret); +#endif + switch (eTypeClass) + { + case typelib_TypeClass_HYPER: + case typelib_TypeClass_UNSIGNED_HYPER: + *pRegisterReturn = r0; + break; + case typelib_TypeClass_LONG: + case typelib_TypeClass_UNSIGNED_LONG: + case typelib_TypeClass_ENUM: + *(unsigned int*)pRegisterReturn = (unsigned int)r0; + break; + case typelib_TypeClass_CHAR: + case typelib_TypeClass_SHORT: + case typelib_TypeClass_UNSIGNED_SHORT: + *(unsigned short*)pRegisterReturn = (unsigned short)r0; + break; + case typelib_TypeClass_BOOLEAN: + case typelib_TypeClass_BYTE: + *(unsigned char*)pRegisterReturn = (unsigned char)r0; + break; + case typelib_TypeClass_FLOAT: + *reinterpret_cast<float *>( pRegisterReturn ) = fret; + break; + case typelib_TypeClass_DOUBLE: + *reinterpret_cast<double *>( pRegisterReturn ) = dret; + break; + default: + break; + } +#ifdef CMC_DEBUG + fprintf(stderr, "end of MapReturn with %x\n", pRegisterReturn ? *pRegisterReturn : 0); +#endif +} + +#define INSERT_FLOAT( pSV, nr, pFPR, pDS ) \ + { \ + if ( nr < axp::MAX_WORDS_IN_REGS ) \ + { \ + pFPR[nr++] = *reinterpret_cast<float *>( pSV ); \ + } \ + else \ + *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); \ + } + +#define INSERT_DOUBLE( pSV, nr, pFPR, pDS ) \ + if ( nr < axp::MAX_WORDS_IN_REGS ) \ + pFPR[nr++] = *reinterpret_cast<double *>( pSV ); \ + else \ + *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); // verbatim! + +#define INSERT_INT64( pSV, nr, pGPR, pDS ) \ + if ( nr < axp::MAX_WORDS_IN_REGS ) \ + pGPR[nr++] = *reinterpret_cast<sal_uInt64 *>( pSV ); \ + else \ + *pDS++ = *reinterpret_cast<sal_uInt64 *>( pSV ); + +#define INSERT_INT32( pSV, nr, pGPR, pDS ) \ + if ( nr < axp::MAX_WORDS_IN_REGS ) \ + pGPR[nr++] = *reinterpret_cast<sal_uInt32 *>( pSV ); \ + else \ + *pDS++ = *reinterpret_cast<sal_uInt32 *>( pSV ); + +#define INSERT_INT16( pSV, nr, pGPR, pDS ) \ + if ( nr < axp::MAX_WORDS_IN_REGS ) \ + pGPR[nr++] = *reinterpret_cast<sal_uInt16 *>( pSV ); \ + else \ + *pDS++ = *reinterpret_cast<sal_uInt16 *>( pSV ); + +#define INSERT_INT8( pSV, nr, pGPR, pDS ) \ + if ( nr < axp::MAX_WORDS_IN_REGS ) \ + pGPR[nr++] = *reinterpret_cast<sal_uInt8 *>( pSV ); \ + else \ + *pDS++ = *reinterpret_cast<sal_uInt8 *>( pSV ); + +namespace +{ +//================================================================================================== +void callVirtualMethod( + void * pThis, sal_Int32 nVtableIndex, + void * pRegisterReturn, typelib_TypeDescription * pReturnTypeDescr, + sal_uInt64 *pStack, sal_uInt32 nStack, + sal_uInt64 *pGPR, sal_uInt32 nGPR, + double *pFPR, sal_uInt32 nFPR) +{ + // Should not happen, but... + if ( nFPR > axp::MAX_SSE_REGS ) + nFPR = axp::MAX_SSE_REGS; + if ( nGPR > axp::MAX_GPR_REGS ) + nGPR = axp::MAX_GPR_REGS; + +#ifdef CMC_DEBUG + // Let's figure out what is really going on here + { + fprintf( stderr, "= nStack is %d\n", nStack ); + fprintf( stderr, "= callVirtualMethod() =\nGPR's (%d): ", nGPR ); + for ( unsigned int i = 0; i < nGPR; ++i ) + fprintf( stderr, "0x%lx, ", pGPR[i] ); + fprintf( stderr, "\nFPR's (%d): ", nFPR ); + for ( unsigned int i = 0; i < nFPR; ++i ) + fprintf( stderr, "0x%lx (%f), ", pFPR[i], pFPR[i] ); + fprintf( stderr, "\nStack (%d): ", nStack ); + for ( unsigned int i = 0; i < nStack; ++i ) + fprintf( stderr, "0x%lx, ", pStack[i] ); + fprintf( stderr, "\n" ); + fprintf( stderr, "pRegisterReturn is %p\n", pRegisterReturn); + } +#endif + + // Load parameters to stack, if necessary + // Stack, if used, must be 8-bytes aligned + sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca( nStack * 8 ); + memcpy( stack, pStack, nStack * 8 ); + + // To get pointer to method + // a) get the address of the vtable + sal_uInt64 pMethod = *((sal_uInt64 *)pThis); + // b) get the address from the vtable entry at offset + pMethod += 8 * nVtableIndex; + pMethod = *((sal_uInt64 *)pMethod); + + typedef void (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 ); + FunctionCall pFunc = (FunctionCall)pMethod; + + switch (nFPR) //deliberate fall through + { + case 6: + asm volatile("ldt $f16,%0" :: "m"(pFPR[5]) : "$f16"); + case 5: + asm volatile("ldt $f17,%0" :: "m"(pFPR[4]) : "$f17"); + case 4: + asm volatile("ldt $f18,%0" :: "m"(pFPR[3]) : "$f18"); + case 3: + asm volatile("ldt $f19,%0" :: "m"(pFPR[2]) : "$f19"); + case 2: + asm volatile("ldt $f20,%0" :: "m"(pFPR[1]) : "$f20"); + case 1: + asm volatile("ldt $f21,%0" :: "m"(pFPR[0]) : "$f21"); + default: + break; + } + + (*pFunc)(pGPR[0], pGPR[1], pGPR[2], pGPR[3], pGPR[4], pGPR[5]); + register sal_uInt64 r0 __asm__("$0"); + MapReturn(r0, pReturnTypeDescr->eTypeClass, (sal_uInt64*)pRegisterReturn); +} + + +//============================================================================ +static void cpp_call( + bridges::cpp_uno::shared::UnoInterfaceProxy * pThis, + bridges::cpp_uno::shared::VtableSlot aVtableSlot, + typelib_TypeDescriptionReference * pReturnTypeRef, + sal_Int32 nParams, typelib_MethodParameter * pParams, + void * pUnoReturn, void * pUnoArgs[], uno_Any ** ppUnoExc ) +{ + // max space for: [complex ret ptr], values|ptr ... + sal_uInt64 * pStack = (sal_uInt64 *)alloca( (nParams+3) * sizeof(sal_Int64) ); + sal_uInt64 * pStackStart = pStack; + + sal_uInt64 pGPR[axp::MAX_GPR_REGS]; + double pFPR[axp::MAX_SSE_REGS]; + sal_uInt32 nRegs = 0; + + // return + typelib_TypeDescription * pReturnTypeDescr = 0; + TYPELIB_DANGER_GET( &pReturnTypeDescr, pReturnTypeRef ); + OSL_ENSURE( pReturnTypeDescr, "### expected return type description!" ); + + void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion + + if (pReturnTypeDescr) + { + if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr )) + { + pCppReturn = pUnoReturn; // direct way for simple types + } + else + { + // complex return via ptr + pCppReturn = (bridges::cpp_uno::shared::relatesToInterfaceType( pReturnTypeDescr ) + ? alloca( pReturnTypeDescr->nSize ) + : pUnoReturn); // direct way + INSERT_INT64( &pCppReturn, nRegs, pGPR, pStack ); + } + } + // push "this" pointer + void * pAdjustedThisPtr = reinterpret_cast< void ** >( pThis->getCppI() ) + aVtableSlot.offset; + + INSERT_INT64( &pAdjustedThisPtr, nRegs, pGPR, pStack ); + + // stack space + OSL_ENSURE( sizeof(void *) == sizeof(sal_Int64), "### unexpected size!" ); + // args + void ** pCppArgs = (void **)alloca( 3 * sizeof(void *) * nParams ); + // indizes of values this have to be converted (interface conversion cpp<=>uno) + sal_Int32 * pTempIndizes = (sal_Int32 *)(pCppArgs + nParams); + // type descriptions for reconversions + typelib_TypeDescription ** ppTempParamTypeDescr = (typelib_TypeDescription **)(pCppArgs + (2 * nParams)); + + sal_Int32 nTempIndizes = 0; + + for ( sal_Int32 nPos = 0; nPos < nParams; ++nPos ) + { + const typelib_MethodParameter & rParam = pParams[nPos]; + typelib_TypeDescription * pParamTypeDescr = 0; + TYPELIB_DANGER_GET( &pParamTypeDescr, rParam.pTypeRef ); + + if (!rParam.bOut && bridges::cpp_uno::shared::isSimpleType( pParamTypeDescr )) + { + uno_copyAndConvertData( pCppArgs[nPos] = alloca( 8 ), pUnoArgs[nPos], pParamTypeDescr, + pThis->getBridge()->getUno2Cpp() ); + + switch (pParamTypeDescr->eTypeClass) + { + case typelib_TypeClass_HYPER: + case typelib_TypeClass_UNSIGNED_HYPER: + INSERT_INT64( pCppArgs[nPos], nRegs, pGPR, pStack ); + break; + case typelib_TypeClass_LONG: + case typelib_TypeClass_UNSIGNED_LONG: + case typelib_TypeClass_ENUM: + INSERT_INT32( pCppArgs[nPos], nRegs, pGPR, pStack ); + break; + case typelib_TypeClass_SHORT: + case typelib_TypeClass_CHAR: + case typelib_TypeClass_UNSIGNED_SHORT: + INSERT_INT16( pCppArgs[nPos], nRegs, pGPR, pStack ); + break; + case typelib_TypeClass_BOOLEAN: + case typelib_TypeClass_BYTE: + INSERT_INT8( pCppArgs[nPos], nRegs, pGPR, pStack ); + break; + case typelib_TypeClass_FLOAT: + INSERT_FLOAT( pCppArgs[nPos], nRegs, pFPR, pStack ); + break; + case typelib_TypeClass_DOUBLE: + INSERT_DOUBLE( pCppArgs[nPos], nRegs, pFPR, pStack ); + break; + default: + break; + } + + // no longer needed + TYPELIB_DANGER_RELEASE( pParamTypeDescr ); + } + else // ptr to complex value | ref + { + if (! rParam.bIn) // is pure out + { + // cpp out is constructed mem, uno out is not! + uno_constructData( + pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ), + pParamTypeDescr ); + pTempIndizes[nTempIndizes] = nPos; // default constructed for cpp call + // will be released at reconversion + ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr; + } + // is in/inout + else if (bridges::cpp_uno::shared::relatesToInterfaceType( pParamTypeDescr )) + { + uno_copyAndConvertData( + pCppArgs[nPos] = alloca( pParamTypeDescr->nSize ), + pUnoArgs[nPos], pParamTypeDescr, pThis->getBridge()->getUno2Cpp() ); + + pTempIndizes[nTempIndizes] = nPos; // has to be reconverted + // will be released at reconversion + ppTempParamTypeDescr[nTempIndizes++] = pParamTypeDescr; + } + else // direct way + { + pCppArgs[nPos] = pUnoArgs[nPos]; + // no longer needed + TYPELIB_DANGER_RELEASE( pParamTypeDescr ); + } + INSERT_INT64( &(pCppArgs[nPos]), nRegs, pGPR, pStack ); + } + } + + try + { + callVirtualMethod( + pAdjustedThisPtr, aVtableSlot.index, + pCppReturn, pReturnTypeDescr, + pStackStart, (pStack - pStackStart), + pGPR, nRegs, + pFPR, nRegs ); + // NO exception occured... + *ppUnoExc = 0; + + // reconvert temporary params + for ( ; nTempIndizes--; ) + { + sal_Int32 nIndex = pTempIndizes[nTempIndizes]; + typelib_TypeDescription * pParamTypeDescr = ppTempParamTypeDescr[nTempIndizes]; + + if (pParams[nIndex].bIn) + { + if (pParams[nIndex].bOut) // inout + { + uno_destructData( pUnoArgs[nIndex], pParamTypeDescr, 0 ); // destroy uno value + uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr, + pThis->getBridge()->getCpp2Uno() ); + } + } + else // pure out + { + uno_copyAndConvertData( pUnoArgs[nIndex], pCppArgs[nIndex], pParamTypeDescr, + pThis->getBridge()->getCpp2Uno() ); + } + // destroy temp cpp param => cpp: every param was constructed + uno_destructData( pCppArgs[nIndex], pParamTypeDescr, cpp_release ); + + TYPELIB_DANGER_RELEASE( pParamTypeDescr ); + } + // return value + if (pCppReturn && pUnoReturn != pCppReturn) + { + uno_copyAndConvertData( pUnoReturn, pCppReturn, pReturnTypeDescr, + pThis->getBridge()->getCpp2Uno() ); + uno_destructData( pCppReturn, pReturnTypeDescr, cpp_release ); + } + } + catch (...) + { + // fill uno exception + fillUnoException( CPPU_CURRENT_NAMESPACE::__cxa_get_globals()->caughtExceptions, + *ppUnoExc, pThis->getBridge()->getCpp2Uno() ); + + + // temporary params + for ( ; nTempIndizes--; ) + { + sal_Int32 nIndex = pTempIndizes[nTempIndizes]; + // destroy temp cpp param => cpp: every param was constructed + uno_destructData( pCppArgs[nIndex], ppTempParamTypeDescr[nTempIndizes], cpp_release ); + TYPELIB_DANGER_RELEASE( ppTempParamTypeDescr[nTempIndizes] ); + } + // return type + if (pReturnTypeDescr) + TYPELIB_DANGER_RELEASE( pReturnTypeDescr ); + } +} +} + +namespace bridges { namespace cpp_uno { namespace shared { + +void unoInterfaceProxyDispatch( + uno_Interface * pUnoI, const typelib_TypeDescription * pMemberDescr, + void * pReturn, void * pArgs[], uno_Any ** ppException ) +{ +#ifdef CMC_DEBUG + fprintf(stderr, "unoInterfaceProxyDispatch\n"); +#endif + + + // is my surrogate + bridges::cpp_uno::shared::UnoInterfaceProxy * pThis + = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy *> (pUnoI); + + switch (pMemberDescr->eTypeClass) + { + case typelib_TypeClass_INTERFACE_ATTRIBUTE: + { + + VtableSlot aVtableSlot( + getVtableSlot( + reinterpret_cast< + typelib_InterfaceAttributeTypeDescription const * >( + pMemberDescr))); + + if (pReturn) + { + // dependent dispatch + cpp_call( + pThis, aVtableSlot, + ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef, + 0, 0, // no params + pReturn, pArgs, ppException ); + } + else + { + // is SET + typelib_MethodParameter aParam; + aParam.pTypeRef = + ((typelib_InterfaceAttributeTypeDescription *)pMemberDescr)->pAttributeTypeRef; + aParam.bIn = sal_True; + aParam.bOut = sal_False; + + typelib_TypeDescriptionReference * pReturnTypeRef = 0; + OUString aVoidName( RTL_CONSTASCII_USTRINGPARAM("void") ); + typelib_typedescriptionreference_new( + &pReturnTypeRef, typelib_TypeClass_VOID, aVoidName.pData ); + + // dependent dispatch + aVtableSlot.index += 1; //get then set method + cpp_call( + pThis, aVtableSlot, + pReturnTypeRef, + 1, &aParam, + pReturn, pArgs, ppException ); + + typelib_typedescriptionreference_release( pReturnTypeRef ); + } + + break; + } + case typelib_TypeClass_INTERFACE_METHOD: + { + + VtableSlot aVtableSlot( + getVtableSlot( + reinterpret_cast< + typelib_InterfaceMethodTypeDescription const * >( + pMemberDescr))); + switch (aVtableSlot.index) + { + // standard calls + case 1: // acquire uno interface + (*pUnoI->acquire)( pUnoI ); + *ppException = 0; + break; + case 2: // release uno interface + (*pUnoI->release)( pUnoI ); + *ppException = 0; + break; + case 0: // queryInterface() opt + { + typelib_TypeDescription * pTD = 0; + TYPELIB_DANGER_GET( &pTD, reinterpret_cast< Type * >( pArgs[0] )->getTypeLibType() ); + if (pTD) + { + uno_Interface * pInterface = 0; + (*pThis->pBridge->getUnoEnv()->getRegisteredInterface)( + pThis->pBridge->getUnoEnv(), + (void **)&pInterface, pThis->oid.pData, (typelib_InterfaceTypeDescription *)pTD ); + + if (pInterface) + { + ::uno_any_construct( + reinterpret_cast< uno_Any * >( pReturn ), + &pInterface, pTD, 0 ); + (*pInterface->release)( pInterface ); + TYPELIB_DANGER_RELEASE( pTD ); + *ppException = 0; + break; + } + TYPELIB_DANGER_RELEASE( pTD ); + } + } // else perform queryInterface() + default: + // dependent dispatch + cpp_call( + pThis, aVtableSlot, + ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pReturnTypeRef, + ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->nParams, + ((typelib_InterfaceMethodTypeDescription *)pMemberDescr)->pParams, + pReturn, pArgs, ppException ); + } + break; + } + default: + { + ::com::sun::star::uno::RuntimeException aExc( + OUString( RTL_CONSTASCII_USTRINGPARAM("illegal member type description!") ), + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >() ); + + Type const & rExcType = ::getCppuType( &aExc ); + // binary identical null reference + ::uno_type_any_construct( *ppException, &aExc, rExcType.getTypeLibType(), 0 ); + } + } +} + +} } } +/* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S new file mode 100644 index 000000000000..d5faf15eed6f --- /dev/null +++ b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.S @@ -0,0 +1,38 @@ +@ ARM support code for OpenOffice C++/UNO bridging +@ +@ Written by Peter Naulls <peter@chocky.org> +@ Modified by Caolan McNamara <caolanm@redhat.com> +@ Fixed by Michael Casadevall <mcasadevall@kubuntu.org> + +#ifdef __ARM_EABI__ +# define UNWIND +#else +# define UNWIND @ +#endif + + .file "armhelper.s" + .text + .align 4 + .global privateSnippetExecutor + .type privateSnippetExecutor, %function +privateSnippetExecutor: + UNWIND .fnstart @ start of unwinder entry + + stmfd sp!, {r0-r3} @ follow other parameters on stack + UNWIND .pad #16 @ throw this data away on exception + mov r0, ip @ r0 points to functionoffset/vtable + mov r1, sp @ r1 points to this and params + @ (see cppuno.cxx:codeSnippet()) + stmfd sp!, {r4,lr} @ save return address + @ (r4 pushed to preserve stack alignment) + UNWIND .save {r4,lr} @ restore these regs on exception + + bl cpp_vtable_call(PLT) + + add sp, sp, #4 @ no need to restore r4 (we didn't touch it) + ldr pc, [sp], #20 @ return, discarding function arguments + + UNWIND .fnend @ end of unwinder entry + + .size privateSnippetExecutor, . - privateSnippetExecutor + .section .note.GNU-stack,"",%progbits diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s b/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s deleted file mode 100644 index 8fd1a38e4f51..000000000000 --- a/bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s +++ /dev/null @@ -1,22 +0,0 @@ -@ ARM support code for OpenOffice C++/UNO bridging -@ -@ Written by Peter Naulls <peter@chocky.org> -@ Modified by Caolan McNamara <caolanm@redhat.com> - .file "armhelper.s" - .text - .align 4 - .global privateSnippetExecutor - .type privateSnippetExecutor, %function -privateSnippetExecutor: - stmfd sp!, {r0-r3} @ follow other parameters on stack - mov r0, ip @ r0 points to functionoffset/vtable - mov ip, sp @ fix up the ip - stmfd sp!, {fp,ip,lr,pc} @ 8 x 4 => stack remains 8 aligned - sub fp, ip, #4 @ set frame pointer - - add r1, sp, #16 @ r1 points to this and params - bl cpp_vtable_call(PLT) - - add sp, sp, #32 @ restore stack - ldr fp, [sp, #-32] @ restore frame pointer - ldr pc, [sp, #-24] @ return diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx index 98c213a53a83..0e801ab4433e 100644 --- a/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx @@ -76,10 +76,8 @@ namespace if (pReturnTypeDescr) { - if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr )) - { + if (!arm::return_in_hidden_param(pReturnTypeRef)) pUnoReturn = pRegisterReturn; // direct way for simple types - } else // complex return via ptr (pCppReturn) { pCppReturn = *(void **)pCppStack; @@ -410,8 +408,30 @@ extern "C" sal_Int64 cpp_vtable_call( long *pFunctionAndOffset, void **pCallStack ) { sal_Int64 nRegReturn; - cpp_mediate( pFunctionAndOffset[0], pFunctionAndOffset[1], pCallStack, + typelib_TypeClass aType = cpp_mediate( pFunctionAndOffset[0], pFunctionAndOffset[1], pCallStack, &nRegReturn ); + + switch( aType ) + { + case typelib_TypeClass_BOOLEAN: + case typelib_TypeClass_BYTE: + nRegReturn = (unsigned long)(*(unsigned char *)&nRegReturn); + break; + case typelib_TypeClass_CHAR: + case typelib_TypeClass_UNSIGNED_SHORT: + case typelib_TypeClass_SHORT: + nRegReturn = (unsigned long)(*(unsigned short *)&nRegReturn); + break; + case typelib_TypeClass_ENUM: + case typelib_TypeClass_UNSIGNED_LONG: + case typelib_TypeClass_LONG: + nRegReturn = (unsigned long)(*(unsigned int *)&nRegReturn); + break; + case typelib_TypeClass_VOID: + default: + break; + } + return nRegReturn; } @@ -422,9 +442,9 @@ namespace const int codeSnippetSize = 20; unsigned char *codeSnippet(unsigned char* code, sal_Int32 functionIndex, - sal_Int32 vtableOffset, bool simple_ret_type ) + sal_Int32 vtableOffset, bool bHasHiddenParam) { - if (!simple_ret_type) + if (bHasHiddenParam) functionIndex |= 0x80000000; unsigned long * p = (unsigned long *)code; @@ -478,24 +498,25 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( switch (member->eTypeClass) { case typelib_TypeClass_INTERFACE_ATTRIBUTE: + { + typelib_InterfaceAttributeTypeDescription *pAttrTD = + reinterpret_cast<typelib_InterfaceAttributeTypeDescription *>( member ); + // Getter: (s++)->fn = code + writetoexecdiff; code = codeSnippet( code, functionOffset++, vtableOffset, - bridges::cpp_uno::shared::isSimpleType( - reinterpret_cast< - typelib_InterfaceAttributeTypeDescription * >( - member)->pAttributeTypeRef)); + arm::return_in_hidden_param( pAttrTD->pAttributeTypeRef )); + // Setter: - if (!reinterpret_cast< - typelib_InterfaceAttributeTypeDescription * >( - member)->bReadOnly) + if (!pAttrTD->bReadOnly) { (s++)->fn = code + writetoexecdiff; code = codeSnippet( - code, functionOffset++, vtableOffset, true); + code, functionOffset++, vtableOffset, false); } break; + } case typelib_TypeClass_INTERFACE_METHOD: { (s++)->fn = code + writetoexecdiff; @@ -504,11 +525,8 @@ unsigned char * bridges::cpp_uno::shared::VtableFactory::addLocalFunctions( reinterpret_cast< typelib_InterfaceMethodTypeDescription * >(member); - bool issimple = bridges::cpp_uno::shared::isSimpleType( - pMethodTD->pReturnTypeRef); - code = codeSnippet(code, functionOffset++, vtableOffset, - issimple); + arm::return_in_hidden_param(pMethodTD->pReturnTypeRef)); break; } default: diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx index df717fe1f279..ec1e671a72ba 100644 --- a/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_arm/except.cxx @@ -162,8 +162,8 @@ namespace CPPU_CURRENT_NAMESPACE else { // try to lookup the symbol in the generated rtti map - t_rtti_map::const_iterator iFind( m_generatedRttis.find( unoName ) ); - if (iFind == m_generatedRttis.end()) + t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) ); + if (iFind2 == m_generatedRttis.end()) { // we must generate it ! // symbol and rtti-name is nearly identical, @@ -192,7 +192,7 @@ namespace CPPU_CURRENT_NAMESPACE } else // taking already generated rtti { - rtti = iFind->second; + rtti = iFind2->second; } } } diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/makefile.mk b/bridges/source/cpp_uno/gcc3_linux_arm/makefile.mk index 44c557795510..0900ec11f41f 100644 --- a/bridges/source/cpp_uno/gcc3_linux_arm/makefile.mk +++ b/bridges/source/cpp_uno/gcc3_linux_arm/makefile.mk @@ -80,5 +80,5 @@ SHL1STDLIBS= \ .INCLUDE : target.mk -$(SLO)$/%.obj: %.s +$(SLO)$/%.obj: %.S $(CXX) -c -o $(SLO)$/$(@:b).o $< -fPIC ; touch $@ diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx index cfe220abaf17..fb72c360fd45 100644 --- a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx +++ b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx @@ -89,5 +89,12 @@ namespace CPPU_CURRENT_NAMESPACE void fillUnoException( __cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno ); } + +namespace arm +{ + enum armlimits { MAX_GPR_REGS = 4 }; + bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef ); +} + #endif /* vi:set tabstop=4 shiftwidth=4 expandtab: */ diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx index 154ae52027bb..be67ed8fd830 100644 --- a/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx @@ -105,50 +105,94 @@ using namespace ::com::sun::star::uno; namespace arm { - enum armlimits { MAX_GPR_REGS = 4 }; + bool is_complex_struct(const typelib_TypeDescription * type) + { + const typelib_CompoundTypeDescription * p + = reinterpret_cast< const typelib_CompoundTypeDescription * >(type); + for (sal_Int32 i = 0; i < p->nMembers; ++i) + { + if (p->ppTypeRefs[i]->eTypeClass == typelib_TypeClass_STRUCT || + p->ppTypeRefs[i]->eTypeClass == typelib_TypeClass_EXCEPTION) + { + typelib_TypeDescription * t = 0; + TYPELIB_DANGER_GET(&t, p->ppTypeRefs[i]); + bool b = is_complex_struct(t); + TYPELIB_DANGER_RELEASE(t); + if (b) { + return true; + } + } + else if (!bridges::cpp_uno::shared::isSimpleType(p->ppTypeRefs[i]->eTypeClass)) + return true; + } + if (p->pBaseTypeDescription != 0) + return is_complex_struct(&p->pBaseTypeDescription->aBase); + return false; + } + + bool return_in_hidden_param( typelib_TypeDescriptionReference *pTypeRef ) + { + if (bridges::cpp_uno::shared::isSimpleType(pTypeRef)) + return false; + else if (pTypeRef->eTypeClass == typelib_TypeClass_STRUCT || pTypeRef->eTypeClass == typelib_TypeClass_EXCEPTION) + { + typelib_TypeDescription * pTypeDescr = 0; + TYPELIB_DANGER_GET( &pTypeDescr, pTypeRef ); + + //A Composite Type not larger than 4 bytes is returned in r0 + bool bRet = pTypeDescr->nSize > 4 || is_complex_struct(pTypeDescr); + + TYPELIB_DANGER_RELEASE( pTypeDescr ); + return bRet; + } + return true; + } } -void MapReturn(long r0, long r1, typelib_TypeClass eReturnType, void *pRegisterReturn) +void MapReturn(sal_uInt32 r0, sal_uInt32 r1, typelib_TypeDescriptionReference * pReturnType, sal_uInt32* pRegisterReturn) { #if !defined(__ARM_EABI__) && !defined(__SOFTFP__) register float fret asm("f0"); register double dret asm("f0"); #endif - switch( eReturnType ) + switch( pReturnType->eTypeClass ) { case typelib_TypeClass_HYPER: case typelib_TypeClass_UNSIGNED_HYPER: - ((long*)pRegisterReturn)[1] = r1; + pRegisterReturn[1] = r1; case typelib_TypeClass_LONG: case typelib_TypeClass_UNSIGNED_LONG: case typelib_TypeClass_ENUM: - ((long*)pRegisterReturn)[0] = r0; - break; case typelib_TypeClass_CHAR: case typelib_TypeClass_SHORT: case typelib_TypeClass_UNSIGNED_SHORT: - *(unsigned short*)pRegisterReturn = (unsigned short)r0; - break; case typelib_TypeClass_BOOLEAN: case typelib_TypeClass_BYTE: - *(unsigned char*)pRegisterReturn = (unsigned char)r0; + pRegisterReturn[0] = r0; break; case typelib_TypeClass_FLOAT: #if defined(__ARM_EABI__) || defined(__SOFTFP__) - ((long*)pRegisterReturn)[0] = r0; + pRegisterReturn[0] = r0; #else *(float*)pRegisterReturn = fret; #endif break; case typelib_TypeClass_DOUBLE: #if defined(__ARM_EABI__) || defined(__SOFTFP__) - ((long*)pRegisterReturn)[1] = r1; - ((long*)pRegisterReturn)[0] = r0; + pRegisterReturn[1] = r1; + pRegisterReturn[0] = r0; #else *(double*)pRegisterReturn = dret; #endif break; + case typelib_TypeClass_STRUCT: + case typelib_TypeClass_EXCEPTION: + { + if (!arm::return_in_hidden_param(pReturnType)) + pRegisterReturn[0] = r0; + break; + } default: break; } @@ -162,7 +206,7 @@ void callVirtualMethod( void * pThis, sal_Int32 nVtableIndex, void * pRegisterReturn, - typelib_TypeClass eReturnType, + typelib_TypeDescriptionReference * pReturnType, sal_uInt32 *pStack, sal_uInt32 nStack, sal_uInt32 *pGPR, @@ -172,7 +216,7 @@ void callVirtualMethod( void * pThis, sal_Int32 nVtableIndex, void * pRegisterReturn, - typelib_TypeClass eReturnType, + typelib_TypeDescriptionReference * pReturnType, sal_uInt32 *pStack, sal_uInt32 nStack, sal_uInt32 *pGPR, @@ -201,23 +245,10 @@ void callVirtualMethod( typedef void (*FunctionCall )( sal_uInt32, sal_uInt32, sal_uInt32, sal_uInt32); FunctionCall pFunc = (FunctionCall)pMethod; - // fill registers - __asm__ __volatile__ ( - "ldr r0, [%0, #0]\n\t" - "ldr r1, [%0, #4]\n\t" - "ldr r2, [%0, #8]\n\t" - "ldr r3, [%0, #12]\n\t" - : : "r" (pGPR) - : "r0", "r1", "r2", "r3" - ); - - // tell gcc that r0 to r3 are not available to it - register sal_uInt32 r0 asm("r0"); - register sal_uInt32 r1 asm("r1"); - register sal_uInt32 r2 asm("r2"); - register sal_uInt32 r3 asm("r3"); - - (*pFunc)(r0, r1, r2, r3); + (*pFunc)(pGPR[0], pGPR[1], pGPR[2], pGPR[3]); + + sal_uInt32 r0; + sal_uInt32 r1; // get return value __asm__ __volatile__ ( @@ -225,7 +256,7 @@ void callVirtualMethod( "mov %1, r1\n\t" : "=r" (r0), "=r" (r1) : ); - MapReturn(r0, r1, eReturnType, pRegisterReturn); + MapReturn(r0, r1, pReturnType, (sal_uInt32*)pRegisterReturn); } } @@ -312,14 +343,14 @@ static void cpp_call( void * pCppReturn = 0; // if != 0 && != pUnoReturn, needs reconversion bool bOverFlow = false; - + bool bSimpleReturn = true; if (pReturnTypeDescr) { + if (arm::return_in_hidden_param( pReturnTypeRef ) ) + bSimpleReturn = false; - if (bridges::cpp_uno::shared::isSimpleType( pReturnTypeDescr )) - { + if (bSimpleReturn) pCppReturn = pUnoReturn; // direct way for simple types - } else { // complex return via ptr @@ -390,6 +421,8 @@ static void cpp_call( case typelib_TypeClass_DOUBLE: INSERT_DOUBLE( pCppArgs[nPos], nGPR, pGPR, pStack, pStackStart, bOverFlow ); break; + default: + break; } // no longer needed TYPELIB_DANGER_RELEASE( pParamTypeDescr ); @@ -431,7 +464,7 @@ static void cpp_call( { callVirtualMethod( pAdjustedThisPtr, aVtableSlot.index, - pCppReturn, pReturnTypeDescr->eTypeClass, + pCppReturn, pReturnTypeRef, pStackStart, (pStack - pStackStart), pGPR, nGPR); @@ -504,15 +537,19 @@ void unoInterfaceProxyDispatch( // is my surrogate bridges::cpp_uno::shared::UnoInterfaceProxy * pThis = static_cast< bridges::cpp_uno::shared::UnoInterfaceProxy * >(pUnoI); +#if OSL_DEBUG_LEVEL > 0 typelib_InterfaceTypeDescription * pTypeDescr = pThis->pTypeDescr; +#endif switch (pMemberDescr->eTypeClass) { case typelib_TypeClass_INTERFACE_ATTRIBUTE: { +#if OSL_DEBUG_LEVEL > 0 // determine vtable call index sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition; OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" ); +#endif VtableSlot aVtableSlot( getVtableSlot( @@ -557,9 +594,11 @@ void unoInterfaceProxyDispatch( } case typelib_TypeClass_INTERFACE_METHOD: { +#if OSL_DEBUG_LEVEL > 0 // determine vtable call index sal_Int32 nMemberPos = ((typelib_InterfaceMemberTypeDescription *)pMemberDescr)->nPosition; OSL_ENSURE( nMemberPos < pTypeDescr->nAllMembers, "### member pos out of range!" ); +#endif VtableSlot aVtableSlot( getVtableSlot( diff --git a/bridges/source/cpp_uno/gcc3_linux_hppa/cpp2uno.cxx b/bridges/source/cpp_uno/gcc3_linux_hppa/cpp2uno.cxx index 8b37b633f59e..959452b4d985 100644 --- a/bridges/source/cpp_uno/gcc3_linux_hppa/cpp2uno.cxx +++ b/bridges/source/cpp_uno/gcc3_linux_hppa/cpp2uno.cxx @@ -61,7 +61,7 @@ namespace long r8, void ** gpreg, double *fpreg, void ** ovrflw, sal_Int64 * pRegisterReturn /* space for register return */ ) { - void ** startovrflw; + void ** startovrflw = ovrflw; int nregs = 0; //number of words passed in registers #ifdef CMC_DEBUG @@ -143,7 +143,7 @@ namespace } else { - if ((startovrflw-ovrflw) & 4) + if ((startovrflw-ovrflw) & 1) ovrflw--; pCppArgs[nPos] = pUnoArgs[nPos] = ((char*)ovrflw - 4); bOverFlowUsed = true; @@ -182,7 +182,7 @@ namespace } else { - if ((startovrflw-ovrflw) & 4) + if ((startovrflw-ovrflw) & 1) ovrflw--; pCppArgs[nPos] = pUnoArgs[nPos] = ((char*)ovrflw - 4); bOverFlowUsed = true; diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk b/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk index 50cf80654a94..d5eb2dd6e1d9 100644 --- a/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk +++ b/bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk @@ -77,8 +77,5 @@ SHL1STDLIBS= \ .INCLUDE : target.mk $(SLO)$/%.obj: %.s -#cmc: Ideally --noexecstack would be in operations, but with #i51385# pyuno -#remote bridgeing breaks -# $(CC) -Wa,--noexecstack -c -o $(SLO)$/$(@:b).o $< $(CC) -c -o $(SLO)$/$(@:b).o $< touch $@ diff --git a/bridges/source/cpp_uno/gcc3_macosx_intel/makefile.mk b/bridges/source/cpp_uno/gcc3_macosx_intel/makefile.mk index 92d575a14dfb..7bca40bbaf97 100644 --- a/bridges/source/cpp_uno/gcc3_macosx_intel/makefile.mk +++ b/bridges/source/cpp_uno/gcc3_macosx_intel/makefile.mk @@ -72,8 +72,5 @@ SHL1STDLIBS= \ .INCLUDE : target.mk $(SLO)$/%.obj: %.s -#cmc: Ideally --noexecstack would be in operations, but with #i51385# pyuno -#remote bridgeing breaks -# $(CC) -Wa,--noexecstack -c -o $(SLO)$/$(@:b).o $< $(CC) -c -o $(SLO)$/$(@:b).o $< touch $@ diff --git a/bridges/source/cpp_uno/gcc3_os2_intel/except.cxx b/bridges/source/cpp_uno/gcc3_os2_intel/except.cxx index 219c2053770b..6ba8b2e319b5 100644 --- a/bridges/source/cpp_uno/gcc3_os2_intel/except.cxx +++ b/bridges/source/cpp_uno/gcc3_os2_intel/except.cxx @@ -144,7 +144,7 @@ RTTI::~RTTI() SAL_THROW( () ) //__________________________________________________________________________________________________ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THROW( () ) { - type_info * rtti; + type_info * rtti = NULL; OUString const & unoName = *(OUString const *)&pTypeDescr->aBase.pTypeName; diff --git a/bridges/source/cpp_uno/mingw_intel/makefile.mk b/bridges/source/cpp_uno/mingw_intel/makefile.mk index a23288f9f677..2c7a8da48527 100644 --- a/bridges/source/cpp_uno/mingw_intel/makefile.mk +++ b/bridges/source/cpp_uno/mingw_intel/makefile.mk @@ -87,8 +87,5 @@ DEF1NAME= $(SHL1TARGET) .INCLUDE : target.mk $(SLO)$/%.obj: %.s -#cmc: Ideally --noexecstack would be in operations, but with #i51385# pyuno -#remote bridgeing breaks -# $(CC) -Wa,--noexecstack -c -o $(SLO)$/$(@:b).o $< $(CC) -c -o $(SLO)$/$(@:b).obj $< touch $@ diff --git a/bridges/source/jni_uno/jni_uno2java.cxx b/bridges/source/jni_uno/jni_uno2java.cxx index 99ec6e32fce2..81ae922ae717 100644 --- a/bridges/source/jni_uno/jni_uno2java.cxx +++ b/bridges/source/jni_uno/jni_uno2java.cxx @@ -848,7 +848,7 @@ void SAL_CALL UNO_proxy_dispatch( #if OSL_DEBUG_LEVEL > 0 OString cstr_msg2( OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) ); - OSL_ENSURE( 0, cstr_msg2.getStr() ); + OSL_TRACE( "%s", cstr_msg2.getStr() ); #endif } catch (::jvmaccess::VirtualMachine::AttachGuard::CreationException &) diff --git a/bridges/source/remote/urp/urp_job.hxx b/bridges/source/remote/urp/urp_job.hxx index f0e338e4728c..ce58b1f3f779 100644 --- a/bridges/source/remote/urp/urp_job.hxx +++ b/bridges/source/remote/urp/urp_job.hxx @@ -76,9 +76,6 @@ public: ~Job(); - inline void setUnmarshal( Unmarshal *p ) - { m_pUnmarshal = p; } - public: remote_Context *m_pContext; Unmarshal *m_pUnmarshal; @@ -87,7 +84,7 @@ public: ::bridges_remote::RemoteThreadCounter m_counter; }; -class ClientJob : public Job +class ClientJob : private Job { public: // pContext is null for bridge-internal UrpProtocolProperties requests @@ -123,6 +120,9 @@ public: { return m_bBridgePropertyCall; } inline sal_Bool isOneway() { return m_bOneway; } + + inline void setUnmarshal( Unmarshal *p ) + { m_pUnmarshal = p; } public: typelib_InterfaceMethodTypeDescription *m_pMethodType; typelib_InterfaceAttributeTypeDescription *m_pAttributeType; @@ -172,7 +172,7 @@ struct ServerJobEntry sal_Bool m_bIgnoreCache; }; -class ServerMultiJob : public Job +class ServerMultiJob : private Job { public: ServerMultiJob( uno_Environment *pEnvRemote, diff --git a/cppu/test/AffineBridge/AffineBridge.test.pl b/cppu/test/AffineBridge/AffineBridge.test.pl deleted file mode 100755 index 6b667efd299c..000000000000 --- a/cppu/test/AffineBridge/AffineBridge.test.pl +++ /dev/null @@ -1,72 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -my $rc = 0; -my $comment = ""; - - -@tests = ( - "EnvStack.tester :A:affine :A:affine \"-enter:A[0,not entered]-leave:A[0,not entered]\" :A:affine", # initially not entered&leave - "EnvStack.tester :affine:A :affine:A \"-enter:affine:A[1,OK]-leave:affine:A[1,OK]\" :affine", # enter - "EnvStack.tester \"\" :affine:A \"-into:affine:A[1,OK]\" :affine", # call into - "EnvStack.tester :affine :A \"-into:A[0,wrong thread]\" :affine", # call out - "EnvStack.tester \"\" :affine:affine:A \"-into:affine:affine:A[0,wrong thread]\" :affine", # wrong thread - "env.tester.bin CPP:affine" -); - -foreach $test (@tests) { - $output = ""; - - $cmd = $test; - open TESTER, $cmd . "|"; - while (<TESTER>) { - chomp; - - $output = $output . "\t" . $_ . "\n"; - } - close TESTER ; - - if ($? != 0) { - $comment = $comment . "TEST FAILED: " . $cmd . "\n"; - $comment = $comment . $output; - } - $rc = $rc + $?; -} - - -print $comment; - -if ($rc == 0) { - print "*********** SUCCESS\n"; -} -else { - print "*********** FAILURE\n"; -} diff --git a/cppu/test/AffineBridge/makefile.mk b/cppu/test/AffineBridge/makefile.mk deleted file mode 100644 index f282d05cf357..000000000000 --- a/cppu/test/AffineBridge/makefile.mk +++ /dev/null @@ -1,42 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := AffineBridge.test.pl - - -.INCLUDE : settings.mk - - -.INCLUDE : target.mk - - -ALLTAR: $(BIN)$/$(TARGET) - -$(BIN)$/$(TARGET): AffineBridge.test.pl - @+$(COPY) $^ $@ diff --git a/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx b/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx deleted file mode 100644 index 885600141255..000000000000 --- a/cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx +++ /dev/null @@ -1,131 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "sal/main.h" - -#include "cppu/EnvGuards.hxx" -#include "uno/environment.hxx" - -#include <iostream> - - -using namespace com::sun::star; - -static rtl::OUString s_message; - - -static void s_test__ctor(void) -{ - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__ctor")); - - rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno")); - - rtl::OUString current_EnvDcp; - { - cppu::EnvGuard envGuard(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")), NULL)); - - { - cppu::AntiEnvGuard antiGuard; - - current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName(); - } - } - - if (current_EnvDcp == ref) - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \"")); - s_message += current_EnvDcp; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \"")); - s_message += ref; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -static void s_test__dtor(void) -{ - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__dtor")); - - rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")); - - rtl::OUString current_EnvDcp; - { - cppu::EnvGuard envGuard(uno::Environment(ref, NULL)); - - { - cppu::AntiEnvGuard antiGuard; - } - current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName(); - } - - - if (current_EnvDcp == ref) - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \"")); - s_message += current_EnvDcp; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \"")); - s_message += ref; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - - - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - s_test__ctor(); - s_test__dtor(); - - int ret; - if (s_message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_message, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/AntiEnvGuard/makefile.mk b/cppu/test/AntiEnvGuard/makefile.mk deleted file mode 100644 index 3164ca17650d..000000000000 --- a/cppu/test/AntiEnvGuard/makefile.mk +++ /dev/null @@ -1,46 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := AntiEnvGuard.test - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/AntiEnvGuard.test.obj -APP1STDLIBS := $(CPPULIB) $(SALLIB) - - -.INCLUDE : target.mk diff --git a/cppu/test/EnvDcp/EnvDcp.test.cxx b/cppu/test/EnvDcp/EnvDcp.test.cxx deleted file mode 100644 index d9f78468ef3f..000000000000 --- a/cppu/test/EnvDcp/EnvDcp.test.cxx +++ /dev/null @@ -1,111 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "sal/main.h" - -#include "cppu/EnvDcp.hxx" - -#include <iostream> - - -static rtl::OUString s_message; - -static void s_test__getTypeName(void) -{ - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__getTypeName")); - - rtl::OUString envDcp(RTL_CONSTASCII_USTRINGPARAM("acaQEQWE123:asda:2342")); - - rtl::OUString typeName(cppu::EnvDcp::getTypeName(envDcp)); - - rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("acaQEQWE123")); - - if (typeName == ref) - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \"")); - s_message += typeName; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \"")); - s_message += ref; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -static void s_test__getPurpose(void) -{ - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__getPurpose")); - - rtl::OUString envDcp(RTL_CONSTASCII_USTRINGPARAM("acaQEQWE123:asda:2342")); - - rtl::OUString purpose(cppu::EnvDcp::getPurpose(envDcp)); - - rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM(":asda:2342")); - - if (purpose == ref) - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \"")); - s_message += purpose; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \"")); - s_message += ref; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - s_test__getTypeName(); - s_test__getPurpose(); - - int ret; - if (s_message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_message, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/EnvGuard/EnvGuard.test.cxx b/cppu/test/EnvGuard/EnvGuard.test.cxx deleted file mode 100644 index ec926fa56670..000000000000 --- a/cppu/test/EnvGuard/EnvGuard.test.cxx +++ /dev/null @@ -1,152 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "sal/main.h" - -#include "cppu/EnvGuards.hxx" -#include "uno/environment.hxx" - -#include <iostream> - - -using namespace com::sun::star; - -static rtl::OUString s_message; - - -static void s_test__entered(void) -{ - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__entered")); - - rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")); - - rtl::OUString current_EnvDcp; - { - cppu::EnvGuard envGuard(uno::Environment(ref, NULL)); - - current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName(); - } - - if (current_EnvDcp == ref) - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \"")); - s_message += current_EnvDcp; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \"")); - s_message += ref; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -static void s_test__left(void) -{ - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__left")); - - rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno")); - - rtl::OUString current_EnvDcp; - { - cppu::EnvGuard envGuard(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")), NULL)); - } - current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName(); - - - if (current_EnvDcp == ref) - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \"")); - s_message += current_EnvDcp; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \"")); - s_message += ref; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -static void s_test__clear(void) -{ - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__clear")); - - rtl::OUString ref(RTL_CONSTASCII_USTRINGPARAM("uno")); - - rtl::OUString current_EnvDcp; - { - cppu::EnvGuard envGuard(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe")), NULL)); - - envGuard.clear(); - current_EnvDcp = uno::Environment::getCurrent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).getTypeName(); - } - - - if (current_EnvDcp == ref) - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t got: \"")); - s_message += current_EnvDcp; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t expected: \"")); - s_message += ref; - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - s_test__entered(); - s_test__left(); - s_test__clear(); - - int ret; - if (s_message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_message, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/EnvGuard/makefile.mk b/cppu/test/EnvGuard/makefile.mk deleted file mode 100644 index bb851af3fb25..000000000000 --- a/cppu/test/EnvGuard/makefile.mk +++ /dev/null @@ -1,46 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := EnvGuard.test - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/EnvGuard.test.obj -APP1STDLIBS := $(CPPULIB) $(SALLIB) - - -.INCLUDE : target.mk diff --git a/cppu/test/EnvStack/EnvStack.test.pl b/cppu/test/EnvStack/EnvStack.test.pl deleted file mode 100755 index 842b2ebab5da..000000000000 --- a/cppu/test/EnvStack/EnvStack.test.pl +++ /dev/null @@ -1,89 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -my $rc = 0; -my $comment = ""; - - -@tests = ( - "EnvStack.tester \"\" \"\" \"\"", - "EnvStack.tester \":A:a\" \":A:b\" \"-enter:A-enter:A:a-out:A:a-into:A:b-leave:A:a-leave:A\"", - "EnvStack.tester \":A:B:a\" \":A:B:b\" \"-enter:A-enter:A:B-enter:A:B:a-out:A:B:a-into:A:B:b-leave:A:B:a-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C:a\" \":A:B:C:b\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:a-out:A:B:C:a-into:A:B:C:b-leave:A:B:C:a-leave:A:B:C-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C:D:a\" \":A:B:C:D:b\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-enter:A:B:C:D:a-out:A:B:C:D:a-into:A:B:C:D:b-leave:A:B:C:D:a-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\"", - "EnvStack.tester \":A:a:b\" \":A:c:d\" \"-enter:A-enter:A:a-enter:A:a:b-out:A:a:b-out:A:a-into:A:c-into:A:c:d-leave:A:a:b-leave:A:a-leave:A\"", - "EnvStack.tester \":A:B:a:b\" \":A:B:c:d\" \"-enter:A-enter:A:B-enter:A:B:a-enter:A:B:a:b-out:A:B:a:b-out:A:B:a-into:A:B:c-into:A:B:c:d-leave:A:B:a:b-leave:A:B:a-leave:A:B-leave:A\"", - "EnvStack.tester \":A\" \"\" \"-enter:A-out:A-leave:A\"", - "EnvStack.tester \":A:B\" \"\" \"-enter:A-enter:A:B-out:A:B-out:A-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C\" \"\" \"-enter:A-enter:A:B-enter:A:B:C-out:A:B:C-out:A:B-out:A-leave:A:B:C-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C:D\" \"\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-out:A:B:C:D-out:A:B:C-out:A:B-out:A-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\"", - "EnvStack.tester \"\" \":a\" \"-into:a\"", - "EnvStack.tester \"\" \":a:b\" \"-into:a-into:a:b\"", - "EnvStack.tester \"\" \":a:b:c\" \"-into:a-into:a:b-into:a:b:c\"", - "EnvStack.tester \"\" \":a:b:c:d\" \"-into:a-into:a:b-into:a:b:c-into:a:b:c:d\"", - "EnvStack.tester \":A\" \":a\" \"-enter:A-out:A-into:a-leave:A\"", - "EnvStack.tester \":A:B\" \":a:b\" \"-enter:A-enter:A:B-out:A:B-out:A-into:a-into:a:b-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C\" \":a:b:c\" \"-enter:A-enter:A:B-enter:A:B:C-out:A:B:C-out:A:B-out:A-into:a-into:a:b-into:a:b:c-leave:A:B:C-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C:D\" \":a:b:c:d\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-out:A:B:C:D-out:A:B:C-out:A:B-out:A-into:a-into:a:b-into:a:b:c-into:a:b:c:d-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\"", - "EnvStack.tester \":A\" \":A\" \"-enter:A-leave:A\"", - "EnvStack.tester \":A:B\" \":A:B\" \"-enter:A-enter:A:B-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C\" \":A:B:C\" \"-enter:A-enter:A:B-enter:A:B:C-leave:A:B:C-leave:A:B-leave:A\"", - "EnvStack.tester \":A:B:C:D\" \":A:B:C:D\" \"-enter:A-enter:A:B-enter:A:B:C-enter:A:B:C:D-leave:A:B:C:D-leave:A:B:C-leave:A:B-leave:A\"" -); - -foreach $test (@tests) { - $output = ""; - - $cmd = $test; - open TESTER, $cmd . "|"; - while (<TESTER>) { - chomp; - - $output = $output . "\t" . $_ . "\n"; - } - close TESTER ; - - if ($? != 0) { - $comment = $comment . "TEST FAILED: " . $cmd . "\n"; - $comment = $comment . $output; - } - $rc = $rc + $?; -} - - -print $comment; - -if ($rc == 0) { - print "*********** SUCCESS\n"; -} -else { - print "*********** FAILURE\n"; -} diff --git a/cppu/test/EnvStack/makefile.mk b/cppu/test/EnvStack/makefile.mk deleted file mode 100644 index 6e6990b97716..000000000000 --- a/cppu/test/EnvStack/makefile.mk +++ /dev/null @@ -1,47 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := EnvStack.test.pl - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - - -.INCLUDE : target.mk - - -ALLTAR: $(BIN)$/$(TARGET) - -$(BIN)$/$(TARGET): EnvStack.test.pl - @+$(COPY) $^ $@ diff --git a/cppu/test/EnvStack_tester/EnvStack.tester.cxx b/cppu/test/EnvStack_tester/EnvStack.tester.cxx deleted file mode 100644 index caa6660a91b6..000000000000 --- a/cppu/test/EnvStack_tester/EnvStack.tester.cxx +++ /dev/null @@ -1,200 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <iostream> - -#include "sal/main.h" - -#include "uno/lbnames.h" -#include "uno/environment.hxx" -#include "cppu/EnvDcp.hxx" -#include <com/sun/star/uno/Exception.hpp> - - -#define CPPU_test_EnvStack_tester_IMPL -#include "EnvStack.tester.hxx" - - -using namespace com::sun::star; - - -static rtl::OUString s_getCurrentEnvDcp(void) -{ - uno::Environment env(uno::Environment::getCurrent()); - rtl::OUString env_dcp(env.getTypeName()); - - return env_dcp; -} - -extern "C" { static void s_getCurrentEnvDcp_v(va_list * pParam) -{ - rtl_uString ** ppEnvDcp = va_arg(*pParam, rtl_uString **); - - rtl::OUString env_dcp(s_getCurrentEnvDcp()); - - rtl_uString_assign(ppEnvDcp, env_dcp.pData); -}} - -static rtl::OUString s_test__uno_Environment_invoke(rtl::OUString const & src_purpose, - rtl::OUString const & dst_purpose, - rtl::OUString const & ref) -{ - rtl::OUString result; - rtl::OUString target_envDcp; - - rtl::OUString src_envDcp(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)); - src_envDcp += src_purpose; - - rtl::OUString dst_envDcp(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)); - dst_envDcp += dst_purpose; - - uno::Environment cur_Env(src_envDcp.pData, NULL); - uno_Environment_enter(cur_Env.get()); - cur_Env.clear(); - - uno::Environment dst_Env(dst_envDcp.pData, NULL); - uno_Environment_invoke(dst_Env.get(), s_getCurrentEnvDcp_v, &target_envDcp.pData); - dst_Env.clear(); - - uno_Environment_enter(NULL); - - - if (cppu::EnvDcp::getPurpose(target_envDcp).equals(dst_purpose) - && g_commentStack.equals(ref)) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" PASSED\n")); - - else - { - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" FAILED -> ")); - result += target_envDcp; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\texpected: \"")); - result += ref; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tgot: \"")); - result += g_commentStack; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } - - - - return result; -} - -static rtl::OUString s_test__uno_Environment_invoke_v(va_list param) -{ - rtl::OUString const * pSrc_purpose = va_arg(param, rtl::OUString const *); - rtl::OUString const * pDst_purpose = va_arg(param, rtl::OUString const *); - rtl::OUString const * pRef = va_arg(param, rtl::OUString const *); - - - rtl::OUString result; - - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("s_test__uno_Environment_invoke_v")); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - \"")); - result += *pSrc_purpose; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" -> \"")); - result += *pDst_purpose; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"")); - - result += s_test__uno_Environment_invoke(*pSrc_purpose, *pDst_purpose, *pRef); - - return result; -} - -static rtl::OUString s_do_a_test(rtl::OUString (* pTest)(va_list), ...) -{ - rtl::OUString result; - - va_list param; - - va_start(param, pTest); - try { - result += pTest(param); - } - catch (uno::Exception & exception) - { - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" FAILED with exception: ")); - result += exception.Message; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - } - va_end(param); - - return result; -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) -{ - int result = 0; - rtl::OString message; - - if (argc >= 4 && argc <= 5) - { - rtl::OUString src_purpose(argv[1], rtl_str_getLength(argv[1]), RTL_TEXTENCODING_ASCII_US); - rtl::OUString dst_purpose(argv[2], rtl_str_getLength(argv[2]), RTL_TEXTENCODING_ASCII_US); - rtl::OUString ref (argv[3], rtl_str_getLength(argv[3]), RTL_TEXTENCODING_ASCII_US); - - if (argc == 5) - { - rtl::OUString test_env(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)); - test_env += rtl::OUString(argv[4], rtl_str_getLength(argv[4]), RTL_TEXTENCODING_ASCII_US); - g_env = uno::Environment(test_env); - } - - - message += rtl::OUStringToOString( - s_do_a_test(s_test__uno_Environment_invoke_v, &src_purpose, &dst_purpose, &ref), - RTL_TEXTENCODING_ASCII_US); - - - if (g_env.is()) - g_env.clear(); - - - if (message.indexOf(rtl::OString("FAILED")) == -1) - message += rtl::OString("TESTS PASSED\n"); - - else - { - message += rtl::OString("TESTS _NOT_ PASSED\n"); - result = -1; - } - } - else - { - message = "usage: EnvStack.tester <source purpose>" - " <destination purpose>" - " <reference string>" - " [<reference environment>]\n\n"; - } - - std::cout << message.getStr(); - - - return result; -} - diff --git a/cppu/test/EnvStack_tester/ProbeEnv.cxx b/cppu/test/EnvStack_tester/ProbeEnv.cxx deleted file mode 100644 index a6b1ce1aaac2..000000000000 --- a/cppu/test/EnvStack_tester/ProbeEnv.cxx +++ /dev/null @@ -1,148 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include "cppu/EnvDcp.hxx" - -#include "cppu/helper/purpenv/Environment.hxx" -#include "cppu/helper/purpenv/Mapping.hxx" - -#include "EnvStack.tester.hxx" - - -#define LOG_LIFECYCLE_TestEnv -#ifdef LOG_LIFECYCLE_TestEnv -# include <iostream> -# define LOG_LIFECYCLE_TestEnv_emit(x) x - -#else -# define LOG_LIFECYCLE_TestEnv_emit(x) - -#endif - - -class SAL_DLLPRIVATE TestEnv : public cppu::Enterable -{ - virtual ~TestEnv(void); - -public: - explicit TestEnv(uno_Environment * pEnv); - - uno_Environment * m_pEnv; - -protected: - virtual void v_enter(void); - virtual void v_leave(void); - - virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam); - virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list * pParam); - - virtual int v_isValid (rtl::OUString * pReason); -}; - -TestEnv::TestEnv(uno_Environment * pEnv) - : m_pEnv(pEnv) -{ - LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::TestEnv(...)", this)); -} - -TestEnv::~TestEnv(void) -{ - LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::~TestEnv(void)", this)); -} - - -static void s_checkGEnvValidity(void) -{ - if (g_env.is()) - { - rtl::OUString reason; - int result = g_env.isValid(&reason); - - g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[")); - g_commentStack += rtl::OUString::valueOf((sal_Int32)result); - g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(",")); - g_commentStack += reason; - g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("]")); - } -} - -void TestEnv::v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam) -{ - g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-into")); - g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName); - - s_checkGEnvValidity(); - - pCallee(pParam); -} - -void TestEnv::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam) -{ - g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-out")); - g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName); - - s_checkGEnvValidity(); - - pCallee(pParam); -} - -void TestEnv::v_enter(void) -{ - g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-enter")); - g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName); - - s_checkGEnvValidity(); -} - -void TestEnv::v_leave(void) -{ - g_commentStack += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-leave")); - g_commentStack += cppu::EnvDcp::getPurpose(m_pEnv->pTypeName); - - s_checkGEnvValidity(); -} - -int TestEnv::v_isValid(rtl::OUString * /*pReason*/) -{ - return 1; -} - -extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * pEnv) SAL_THROW_EXTERN_C() -{ - cppu::helper::purpenv::Environment_initWithEnterable(pEnv, new TestEnv(pEnv)); -} - -extern "C" void uno_ext_getMapping(uno_Mapping ** ppMapping, - uno_Environment * pFrom, - uno_Environment * pTo ) -{ - cppu::helper::purpenv::createMapping(ppMapping, pFrom, pTo); -} - diff --git a/cppu/test/EnvStack_tester/ProbeEnv.def b/cppu/test/EnvStack_tester/ProbeEnv.def deleted file mode 100644 index 1444d92c13fa..000000000000 --- a/cppu/test/EnvStack_tester/ProbeEnv.def +++ /dev/null @@ -1,8 +0,0 @@ -HEAPSIZE 0 -EXPORTS - uno_initEnvironment - uno_ext_getMapping - - - - diff --git a/cppu/test/EnvStack_tester/makefile.mk b/cppu/test/EnvStack_tester/makefile.mk deleted file mode 100644 index 1ae0e4e89250..000000000000 --- a/cppu/test/EnvStack_tester/makefile.mk +++ /dev/null @@ -1,126 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := EnvStack.tester - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk -.INCLUDE : ../../source/helper/purpenv/export.mk - -.IF "$(COM)" == "GCC" -LINKFLAGS += -rdynamic -.ENDIF - - -ENVINCPRE := -I$(OUT)$/inc$/$(TARGET) - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/EnvStack.tester.obj -APP1STDLIBS := $(CPPULIB) $(SALLIB) - - -SHL1TARGET := $(HLD_DLLPRE)A_uno_uno -SHL1IMPLIB := i$(SHL1TARGET) -SHL1OBJS := $(SLO)$/ProbeEnv.obj -SHL1STDLIBS := $(purpenv_helper_LIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) -.IF "$(GUI)"=="WNT" -SHL1STDLIBS += $(BIN)$/EnvStack.tester.lib -.ENDIF -SHL1DEF := ProbeEnv.def - -SHL2TARGET := $(HLD_DLLPRE)B_uno_uno -SHL2IMPLIB := i$(SHL2TARGET) -SHL2OBJS := $(SHL1OBJS) -SHL2STDLIBS := $(SHL1STDLIBS) -SHL2DEF := $(SHL1DEF) - -SHL3TARGET := $(HLD_DLLPRE)C_uno_uno -SHL3IMPLIB := i$(SHL3TARGET) -SHL3OBJS := $(SHL1OBJS) -SHL3STDLIBS := $(SHL1STDLIBS) -SHL3DEF := $(SHL1DEF) - -SHL4TARGET := $(HLD_DLLPRE)D_uno_uno -SHL4IMPLIB := i$(SHL4TARGET) -SHL4OBJS := $(SHL1OBJS) -SHL4STDLIBS := $(SHL1STDLIBS) -SHL4DEF := $(SHL1DEF) - -SHL5TARGET := $(HLD_DLLPRE)a_uno_uno -SHL5IMPLIB := i$(SHL5TARGET) -SHL5OBJS := $(SHL1OBJS) -SHL5STDLIBS := $(SHL1STDLIBS) -SHL5DEF := $(SHL1DEF) - -SHL6TARGET := $(HLD_DLLPRE)b_uno_uno -SHL6IMPLIB := i$(SHL6TARGET) -SHL6OBJS := $(SHL1OBJS) -SHL6STDLIBS := $(SHL1STDLIBS) -SHL6DEF := $(SHL1DEF) - -SHL7TARGET := $(HLD_DLLPRE)c_uno_uno -SHL7IMPLIB := i$(SHL7TARGET) -SHL7OBJS := $(SHL1OBJS) -SHL7STDLIBS := $(SHL1STDLIBS) -SHL7DEF := $(SHL1DEF) - -SHL8TARGET := $(HLD_DLLPRE)d_uno_uno -SHL8IMPLIB := i$(SHL8TARGET) -SHL8OBJS := $(SHL1OBJS) -SHL8STDLIBS := $(SHL1STDLIBS) -SHL8DEF := $(SHL1DEF) - - -.INCLUDE : target.mk - - -ALLTAR: \ - $(SHL1TARGETN) \ - $(SHL2TARGETN) \ - $(SHL3TARGETN) \ - $(SHL4TARGETN) \ - $(SHL5TARGETN) \ - $(SHL6TARGETN) \ - $(SHL7TARGETN) \ - $(SHL8TARGETN) - - -$(SHL1TARGETN) : $(APP1TARGETN) -$(SHL2TARGETN) : $(APP1TARGETN) -$(SHL3TARGETN) : $(APP1TARGETN) -$(SHL4TARGETN) : $(APP1TARGETN) -$(SHL5TARGETN) : $(APP1TARGETN) -$(SHL6TARGETN) : $(APP1TARGETN) -$(SHL7TARGETN) : $(APP1TARGETN) -$(SHL8TARGETN) : $(APP1TARGETN) diff --git a/cppu/test/Environment.test.cxx b/cppu/test/Environment.test.cxx deleted file mode 100644 index 446ffda7f545..000000000000 --- a/cppu/test/Environment.test.cxx +++ /dev/null @@ -1,75 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// Test for uno/environment.hxx respectively com::sun::star::uno::Environment - -#include "uno/environment.hxx" -#include "uno/lbnames.h" -#include "sal/main.h" - -#include <iostream> - - -using namespace com::sun::star; - -static rtl::OUString s_comment; - -static void s_test__constructor_oustring_context(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__constructor_outstring_context\n")); - - uno::Environment environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)), NULL); - - if (!environment.get()) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tcouldn't get an Environment - FAILURE\n")); -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - s_test__constructor_oustring_context(); - - - int ret; - if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/FreeReference/FreeReference.test.cxx b/cppu/test/FreeReference/FreeReference.test.cxx deleted file mode 100644 index 1d80f573b0f3..000000000000 --- a/cppu/test/FreeReference/FreeReference.test.cxx +++ /dev/null @@ -1,414 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <iostream> - -#include "sal/main.h" - -#include "uno/environment.hxx" - -#include "cppu/FreeReference.hxx" -#include "cppu/EnvGuards.hxx" - -#include "../ObjectFactory/ObjectFactory.hxx" - - - -using namespace com::sun::star; - -static rtl::OUString s_comment; -static uno::Environment s_env; - -extern "C" { -static void s_callee_in(rtl_uString * pMethod_name) -{ - rtl::OUString method_name(pMethod_name); - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_in method:\"")); - s_comment += method_name; - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: ")); - s_comment += uno::Environment::getCurrent().getTypeName(); - - if (!s_env.is()) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set")); - return; - } - - rtl::OUString reason; - int valid = s_env.isValid(&reason); - - if (valid) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: ")); - s_comment += reason; - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - } -} - -static void s_callee_out(rtl_uString * pMethod_name) -{ - rtl::OUString method_name(pMethod_name); - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\"")); - s_comment += method_name; - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: ")); - s_comment += uno::Environment::getCurrent().getTypeName(); - - if (!s_env.is()) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set")); - return; - } - - rtl::OUString reason; - int valid = s_env.isValid(&reason); - - if (!valid) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: is in\n")); - } -} -} - -static cppu::FreeReference<uno::XInterface> s_get_envObject(void) -{ - cppu::EnvGuard envGuard(s_env); - - uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_in)); - - cppu::FreeReference<uno::XInterface> env_obj(pObject, SAL_NO_ACQUIRE); - - return env_obj; -} - -static cppu::FreeReference<uno::XInterface> s_get_flatObject(void) -{ - uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_out)); - - return cppu::FreeReference<uno::XInterface>(pObject, SAL_NO_ACQUIRE); -} - - -static void s_test_operator_arrow(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_arrow:\n")); - - cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject()); - - env_obj->acquire(); - env_obj->release(); -} - - -static void s_test_operator_assign_empty_reference(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_assign_empty_reference\n")); - - cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject()); - cppu::FreeReference<uno::XInterface> empty_ref; - - flat_obj = empty_ref; -} - -static void s_test_operator_assign_inner_reference_inside(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_assign_inner_reference_inside\n")); - - cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject()); - cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject()); - - { - cppu::EnvGuard envGuard(s_env); - env_obj = flat_obj; - } -} - -static void s_test_method_clear_inner_reference_inside(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_inner_reference_inside\n")); - - cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject()); - - { - cppu::EnvGuard envGuard(s_env); - env_obj.clear(); - } -} - -static void s_test_method_clear_inner_reference_outside(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_inner_reference_outside\n")); - - cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject()); - - env_obj.clear(); -} - -static void s_test_method_clear_outer_reference_inside(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_outer_reference_inside\n")); - - cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject()); - - { - cppu::EnvGuard envGuard(s_env); - flat_obj.clear(); - } -} - -static void s_test_method_clear_outer_reference_outside(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_clear_outer_reference_outside\n")); - - cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject()); - - flat_obj.clear(); -} - -static void s_test_method_set_inside_with_inner_reference(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_inside_with_inner_reference\n")); - - cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject()); - - { - cppu::EnvGuard envGuard(s_env); - uno::XInterface * pObject2 = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_in)); - { - uno::Reference<uno::XInterface> ref(pObject2, SAL_NO_ACQUIRE); - - env_obj.set(ref); - } - } -} - -static void s_test_method_set_inside_with_outer_reference(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_inside_with_outer_reference\n")); - - cppu::FreeReference<uno::XInterface> env_obj(s_get_envObject()); - - uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_out)); - { - uno::Reference<uno::XInterface> ref(pObject, SAL_NO_ACQUIRE); - - env_obj.set(ref); - } -} - -static void s_test_method_set_with_empty_reference(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_outside_with_empty_reference\n")); - - cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject()); - - { - uno::Reference<uno::XInterface> ref; - - flat_obj.set(ref); - } -} - -static void s_test_method_set_outside_with_inner_reference(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_outside_with_inner_reference\n")); - - cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject()); - - { - cppu::EnvGuard envGuard(s_env); - - uno::XInterface * pObject2 = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_in)); - { - uno::Reference<uno::XInterface> ref(pObject2, SAL_NO_ACQUIRE); - - flat_obj.set(ref); - } - } -} - -static void s_test_method_set_outside_with_outer_reference(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_method_set_outside_with_outer_reference\n")); - - cppu::FreeReference<uno::XInterface> flat_obj(s_get_flatObject()); - - uno::XInterface * pObject2 = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_out)); - { - uno::Reference<uno::XInterface> ref(pObject2, SAL_NO_ACQUIRE); - - flat_obj.set(ref); - } -} - -static void s_test_operator_equal(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_equal\n")); - - - cppu::FreeReference<uno::XInterface> env_obj; - uno::XInterface * pObject = NULL; - { - cppu::EnvGuard envGuard(s_env); - pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_in)); - - env_obj = cppu::FreeReference<uno::XInterface>(pObject, SAL_NO_ACQUIRE); - } - - - uno::Mapping mapping(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV) ":unsafe")), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV)))); - uno::Reference<uno::XInterface> tmp; - uno::XInterface * pMappedObject = reinterpret_cast<uno::XInterface *>(mapping.mapInterface(pObject, ::getCppuType(&tmp))); - - - cppu::FreeReference<uno::XInterface> flat_obj(pMappedObject, SAL_NO_ACQUIRE); - - { - cppu::EnvGuard envGuard(s_env); - - if (!(env_obj == flat_obj)) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal inside - FAILURE\n")); - } - - if (!(env_obj == flat_obj)) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal outside - FAILURE\n")); -} - -static void s_test_operator_unequal(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_operator_unequal\n")); - - - uno::XInterface * pObject = NULL; - cppu::FreeReference<uno::XInterface> env_obj; - { - cppu::EnvGuard envGuard(s_env); - - pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_in)); - - env_obj = cppu::FreeReference<uno::XInterface>(pObject, SAL_NO_ACQUIRE); - } - - - uno::Mapping mapping(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV) ":unsafe")), - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV)))); - uno::Reference<uno::XInterface> tmp; - uno::XInterface * pMappedObject = reinterpret_cast<uno::XInterface *>(mapping.mapInterface(pObject, ::getCppuType(&tmp))); - - - cppu::FreeReference<uno::XInterface> flat_obj(pMappedObject, SAL_NO_ACQUIRE); - - { - cppu::EnvGuard envGuard(s_env); - - if (env_obj != flat_obj) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal inside - FAILURE\n")); - } - - if (env_obj != flat_obj) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\trefs are not equal outside - FAILURE\n")); -} - - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).enter(); - - s_env = uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe"))); - - - rtl::OUString result; - s_test_operator_arrow(); - s_test_operator_equal(); - s_test_operator_unequal(); - - s_test_operator_assign_empty_reference(); - s_test_operator_assign_inner_reference_inside(); - - s_test_method_set_with_empty_reference(); - s_test_method_set_inside_with_inner_reference(); - s_test_method_set_inside_with_outer_reference(); - s_test_method_set_outside_with_inner_reference(); - s_test_method_set_outside_with_outer_reference(); - - s_test_method_clear_inner_reference_inside(); - s_test_method_clear_inner_reference_outside(); - s_test_method_clear_outer_reference_inside(); - s_test_method_clear_outer_reference_outside(); - - s_env.clear(); - - - uno_Environment_enter(NULL); - - - int ret; - if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/FreeReference/makefile.mk b/cppu/test/FreeReference/makefile.mk deleted file mode 100644 index 3d9a4069718b..000000000000 --- a/cppu/test/FreeReference/makefile.mk +++ /dev/null @@ -1,55 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := FreeReference.test - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - - -.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" -ObjectFactory_LIB := -lObjectFactory.$(COMID) - -.ELSE -ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib - -.ENDIF - - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/FreeReference.test.obj -APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB) - - -.INCLUDE : target.mk diff --git a/cppu/test/IdentityMapping.test.cxx b/cppu/test/IdentityMapping.test.cxx deleted file mode 100644 index 3b232ce0461e..000000000000 --- a/cppu/test/IdentityMapping.test.cxx +++ /dev/null @@ -1,77 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// Test for uno/mapping.hxx respectively com::sun::star::uno::Mapping - - -#include <iostream> - -#include "sal/main.h" - -#include "uno/mapping.hxx" - - -using namespace com::sun::star; - -static rtl::OUString s_comment; - -static void s_test__get_identity_mapping(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__get_identity_mapping\n")); - - uno::Mapping mapping(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))), - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)))); - - if (!mapping.get()) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tcouldn't get a Mapping - FAILURE\n")); -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - s_test__get_identity_mapping(); - - - int ret; - if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/Map/Map.test.cxx b/cppu/test/Map/Map.test.cxx deleted file mode 100644 index 171d72f99f34..000000000000 --- a/cppu/test/Map/Map.test.cxx +++ /dev/null @@ -1,258 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <iostream> - -#include "sal/main.h" - -#include "uno/environment.hxx" - -#include "cppu/Map.hxx" -#include "cppu/EnvGuards.hxx" - -#include "../ObjectFactory/ObjectFactory.hxx" - - -using namespace com::sun::star; - - -static rtl::OUString s_comment; -static uno::Environment s_env; - -extern "C" { -static void s_callee_in(rtl_uString * pMethod_name) -{ - rtl::OUString method_name(pMethod_name); - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_in method:\"")); - s_comment += method_name; - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \"")); - s_comment += uno::Environment::getCurrent().getTypeName(); - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"")); - - if (!s_env.is()) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set")); - return; - } - - rtl::OUString reason; - int valid = s_env.isValid(&reason); - - if (valid) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: ")); - s_comment += reason; - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - } -} - -static void s_callee_out(rtl_uString * pMethod_name) -{ - rtl::OUString method_name(pMethod_name); - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\"")); - s_comment += method_name; - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \"")); - s_comment += uno::Environment::getCurrent().getTypeName(); - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"")); - - if (!s_env.is()) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set")); - return; - } - - rtl::OUString reason; - int valid = s_env.isValid(&reason); - - if (!valid) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: is in\n")); -} -} - -static uno::Reference<uno::XInterface> s_get_envObject(void) -{ - cppu::EnvGuard envGuard(s_env); - - uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_in)); - - return uno::Reference<uno::XInterface>(pObject, SAL_NO_ACQUIRE); -} - -static uno::XInterface * s_x_get_flatObject(void) -{ - uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_out)); - - return pObject; -} - -static uno::Reference<uno::XInterface> s_get_flatObject(void) -{ - return uno::Reference<uno::XInterface>(s_x_get_flatObject(), SAL_NO_ACQUIRE); -} - - -static void s_test__mapOut(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__mapOut:\n")); - - uno::Reference<uno::XInterface> obj; - - { - cppu::EnvGuard envGuard(s_env); - obj.set(cppu::mapOut(s_get_envObject().get(), - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))), - SAL_NO_ACQUIRE); - } - - obj->acquire(); - obj->release(); -} - -static void s_test__mapIn(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshield:\n")); - - uno::Reference<uno::XInterface> obj; - - { - cppu::EnvGuard envGuard(s_env); - uno::XInterface * pObj = s_x_get_flatObject(); - obj.set(cppu::mapIn(pObj, - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))), - SAL_NO_ACQUIRE); - - envGuard.clear(); - - pObj->release(); - } - - { - cppu::EnvGuard envGuard(s_env); - obj.clear(); - } -} - -static void s_test__mapOutAny(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__shieldAny:\n")); - - uno::Any out; - - { - cppu::EnvGuard envGuard(s_env); - uno::Any any; - any <<= s_get_envObject(); - cppu::mapOutAny(any, - &out, - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))); - } - - uno::Reference<uno::XInterface> obj; - out >>= obj; - - obj->acquire(); - obj->release(); -} - -static void s_test__mapInAny(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshieldAny:\n")); - - uno::Any out; - { - uno::Any any(s_get_flatObject()); - - { - cppu::EnvGuard envGuard(s_env); - cppu::mapInAny(any, - &out, - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))); - } - } - - { - cppu::EnvGuard envGuard(s_env); - - uno::Reference<uno::XInterface> obj; - out >>= obj; - - obj.clear(); - } -} - - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).enter(); - - s_env = uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe"))); - - s_test__mapOut(); - s_test__mapOutAny(); - s_test__mapIn(); - s_test__mapInAny(); - - s_env.clear(); - - - uno_Environment_enter(NULL); - - - int ret; - if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/Map/makefile.mk b/cppu/test/Map/makefile.mk deleted file mode 100644 index 6344efc48243..000000000000 --- a/cppu/test/Map/makefile.mk +++ /dev/null @@ -1,55 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := Map.test - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - - -.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" -ObjectFactory_LIB := -lObjectFactory.$(COMID) - -.ELSE -ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib - -.ENDIF - - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/Map.test.obj -APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB) - - -.INCLUDE : target.mk diff --git a/cppu/test/Mapping.test.cxx b/cppu/test/Mapping.test.cxx deleted file mode 100644 index 1b763dd71cf2..000000000000 --- a/cppu/test/Mapping.test.cxx +++ /dev/null @@ -1,77 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// Test for uno/mapping.hxx respectively com::sun::star::uno::Mapping - - -#include <iostream> - -#include "sal/main.h" - -#include "uno/mapping.hxx" - - -using namespace com::sun::star; - -static rtl::OUString s_comment; - -static void s_test__constructor_env_env(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__constructor_env_env\n")); - - uno::Mapping mapping(uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))), - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME)))); - - if (!mapping.get()) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tcouldn't get a Mapping - FAILURE\n")); -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - s_test__constructor_env_env(); - - - int ret; - if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/ObjectFactory/CppObject.cxx b/cppu/test/ObjectFactory/CppObject.cxx deleted file mode 100644 index 541a4172e3d8..000000000000 --- a/cppu/test/ObjectFactory/CppObject.cxx +++ /dev/null @@ -1,103 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include "cppu/EnvDcp.hxx" -#include "cppuhelper/implbase1.hxx" - -#include "com/sun/star/uno/XComponentContext.hpp" - -#include "CppObject.hxx" - - -using namespace ::com::sun::star; - - -#ifdef LOG_LIFECYCLE -#define LOG_LIFECYCLE_CppObject -#endif - -#define LOG_LIFECYCLE_CppObject -#ifdef LOG_LIFECYCLE_CppObject -# include <iostream> -# define LOG_LIFECYCLE_CppObject_emit(x) x - -#else -# define LOG_LIFECYCLE_CppObject_emit(x) - -#endif - -CppObject::CppObject(Callee * pCallee) SAL_THROW((uno::RuntimeException)) - : m_nRef (1), - m_pCallee(pCallee) -{ - LOG_LIFECYCLE_CppObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "CppObject::CppObject", this)); -} - -CppObject::~CppObject() SAL_THROW((uno::RuntimeException)) -{ - LOG_LIFECYCLE_CppObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "CppObject::~CppObject", this)); -} - -void SAL_CALL CppObject::acquire() throw () -{ - m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::acquire")).pData); - - osl_incrementInterlockedCount(&m_nRef); -} - -void SAL_CALL CppObject::release() throw () -{ - m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::release")).pData); - - if (osl_decrementInterlockedCount(&m_nRef) == 0) - delete this; -} - -uno::Any SAL_CALL CppObject::queryInterface(uno::Type const & rType ) throw (uno::RuntimeException) -{ - m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface")).pData); - - void * bla = this; - - return uno::Any(&bla, rType); -} - - -uno::XInterface * CppObject::s_create(Callee * pCallee) -{ - return new CppObject(pCallee); -} - -void CppObject::s_call(uno::XInterface * pXInterface) -{ - uno::Reference<uno::XInterface> tmp; - - pXInterface->queryInterface(::getCppuType(&tmp)); -} diff --git a/cppu/test/ObjectFactory/ObjectFactory.cxx b/cppu/test/ObjectFactory/ObjectFactory.cxx deleted file mode 100644 index d4f251d028ee..000000000000 --- a/cppu/test/ObjectFactory/ObjectFactory.cxx +++ /dev/null @@ -1,69 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#define CPPU_test_ObjectFactory_IMPL - -#include "UnoObject.hxx" -#include "CppObject.hxx" -#include "ObjectFactory.hxx" - - -using namespace com::sun::star; - - - -CPPU_test_ObjectFactory_EXPORT void * createObject(rtl::OUString const & envDcp, Callee * pCallee) -{ - void * result; - - if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))))) - result = CppObject::s_create(pCallee); - - else if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)))) - result = UnoObject_create(pCallee); - - else - abort(); - - return result; -} - -CPPU_test_ObjectFactory_EXPORT void callObject(rtl::OUString const & envDcp, void * pObject) -{ - if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))))) - CppObject::s_call(reinterpret_cast<uno::XInterface *>(pObject)); - - else if (envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)))) - UnoObject_call(reinterpret_cast<uno_Interface *>(pObject)); - - else - abort(); -} - diff --git a/cppu/test/ObjectFactory/UnoObject.cxx b/cppu/test/ObjectFactory/UnoObject.cxx deleted file mode 100644 index 9fa22c4ca52e..000000000000 --- a/cppu/test/ObjectFactory/UnoObject.cxx +++ /dev/null @@ -1,227 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include "osl/interlck.h" -#include "uno/environment.h" -#include "uno/mapping.h" -#include "uno/dispatcher.h" -#include "typelib/typedescription.h" -#include "rtl/alloc.h" -#include "com/sun/star/uno/Any.hxx" - -#include "UnoObject.hxx" -#include "callee.hxx" - - -using namespace com::sun::star; - - -#ifdef LOG_LIFECYCLE -# define LOG_LIFECYCLE_UnoObject -#endif - -#define LOG_LIFECYCLE_UnoObject -#ifdef LOG_LIFECYCLE_UnoObject -# include <iostream> -# define LOG_LIFECYCLE_UnoObject_emit(x) x - -#else -# define LOG_LIFECYCLE_UnoObject_emit(x) - -#endif - - -struct UnoObject : public uno_Interface -{ - oslInterlockedCount m_nCount; - Callee * m_pCallee; -}; - - - -static bool s_isQueryInterfaceCall(rtl_uString * pMethod, - void * pArgs[], - const sal_Char * pQueriedType) -{ - static rtl::OString aPattern("com.sun.star.uno.XInterface::queryInterface"); - - bool bIsQueryInterfaceCall = - rtl_ustr_ascii_shortenedCompare_WithLength( - rtl_uString_getStr( pMethod ), - rtl_uString_getLength( pMethod ), - aPattern.getStr(), - aPattern.getLength() ) == 0; - - if (bIsQueryInterfaceCall) - { - typelib_TypeDescriptionReference * pTDR - = *(typelib_TypeDescriptionReference **)pArgs[ 0 ]; - - bIsQueryInterfaceCall = - rtl_ustr_ascii_compare( - rtl_uString_getStr( pTDR->pTypeName ), - pQueriedType ) == 0; - } - - return bIsQueryInterfaceCall; -} - -static void s_UnoObject_delete(UnoObject * pUnoObject) -{ - LOG_LIFECYCLE_UnoObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "s_UnoObject_delete", pUnoObject)); - - rtl_freeMemory(pUnoObject); -} - - -extern "C" { -static void SAL_CALL s_UnoObject_acquire(uno_Interface * pUnoI) -{ - UnoObject * pUnoObject = (UnoObject *)pUnoI; - - pUnoObject->m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::acquire")).pData); - - osl_incrementInterlockedCount(&pUnoObject->m_nCount); -} - -static void SAL_CALL s_UnoObject_release(uno_Interface * pUnoI) -{ - UnoObject * pUnoObject = (UnoObject *)pUnoI; - - pUnoObject->m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::release")).pData); - - if (osl_decrementInterlockedCount(&pUnoObject->m_nCount) == 0) - s_UnoObject_delete(pUnoObject); -} - -static void SAL_CALL s_UnoObject_dispatch( - uno_Interface * pUnoI, - typelib_TypeDescription const * pMemberType, - void * pReturn, - void * pArgs[], - uno_Any ** ppException ) -{ - UnoObject * pUnoObject = (UnoObject *)pUnoI; - *ppException = NULL; - - pUnoObject->m_pCallee(rtl::OUString(pMemberType->pTypeName).pData); - - if (s_isQueryInterfaceCall(pMemberType->pTypeName, pArgs, "com.sun.star.uno.XInterface")) - { - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_typedescriptionreference_acquire(type_XInterface); - - uno::Any * pRet = (uno::Any *)pReturn; - pRet->pType = type_XInterface; - pRet->pData = &pRet->pReserved; - pRet->pReserved = pUnoObject; - - s_UnoObject_acquire(pUnoObject); - } - else - abort(); -} -} - -uno_Interface * UnoObject_create(Callee * pCallee) -{ - UnoObject * pUnoObject = (UnoObject *)rtl_allocateMemory(sizeof(UnoObject)); - - LOG_LIFECYCLE_UnoObject_emit(fprintf(stderr, "LIFE: %s -> %p\n", "UnoObject_create", pUnoObject)); - - pUnoObject->m_nCount = 1; - pUnoObject->m_pCallee = pCallee; - - pUnoObject->acquire = s_UnoObject_acquire; - pUnoObject->release = s_UnoObject_release; - pUnoObject->pDispatcher = s_UnoObject_dispatch; - - pUnoObject->m_pCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("UnoObject_create")).pData); - - return pUnoObject; -} - -void UnoObject_release(uno_Interface * pUnoI) -{ - pUnoI->release(pUnoI); -} - - -void UnoObject_call(uno_Interface * pUnoI) -{ - uno_Any exception; - uno_Any * pException = &exception; - - uno_Interface * pUno_XInv = NULL; - - { - typelib_TypeDescription * g_pQITD = NULL; - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0; - TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface ); - typelib_typedescriptionreference_getDescription( - &g_pQITD, pTXInterfaceDescr->ppAllMembers[ 0 ] ); - TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr ); - - - - uno_Any result; - - void * args[ 1 ]; - args[ 0 ] = &type_XInterface; - - pUnoI->pDispatcher(pUnoI, g_pQITD, &result, args, &pException); - - - typelib_TypeDescriptionReference * ret_type = result.pType; - switch (ret_type->eTypeClass) - { - case typelib_TypeClass_VOID: // common case - typelib_typedescriptionreference_release( ret_type ); - break; - case typelib_TypeClass_INTERFACE: - // tweaky... avoiding acquire/ release pair - typelib_typedescriptionreference_release( ret_type ); - pUno_XInv = (uno_Interface *) result.pReserved; // serving acquired interface - break; - default: - uno_any_destruct(&result, 0); - break; - } - } - - - pUno_XInv->release(pUno_XInv); -} diff --git a/cppu/test/ObjectFactory/empty.def b/cppu/test/ObjectFactory/empty.def deleted file mode 100644 index b191c70cf03c..000000000000 --- a/cppu/test/ObjectFactory/empty.def +++ /dev/null @@ -1,5 +0,0 @@ -HEAPSIZE 0 -EXPORTS - - - diff --git a/cppu/test/ObjectFactory/makefile.mk b/cppu/test/ObjectFactory/makefile.mk deleted file mode 100644 index 1064c760d538..000000000000 --- a/cppu/test/ObjectFactory/makefile.mk +++ /dev/null @@ -1,48 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := ObjectFactory - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - -SHL1TARGET := ObjectFactory.$(COMID) -SHL1IMPLIB := i$(SHL1TARGET) -SHL1OBJS := $(SLO)$/UnoObject.obj $(SLO)$/CppObject.obj $(SLO)$/ObjectFactory.obj -SHL1STDLIBS := $(CPPULIB) $(SALHELPERLIB) $(SALLIB) -SHL1DEF := empty.def - - -.INCLUDE : target.mk - - diff --git a/cppu/test/Shield/Shield.test.cxx b/cppu/test/Shield/Shield.test.cxx deleted file mode 100644 index d08b60e59a45..000000000000 --- a/cppu/test/Shield/Shield.test.cxx +++ /dev/null @@ -1,249 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <iostream> - -#include "sal/main.h" - -#include "uno/environment.hxx" - -#include "cppu/Shield.hxx" -#include "cppu/EnvGuards.hxx" - -#include "../ObjectFactory/ObjectFactory.hxx" - - -using namespace com::sun::star; - - -static rtl::OUString s_comment; -static uno::Environment s_env; - -extern "C" { -static void s_callee_in(rtl_uString * pMethod_name) -{ - rtl::OUString method_name(pMethod_name); - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_in method:\"")); - s_comment += method_name; - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \"")); - s_comment += uno::Environment::getCurrent().getTypeName(); - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"")); - - if (!s_env.is()) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set")); - return; - } - - rtl::OUString reason; - int valid = s_env.isValid(&reason); - - if (valid) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: ")); - s_comment += reason; - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - } -} - -static void s_callee_out(rtl_uString * pMethod_name) -{ - rtl::OUString method_name(pMethod_name); - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\ts_callee_out method:\"")); - s_comment += method_name; - - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\" env: \"")); - s_comment += uno::Environment::getCurrent().getTypeName(); - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"")); - - if (!s_env.is()) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: s_env not set")); - return; - } - - rtl::OUString reason; - int valid = s_env.isValid(&reason); - - if (!valid) - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - else - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE: is in\n")); -} -} - -static uno::Reference<uno::XInterface> s_get_envObject(void) -{ - cppu::EnvGuard envGuard(s_env); - - uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_in)); - - return uno::Reference<uno::XInterface>(pObject, SAL_NO_ACQUIRE); -} - -static uno::XInterface * s_x_get_flatObject(void) -{ - uno::XInterface * pObject = reinterpret_cast<uno::XInterface *>( - createObject(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))), - s_callee_out)); - - return pObject; -} - -static uno::Reference<uno::XInterface> s_get_flatObject(void) -{ - return uno::Reference<uno::XInterface>(s_x_get_flatObject(), SAL_NO_ACQUIRE); -} - - -static void s_test__shield(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__shield:\n")); - - uno::Reference<uno::XInterface> obj; - - { - cppu::EnvGuard envGuard(s_env); - obj.set(cppu::shield(s_get_envObject().get()), SAL_NO_ACQUIRE); - } - - obj->acquire(); - obj->release(); -} - -static void s_test__unshield(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshield:\n")); - - uno::Reference<uno::XInterface> obj; - - { - cppu::EnvGuard envGuard(s_env); - uno::XInterface * pObj = s_x_get_flatObject(); - obj.set(cppu::unshield(pObj), SAL_NO_ACQUIRE); - - envGuard.clear(); - pObj->release(); - } - - { - cppu::EnvGuard envGuard(s_env); - obj.clear(); - } -} - -static void s_test__shieldAny(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__shieldAny:\n")); - - uno::Any out; - - { - cppu::EnvGuard envGuard(s_env); - uno::Any any; - any <<= s_get_envObject(); - cppu::shieldAny(any, &out); - } - - uno::Reference<uno::XInterface> obj; - out >>= obj; - - obj->acquire(); - obj->release(); -} - -static void s_test__unshieldAny(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test__unshieldAny:\n")); - - uno::Any out; - { - uno::Any any(s_get_flatObject()); - - { - cppu::EnvGuard envGuard(s_env); - cppu::unshieldAny(any, &out); - } - } - - { - cppu::EnvGuard envGuard(s_env); - - uno::Reference<uno::XInterface> obj; - out >>= obj; - - obj.clear(); - } -} - - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO))).enter(); - - s_env = uno::Environment(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe"))); - - s_test__shield(); - s_test__shieldAny(); - s_test__unshield(); - s_test__unshieldAny(); - - s_env.clear(); - - - uno_Environment_enter(NULL); - - - int ret; - if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/Shield/makefile.mk b/cppu/test/Shield/makefile.mk deleted file mode 100644 index 119516ced695..000000000000 --- a/cppu/test/Shield/makefile.mk +++ /dev/null @@ -1,55 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := Shield.test - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - - -.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" -ObjectFactory_LIB := -lObjectFactory.$(COMID) - -.ELSE -ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib - -.ENDIF - - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/Shield.test.obj -APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB) - - -.INCLUDE : target.mk diff --git a/cppu/test/UnsafeBridge/UnsafeBridge.test.pl b/cppu/test/UnsafeBridge/UnsafeBridge.test.pl deleted file mode 100755 index b61b92013387..000000000000 --- a/cppu/test/UnsafeBridge/UnsafeBridge.test.pl +++ /dev/null @@ -1,72 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -my $rc = 0; -my $comment = ""; - - -@tests = ( - "EnvStack.tester :A:unsafe :A:unsafe \"-enter:A[0,not entered]-leave:A[0,not entered]\" :A:unsafe", # initially not entered&leave - "EnvStack.tester :unsafe:A :unsafe:A \"-enter:unsafe:A[1,OK]-leave:unsafe:A[1,OK]\" :unsafe", # enter - "EnvStack.tester \"\" :unsafe:A \"-into:unsafe:A[1,OK]\" :unsafe", # call into - "EnvStack.tester :unsafe :A \"-into:A[0,not entered]\" :unsafe", # call out - "EnvStack.tester \"\" :unsafe:affine:A \"-into:unsafe:affine:A[0,wrong thread]\" :unsafe", # wrong thread - "env.tester.bin CPP:unsafe" -); - -foreach $test (@tests) { - $output = ""; - - $cmd = $test; - open TESTER, $cmd . "|"; - while (<TESTER>) { - chomp; - - $output = $output . "\t" . $_ . "\n"; - } - close TESTER ; - - if ($? != 0) { - $comment = $comment . "TEST FAILED: " . $cmd . "\n"; - $comment = $comment . $output; - } - $rc = $rc + $?; -} - - -print $comment; - -if ($rc == 0) { - print "*********** SUCCESS\n"; -} -else { - print "*********** FAILURE\n"; -} diff --git a/cppu/test/UnsafeBridge/makefile.mk b/cppu/test/UnsafeBridge/makefile.mk deleted file mode 100644 index 33a1c5c32299..000000000000 --- a/cppu/test/UnsafeBridge/makefile.mk +++ /dev/null @@ -1,42 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := UnsafeBridge.test.pl - - -.INCLUDE : settings.mk - - -.INCLUDE : target.mk - - -ALLTAR: $(BIN)$/$(TARGET) - -$(BIN)$/$(TARGET): UnsafeBridge.test.pl - @+$(COPY) $^ $@ diff --git a/cppu/test/alignment.idl b/cppu/test/alignment.idl deleted file mode 100644 index 424c232fb14f..000000000000 --- a/cppu/test/alignment.idl +++ /dev/null @@ -1,205 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _TEST_ALIGNMENT_IDL_ -#define _TEST_ALIGNMENT_IDL_ - -#include <com/sun/star/uno/XInterface.idl> - -module test -{ -module alignment -{ - -struct C1 -{ - short n1; -}; -struct C2 : C1 -{ - long n2; -}; -struct C3 : C2 -{ - double d3; - long n3; -}; -struct C4 : C3 -{ - long n4; - double d4; -}; -struct C5 : C4 -{ - hyper n5; - boolean b5; -}; - -struct C6 : C1 -{ - C5 c; - boolean b6; -}; -struct C7 : C1 -{ - C1 c; - boolean b6; -}; -struct C8 : C1 -{ - any a; - boolean b6; -}; -struct C9 : C1 -{ - string s; - boolean b6; -}; -struct C10 : C1 -{ - float f; - boolean b6; -}; -struct C11 : C1 -{ - double d; - boolean b6; -}; -struct C12 : C1 -{ - hyper n; - boolean b6; -}; -struct C13 : C1 -{ - unsigned hyper n; - boolean b6; -}; -struct C14 : C1 -{ - ::com::sun::star::uno::XInterface x; - boolean b6; -}; - -struct C1x -{ - short sx; - double dx; -}; - -struct C6x : C1x -{ - C5 c; - boolean b6; -}; -struct C7x : C1x -{ - C1 c; - boolean b6; -}; -struct C8x : C1x -{ - any a; - boolean b6; -}; -struct C9x : C1x -{ - string s; - boolean b6; -}; -struct C10x : C1x -{ - float f; - boolean b6; -}; -struct C11x : C1x -{ - double d; - boolean b6; -}; -struct C12x : C1x -{ - hyper n; - boolean b6; -}; -struct C13x : C1x -{ - unsigned hyper n; - boolean b6; -}; -struct C14x : C1x -{ - ::com::sun::star::uno::XInterface x; - boolean b6; -}; - - -struct D -{ - short d; - long e; -}; -struct E -{ - boolean a; - boolean b; - boolean c; - short d; - long e; -}; - -struct M -{ - long n; - short o; -}; - -struct N : M -{ - short p; -}; -struct N2 -{ - M m; - short p; -}; -struct O : M -{ - double p; -}; -struct O2 : O -{ - double p2; -}; -struct P : N -{ - double p2; -}; - -}; // alignment -}; // test - -#endif diff --git a/cppu/test/alignment/diagnose.h b/cppu/test/alignment/diagnose.h deleted file mode 100644 index 1568f70adf47..000000000000 --- a/cppu/test/alignment/diagnose.h +++ /dev/null @@ -1,67 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef DIAGNOSE_H -#define DIAGNOSE_H - -#include <sal/types.h> -#include <stdio.h> - -#if defined(__GNUC__) && (defined(LINUX) || defined(FREEBSD)) && defined(INTEL) -#define ALIGNMENT(s, n) __alignof__ (s) -#else -#define ALIGNMENT(s, n) n -#endif - -#define OFFSET_OF( s, m ) ((sal_Size)((char *)&((s *)16)->m -16)) - -#define BINTEST_VERIFY( c ) \ - if (! (c)) { fprintf( stderr, "### binary compatibility test failed: " #c " [line %d]!!!\n", __LINE__ ); abort(); } - -#if OSL_DEBUG_LEVEL > 1 - -#define BINTEST_VERIFYOFFSET( s, m, n ) \ - fprintf( stderr, "> OFFSET_OF(" #s ", " #m ") = %lu\n", static_cast< unsigned long >(OFFSET_OF(s, m)) ); \ - if (OFFSET_OF(s, m) != n) { fprintf( stderr, "### OFFSET_OF(" #s ", " #m ") = %d instead of expected %d!!!\n", OFFSET_OF(s, m), n ); abort(); } -#define BINTEST_VERIFYSIZE( s, n ) \ - fprintf( stderr, "> sizeof (" #s ") = %lu\n", static_cast< unsigned long >(sizeof(s)) ); \ - if (sizeof(s) != n) { fprintf( stderr, "### sizeof(" #s ") = %d instead of expected %d!!!\n", sizeof(s), n ); abort(); } -#define BINTEST_VERIFYALIGNMENT( s, n ) \ - fprintf( stderr, "> alignment of " #s " = %d\n", ALIGNMENT(s, n) ); \ - if (ALIGNMENT(s, n) != n) { fprintf( stderr, "### alignment of " #s " = %d instead of expected %d!!!\n", ALIGNMENT(s, n), n ); abort(); } - -#else - -#define BINTEST_VERIFYOFFSET( s, m, n ) \ - if (OFFSET_OF(s, m) != n) { fprintf( stderr, "### OFFSET_OF(" #s ", " #m ") = %lu instead of expected %lu!!!\n", static_cast< unsigned long >(OFFSET_OF(s, m)), static_cast< unsigned long >(n) ); abort(); } -#define BINTEST_VERIFYSIZE( s, n ) \ - if (sizeof(s) != n) { fprintf( stderr, "### sizeof(" #s ") = %lu instead of expected %lu!!!\n", static_cast< unsigned long >(sizeof(s)), static_cast< unsigned long >(n) ); abort(); } -#define BINTEST_VERIFYALIGNMENT( s, n ) \ - if (ALIGNMENT(s, n) != n) { fprintf( stderr, "### alignment of " #s " = %d instead of expected %d!!!\n", ALIGNMENT(s, n), n ); abort(); } - -#endif - -#endif diff --git a/cppu/test/alignment/pass1.cxx b/cppu/test/alignment/pass1.cxx deleted file mode 100644 index f60446c82639..000000000000 --- a/cppu/test/alignment/pass1.cxx +++ /dev/null @@ -1,240 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include "sal/main.h" - -#include <stdio.h> -#include <vector> - -#include <rtl/string.hxx> -#include <rtl/strbuf.hxx> -#include <rtl/bootstrap.hxx> -#include <rtl/process.h> - -#include <registry/reflread.hxx> - -// starting the executable: -// -env:UNO_CFG_URL=local;<absolute_path>..\\..\\test\\cfg_data;<absolute_path>\\cfg_update -// -env:UNO_TYPES=cpputest.rdb - -#include <cppuhelper/bootstrap.hxx> - -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/registry/XRegistryKey.hpp> -#include <com/sun/star/registry/XSimpleRegistry.hpp> - -#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) ) -#define OSTR(x) ::rtl::OUStringToOString( x, RTL_TEXTENCODING_ASCII_US ) - - -using namespace ::cppu; -using namespace ::rtl; -using namespace ::osl; -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; - - -static void find_all_structs( - Reference< registry::XRegistryKey > const & xKey, - ::std::vector< OUString > * pNames ) -{ - if (xKey.is() && xKey->isValid()) - { - if (xKey->getValueType() == registry::RegistryValueType_BINARY) - { - Sequence< sal_Int8 > aBytes( xKey->getBinaryValue() ); - RegistryTypeReader aReader( - (const sal_uInt8 *)aBytes.getConstArray(), - aBytes.getLength(), sal_False ); - - switch (aReader.getTypeClass()) - { - case RT_TYPE_EXCEPTION: - case RT_TYPE_STRUCT: - pNames->push_back( aReader.getTypeName().replace( '/', '.' ) ); - break; - default: - break; - } - } - - Sequence< Reference< registry::XRegistryKey > > keys( xKey->openKeys() ); - Reference< registry::XRegistryKey > const * pKeys = keys.getConstArray(); - for ( sal_Int32 nPos = keys.getLength(); nPos--; ) - { - find_all_structs( pKeys[ nPos ], pNames ); - } - } -} - -static OString makeIncludeName( OUString const & name ) SAL_THROW( () ) -{ - return OSTR(name.replace( '.', '/' )); -} -static OString makeCppName( OUString const & name ) SAL_THROW( () ) -{ - OStringBuffer buf( 64 ); - OString str( OSTR(name) ); - sal_Int32 n = 0; - do - { - buf.append( str.getToken( 0, '.', n ) ); - if (n >= 0) - buf.append( "::" ); - } - while (n >= 0); - return buf.makeStringAndClear(); -} - -//================================================================================================== -SAL_IMPLEMENT_MAIN() -{ - sal_Int32 argc = rtl_getAppCommandArgCount(); - if (argc < 1) - { - fprintf( stderr, "usage: pass1 pass2_source [typelist_to_stdout]\n" ); - return 1; - } - - try - { - // determine types rdb - OUString rdb_name; - Bootstrap bootstrap; - if (!bootstrap.getFrom( OUSTR("UNO_TYPES"), rdb_name ) || !rdb_name.getLength()) - { - fprintf( - stderr, - "### no UNO_TYPES registry found!!!\n\n" - "usage: pass1 pass2_source [typelist_to_stdout]\n" ); - return 1; - } - - Reference< XComponentContext > xContext( defaultBootstrap_InitialComponentContext() ); - - // read out all struct names from given registry - Reference< registry::XSimpleRegistry > xSimReg( createSimpleRegistry() ); - OSL_ASSERT( xSimReg.is() ); - xSimReg->open( rdb_name, sal_True, sal_False ); - OSL_ASSERT( xSimReg->isValid() ); - Reference< registry::XRegistryKey > xKey( xSimReg->getRootKey() ); - OSL_ASSERT( xKey.is() && xKey->isValid() ); - - ::std::vector< OUString > names; - names.reserve( 128 ); - find_all_structs( xKey->openKey( OUSTR("UCR") ), &names ); - - OUString fileName; - OSL_VERIFY( osl_Process_E_None == rtl_getAppCommandArg( 0, &fileName.pData ) ); - bool bDumpStdOut = (argc > 1); - - // generate pass2 output file [and type list] - OString str( OSTR(fileName) ); - FILE * hPass2 = fopen( str.getStr(), "w" ); - OSL_ASSERT( hPass2 ); - - size_t nPos; - for ( nPos = names.size(); nPos--; ) - { - OUString const & name = names[ nPos ]; - if (bDumpStdOut) - { - // type name on stdout - OString str2( OSTR(name) ); - fprintf( stdout, "%s\n", str2.getStr() ); - } - // all includes - OString includeName( makeIncludeName( name ) ); - fprintf( hPass2, "#include <%s.hdl>\n", includeName.getStr() ); - } - // include diagnose.h - fprintf( - hPass2, - "\n#include <diagnose.h>\n" - "#include \"sal/main.h\"\n\n" - "SAL_IMPLEMENT_MAIN()\n{\n" ); - // generate all type checks - for ( nPos = names.size(); nPos--; ) - { - OUString const & name = names[ nPos ]; - typelib_TypeDescription * pTD = 0; - typelib_typedescription_getByName( &pTD, name.pData ); - if (pTD) - { - if (! pTD->bComplete) - { - typelib_typedescription_complete( &pTD ); - } - typelib_CompoundTypeDescription * pCTD = (typelib_CompoundTypeDescription *)pTD; - - OString cppName( makeCppName( name ) ); - fprintf( - hPass2, "\tBINTEST_VERIFYSIZE( %s, %ld );\n", - cppName.getStr(), static_cast< long >(pTD->nSize) ); - fprintf( - hPass2, "\tBINTEST_VERIFYALIGNMENT( %s, %ld );\n", - cppName.getStr(), static_cast< long >(pTD->nAlignment) ); - // offset checks - for ( sal_Int32 nPos2 = pCTD->nMembers; nPos2--; ) - { - OString memberName( OSTR(pCTD->ppMemberNames[ nPos2 ]) ); - fprintf( - hPass2, "\tBINTEST_VERIFYOFFSET( %s, %s, %ld );\n", - cppName.getStr(), memberName.getStr(), - static_cast< long >(pCTD->pMemberOffsets[ nPos2 ]) ); - } - typelib_typedescription_release( pTD ); - } - else - { - OString str2( OSTR(name) ); - fprintf( stderr, "### cannot dump type %s!!!\n", str2.getStr() ); - } - } - fprintf( - hPass2, - "\n\tfprintf( stdout, \"> alignment test succeeded.\\n\" );\n" - "\treturn 0;\n}\n\n" ); - fclose( hPass2 ); - - Reference< lang::XComponent > xComp( xContext, UNO_QUERY ); - if (xComp.is()) - { - xComp->dispose(); - } - return 0; - } - catch (Exception & exc) - { - OString str( OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) ); - ::fprintf( stderr, "# caught exception: %s\n", str.getStr() ); - return 1; - } -} diff --git a/cppu/test/cascade_mapping/TestMapping.cxx b/cppu/test/cascade_mapping/TestMapping.cxx deleted file mode 100644 index 724946c5b8c0..000000000000 --- a/cppu/test/cascade_mapping/TestMapping.cxx +++ /dev/null @@ -1,194 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "osl/interlck.h" -#include "uno/dispatcher.h" -#include "uno/mapping.hxx" - -#include "TestProxy.hxx" - - -#ifdef LOG_LIFECYCLE -#define LOG_LIFECYCLE_TestMapping -#endif - -#define LOG_LIFECYCLE_TestMapping -#ifdef LOG_LIFECYCLE_TestMapping -# include <iostream> -# define LOG_LIFECYCLE_TestMapping_emit(x) x - -#else -# define LOG_LIFECYCLE_TestMapping_emit(x) - -#endif - - -class SAL_DLLPRIVATE TestMapping : public uno_Mapping -{ -private: - oslInterlockedCount m_nCount; - uno_ExtEnvironment * m_pFrom; - uno_ExtEnvironment * m_pTo; - -public: - explicit TestMapping(uno_Environment * pFrom, uno_Environment * pTo); - ~TestMapping(void); - - void acquire() SAL_THROW(()); - void release() SAL_THROW(()); - - void SAL_CALL mapInterface(uno_Interface ** ppOut, - uno_Interface * pUnoI, - typelib_InterfaceTypeDescription * pTypeDescr - ) - SAL_THROW_EXTERN_C(); -}; - - -extern "C" { -static void SAL_CALL s_mapInterface( - uno_Mapping * pMapping, - void ** ppOut, - void * pUnoI, - typelib_InterfaceTypeDescription * pTypeDescr ) - SAL_THROW_EXTERN_C() -{ - TestMapping * pTestMapping = static_cast<TestMapping *>(pMapping); - pTestMapping->mapInterface((uno_Interface **)ppOut, (uno_Interface *)pUnoI, pTypeDescr); -} - - -static void SAL_CALL s_acquire(uno_Mapping * pMapping) SAL_THROW_EXTERN_C() -{ - TestMapping * pTestMapping = static_cast<TestMapping *>(pMapping); - pTestMapping->acquire(); -} - - -static void SAL_CALL s_release(uno_Mapping * pMapping) SAL_THROW_EXTERN_C() -{ - TestMapping * pTestMapping = static_cast<TestMapping * >(pMapping); - pTestMapping->release(); -} - -static void SAL_CALL s_free(uno_Mapping * pMapping) SAL_THROW_EXTERN_C() -{ - TestMapping * pTestMapping = static_cast<TestMapping * >(pMapping); - delete pTestMapping; -} -} - -TestMapping::TestMapping(uno_Environment * pFrom, uno_Environment * pTo) - SAL_THROW( () ) - : m_nCount(1), - m_pFrom(reinterpret_cast<uno_ExtEnvironment *>(pFrom)), - m_pTo (reinterpret_cast<uno_ExtEnvironment *>(pTo)) -{ - LOG_LIFECYCLE_TestMapping_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestMapping::TestMapping", this)); - - m_pFrom->aBase.acquire(&m_pFrom->aBase); - m_pTo ->aBase.acquire(&m_pTo ->aBase); - - uno_Mapping::acquire = s_acquire; - uno_Mapping::release = s_release; - uno_Mapping::mapInterface = s_mapInterface; -} - -TestMapping::~TestMapping(void) -{ - LOG_LIFECYCLE_TestMapping_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestMapping::~TestMapping", this)); - - m_pFrom->aBase.release(&m_pFrom->aBase); - m_pTo ->aBase.release(&m_pTo ->aBase); -} - - -void TestMapping::acquire() SAL_THROW(()) -{ - if (osl_incrementInterlockedCount(&m_nCount) == 1) - { - uno_Mapping * pMapping = this; - - ::uno_registerMapping(&pMapping, s_free, &m_pFrom->aBase, &m_pTo->aBase, NULL); - } -} - -void TestMapping::release() SAL_THROW(()) -{ - if (osl_decrementInterlockedCount(&m_nCount) == 0) - ::uno_revokeMapping(this); -} - - -void SAL_CALL TestMapping::mapInterface( - uno_Interface ** ppOut, - uno_Interface * pUnoI, - typelib_InterfaceTypeDescription * pTypeDescr ) - SAL_THROW_EXTERN_C() -{ - // get object id of uno interface to be wrapped - rtl_uString * pOId = 0; - m_pFrom->getObjectIdentifier(m_pFrom, &pOId, pUnoI); - - OSL_ASSERT(pOId); - - if (*ppOut) - { - (*ppOut)->release(*ppOut); - *ppOut = 0; - } - - // try to get any known interface from target environment - m_pTo->getRegisteredInterface(m_pTo, (void **)ppOut, pOId, pTypeDescr); - if (!*ppOut) // not yet there, register new proxy interface - { - // try to publish a new proxy (ref count initially 1) - TestProxy * pTestProxy = new TestProxy(pUnoI, pOId, pTypeDescr, m_pTo, m_pFrom); - - // proxy may be exchanged during registration - m_pTo->registerProxyInterface(m_pTo,(void **)&pTestProxy, TestProxy_free, pOId, pTypeDescr); - - *ppOut = pTestProxy; - } - - rtl_uString_release(pOId); -} - - -extern "C" void SAL_DLLPUBLIC_EXPORT SAL_CALL uno_initEnvironment(uno_Environment * /*pEnv*/) - SAL_THROW_EXTERN_C() -{ -} - -extern "C" void uno_ext_getMapping(uno_Mapping ** ppMapping, - uno_Environment * pFrom, - uno_Environment * pTo ) -{ - *ppMapping = new TestMapping(pFrom, pTo); - - ::uno_registerMapping(ppMapping, s_free, pFrom, pTo, NULL); -} diff --git a/cppu/test/cascade_mapping/TestMapping.def b/cppu/test/cascade_mapping/TestMapping.def deleted file mode 100644 index e8b4824657f9..000000000000 --- a/cppu/test/cascade_mapping/TestMapping.def +++ /dev/null @@ -1,11 +0,0 @@ -LIBRARY cppu3 -DESCRIPTION 'StarView 3.00 680 m124' -DATA READ WRITE SHARED -HEAPSIZE 0 -EXPORTS - uno_initEnvironment - uno_ext_getMapping - - - - diff --git a/cppu/test/cascade_mapping/TestProxy.cxx b/cppu/test/cascade_mapping/TestProxy.cxx deleted file mode 100644 index d72e11c2ecab..000000000000 --- a/cppu/test/cascade_mapping/TestProxy.cxx +++ /dev/null @@ -1,179 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "uno/mapping.hxx" -#include "cppu/EnvDcp.hxx" - -#include "../mapping_tester/Mapping.tester.hxx" - -#include "TestProxy.hxx" - - -#ifdef LOG_LIFECYCLE -#define LOG_LIFECYCLE_TestProxy -#endif - -#define LOG_LIFECYCLE_TestProxy -#ifdef LOG_LIFECYCLE_TestProxy -# include <iostream> -# define LOG_LIFECYCLE_TestProxy_emit(x) x - -#else -# define LOG_LIFECYCLE_TestProxy_emit(x) - -#endif - - -using namespace com::sun::star; - -extern "C" void SAL_CALL TestProxy_free(uno_ExtEnvironment * /*pEnv*/, void * pObject) - SAL_THROW_EXTERN_C() -{ - TestProxy * pTestProxy = reinterpret_cast<TestProxy *>(pObject); - delete pTestProxy; -} - - -extern "C" { -static void SAL_CALL s_acquire(uno_Interface * pUnoI) SAL_THROW_EXTERN_C() -{ - TestProxy * pTestProxy = static_cast<TestProxy *>(pUnoI); - pTestProxy->acquire(); -} - -static void SAL_CALL s_release(uno_Interface * pUnoI) SAL_THROW_EXTERN_C() -{ - TestProxy * pTestProxy = static_cast<TestProxy *>(pUnoI); - pTestProxy->release(); -} - -static void SAL_CALL s_dispatch(uno_Interface * pUnoI, - typelib_TypeDescription const * pMemberType, - void * pReturn, - void * pArgs[], - uno_Any ** ppException) - SAL_THROW_EXTERN_C() -{ - TestProxy * pThis = static_cast<TestProxy *>(pUnoI); - pThis->dispatch(pMemberType, pReturn, pArgs, ppException); -} -} - -TestProxy::TestProxy(uno_Interface * pObject, - rtl::OUString const & oid, - typelib_InterfaceTypeDescription * pTypeDescr, - uno_ExtEnvironment * pFrom_extEnv, - uno_ExtEnvironment * pTo_extEnv) - : m_nCount (1), - m_from_envDcp(pFrom_extEnv->aBase.pTypeName), - m_to_envDcp (pTo_extEnv ->aBase.pTypeName), - m_oid (oid), - m_pTypeDescr (pTypeDescr) -{ - LOG_LIFECYCLE_TestProxy_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestProxy::TestProxy", this)); - - // uno_Interface - uno_Interface::acquire = s_acquire; - uno_Interface::release = s_release; - uno_Interface::pDispatcher = s_dispatch; - - m_theObject = pObject; - m_theObject->acquire(m_theObject); - - typelib_typedescription_acquire(&pTypeDescr->aBase); - - m_pFrom_extEnv = pFrom_extEnv; - m_pFrom_extEnv->aBase.acquire(&m_pFrom_extEnv->aBase); - - m_pTo_extEnv = pTo_extEnv; - m_pTo_extEnv->aBase.acquire(&m_pTo_extEnv->aBase); - - m_pTo_extEnv->registerInterface(m_pTo_extEnv, reinterpret_cast<void **>(&pObject), oid.pData, pTypeDescr); -} - -TestProxy::~TestProxy(void) -{ - LOG_LIFECYCLE_TestProxy_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestProxy::~TestProxy", this)); - - m_pTo_extEnv->revokeInterface(m_pTo_extEnv, reinterpret_cast<void *>(m_theObject)); - - typelib_typedescription_release(&m_pTypeDescr->aBase); - m_theObject->release(m_theObject); - m_pFrom_extEnv->aBase.release(&m_pFrom_extEnv->aBase); - m_pTo_extEnv ->aBase.release(&m_pTo_extEnv->aBase); -} - -void TestProxy::acquire() SAL_THROW(()) -{ - if (osl_incrementInterlockedCount(&m_nCount) == 1) - { - uno_Interface * pThis = this; - m_pTo_extEnv->registerProxyInterface(m_pTo_extEnv, - (void **)&pThis, - TestProxy_free, - m_oid.pData, - m_pTypeDescr); - OSL_ASSERT(pThis == this); - } -} - -void TestProxy::release() SAL_THROW(()) -{ - if (osl_decrementInterlockedCount(&m_nCount) == 0) - { - m_pFrom_extEnv->revokeInterface(m_pFrom_extEnv, this); - } -} - -void TestProxy::dispatch(typelib_TypeDescription const * pMemberType, - void * pReturn, - void * pArgs[], - uno_Any ** ppException) -{ - { - rtl::OUString arrow(RTL_CONSTASCII_USTRINGPARAM("-->")); - - if (!g_custom.getLength()) - g_custom += m_from_envDcp; - - g_custom += arrow; - g_custom += m_to_envDcp; - - m_theObject->pDispatcher(m_theObject, pMemberType, pReturn, pArgs, ppException); - - uno_Any * any = (uno_Any *)pReturn; - - void * pout = NULL; - - uno::Mapping mapping(m_to_envDcp, m_from_envDcp); - mapping.mapInterface(&pout, any->pReserved, any->pType); - - ((uno_Interface *)any->pReserved)->release((uno_Interface*)any->pReserved); - any->pReserved = pout; - } -} - diff --git a/cppu/test/cascade_mapping/TestProxy.hxx b/cppu/test/cascade_mapping/TestProxy.hxx deleted file mode 100644 index 3dae15ee8620..000000000000 --- a/cppu/test/cascade_mapping/TestProxy.hxx +++ /dev/null @@ -1,70 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef INCLUDED_TestProxy_hxx -#define INCLUDED_TestProxy_hxx - -#include "osl/interlck.h" -#include "uno/dispatcher.h" -#include "uno/environment.hxx" - - -extern "C" void SAL_CALL TestProxy_free(uno_ExtEnvironment * pEnv, void * pObject) SAL_THROW_EXTERN_C(); - - -class SAL_DLLPRIVATE TestProxy : public uno_Interface -{ -private: - uno_Interface * m_theObject; - uno_ExtEnvironment * m_pFrom_extEnv; - uno_ExtEnvironment * m_pTo_extEnv; - oslInterlockedCount m_nCount; - rtl::OUString m_from_envDcp; - rtl::OUString m_to_envDcp; - rtl::OUString m_oid; - typelib_InterfaceTypeDescription * m_pTypeDescr; - -public: - explicit TestProxy(uno_Interface * pObject, - rtl::OUString const & oid, - typelib_InterfaceTypeDescription * pTypeDescr, - uno_ExtEnvironment * pFrom_env, - uno_ExtEnvironment * pExtEnvironment); - ~TestProxy(void); - - - void acquire() SAL_THROW(()); - void release() SAL_THROW(()); - - void dispatch(typelib_TypeDescription const * pMemberType, - void * pReturn, - void * pArgs[], - uno_Any ** ppException); -}; - - -#endif diff --git a/cppu/test/cascade_mapping/cascade_mapping.test.pl b/cppu/test/cascade_mapping/cascade_mapping.test.pl deleted file mode 100755 index 265010a56abb..000000000000 --- a/cppu/test/cascade_mapping/cascade_mapping.test.pl +++ /dev/null @@ -1,91 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -my $rc = 0; -my $comment = ""; - - -@tests=( -"mapping.tester uno:test uno -s path.test \"uno:test-->uno\"", -"mapping.tester uno uno:test -s path.test \"uno-->uno:test\"", -"mapping.tester uno:test:bla uno -s path.test \"uno:test:bla-->uno:test-->uno\"", -"mapping.tester uno uno:test:bla -s path.test \"uno-->uno:test-->uno:test:bla\"", -"mapping.tester uno:test:bla:blubb uno -s path.test \"uno:test:bla:blubb-->uno:test:bla-->uno:test-->uno\"", -"mapping.tester uno uno:test:bla:blubb -s path.test \"uno-->uno:test-->uno:test:bla-->uno:test:bla:blubb\"", -"mapping.tester uno:bla uno:test -s path.test \"uno:bla-->uno-->uno:test\"", -"mapping.tester uno:test uno:bla -s path.test \"uno:test-->uno-->uno:bla\"", -"mapping.tester uno:test:blubb uno:bla -s path.test \"uno:test:blubb-->uno:test-->uno-->uno:bla\"", -"mapping.tester uno:test uno:bla:blubb -s path.test \"uno:test-->uno-->uno:bla-->uno:bla:blubb\"", -"mapping.tester uno:test:bla uno:test:blubb -s path.test \"uno:test:bla-->uno:test-->uno:test:blubb\"", -"mapping.tester CPP:bla uno -s path.test \"CPP:bla-->uno:bla-->uno\"", -"mapping.tester uno CPP:bla -s path.test \"uno-->uno:bla-->CPP:bla\"", -"mapping.tester CPP uno:bla -s path.test \"CPP-->uno-->uno:bla\"", -"mapping.tester CPP:bla uno:blubb -s path.test \"CPP:bla-->uno:bla-->uno-->uno:blubb\"", -"mapping.tester CPP:test:bla uno:test:blubb -s path.test \"CPP:test:bla-->uno:test:bla-->uno:test-->uno:test:blubb\"", -"mapping.tester CPP:bla CPP -s path.test \"CPP:bla-->uno:bla-->uno-->CPP\"", -"mapping.tester CPP CPP:bla -s path.test \"CPP-->uno-->uno:bla-->CPP:bla\"", -"mapping.tester CPP:bla:test CPP -s path.test \"CPP:bla:test-->uno:bla:test-->uno:bla-->uno-->CPP\"", -"mapping.tester CPP CPP:bla:test -s path.test \"CPP-->uno-->uno:bla-->uno:bla:test-->CPP:bla:test\"", -"mapping.tester CPP:bla CPP:blubb -s path.test \"CPP:bla-->uno:bla-->uno-->uno:blubb-->CPP:blubb\"", -"mapping.tester CPP:test:bla CPP:blubb -s path.test \"CPP:test:bla-->uno:test:bla-->uno:test-->uno-->uno:blubb-->CPP:blubb\"", -"mapping.tester CPP:bla CPP:test:blubb -s path.test \"CPP:bla-->uno:bla-->uno-->uno:test-->uno:test:blubb-->CPP:test:blubb\"", -"mapping.tester CPP:bae:bla CPP:test:blubb -s path.test \"CPP:bae:bla-->uno:bae:bla-->uno:bae-->uno-->uno:test-->uno:test:blubb-->CPP:test:blubb\"", -"mapping.tester CPP:test:bla CPP:test:blubb -s path.test \"CPP:test:bla-->uno:test:bla-->uno:test-->uno:test:blubb-->CPP:test:blubb\"" -); - -foreach $test (@tests) { - $output = ""; - - $cmd = $test; - open TESTER, $cmd . "|"; - while (<TESTER>) { - chomp; - - $output = $output . "\t" . $_ . "\n"; - } - close TESTER ; - - if ($? != 0) { - $comment = $comment . "TEST FAILED: " . $cmd . "\n"; - $comment = $comment . $output; - } - $rc = $rc + $?; -} - - -print $comment; - -if ($rc == 0) { - print "*********** SUCCESS\n"; -} -else { - print "*********** FAILURE\n"; -} diff --git a/cppu/test/cascade_mapping/makefile.mk b/cppu/test/cascade_mapping/makefile.mk deleted file mode 100644 index 1d5434a6b940..000000000000 --- a/cppu/test/cascade_mapping/makefile.mk +++ /dev/null @@ -1,90 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := cascade_mappping.test.pl - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE - - -.INCLUDE : settings.mk - -CFLAGS += -fPIC - -VERSIONOBJ := # NO GetVersionInfo symbols :-) -ENVINCPRE := -I$(OUT)$/inc$/$(TARGET) - -HLD_DLLPRE := $(DLLPRE) -DLLPRE := - - -SHL1TARGET := path.test -SHL1IMPLIB := i$(SHL1TARGET) -SHL1OBJS := $(OBJ)$/path.test.obj -SHL1DEF := path.test.def -SHL1STDLIBS := $(CPPUHELPERLIB) $(CPPULIB) $(SALLIB) -.IF "$(GUI)"=="WNT" -SHL1STDLIBS += $(BIN)$/mapping.tester.lib -.ENDIF - -SHL2TARGET := $(HLD_DLLPRE)bla_uno_uno -SHL2IMPLIB := i$(SHL2TARGET) -SHL2OBJS := $(SLO)$/TestMapping.obj $(SLO)$/TestProxy.obj -SHL2STDLIBS := $(CPPULIB) $(SALHELPERLIB) $(SALLIB) -SHL2DEF := TestMapping.def -.IF "$(GUI)"=="WNT" -SHL2STDLIBS += $(BIN)$/mapping.tester.lib -.ENDIF - -SHL3TARGET := $(HLD_DLLPRE)blubb_uno_uno -SHL3IMPLIB := i$(SHL3TARGET) -SHL3OBJS := $(SHL2OBJS) -SHL3STDLIBS := $(SHL2STDLIBS) -SHL3DEF := $(SHL2DEF) - -SHL4TARGET := $(HLD_DLLPRE)bae_uno_uno -SHL4IMPLIB := i$(SHL4TARGET) -SHL4OBJS := $(SHL2OBJS) -SHL4STDLIBS := $(SHL2STDLIBS) -SHL4DEF := $(SHL2DEF) - -SHL5TARGET := $(HLD_DLLPRE)test_uno_uno -SHL5IMPLIB := i$(SHL5TARGET) -SHL5OBJS := $(SHL2OBJS) -SHL5STDLIBS := $(SHL2STDLIBS) -SHL5DEF := $(SHL2DEF) - - -.INCLUDE : target.mk - - -ALLTAR: $(BIN)$/$(TARGET) - -$(BIN)$/$(TARGET): cascade_mapping.test.pl - @+$(COPY) $^ $@ diff --git a/cppu/test/cascade_mapping/path.test.cxx b/cppu/test/cascade_mapping/path.test.cxx deleted file mode 100644 index 1b2ddb1ebdfe..000000000000 --- a/cppu/test/cascade_mapping/path.test.cxx +++ /dev/null @@ -1,60 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "rtl/ustring.hxx" - -#include "../mapping_tester/Mapping.tester.hxx" - - -D_CALLEE -{ - rtl::OUString const method_name(pMethod_name); - - if (g_check) - { - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tmethod: ")); - g_result += method_name; - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - mapping purpose path test --> ")); - - if (g_ref.compareTo(g_custom) == 0) - { - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - } - else - { - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\t\texpected: ")); - g_result += g_ref; - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\t\t got: ")); - g_result += g_custom; - g_result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - } - } -} - diff --git a/cppu/test/cascade_mapping/path.test.def b/cppu/test/cascade_mapping/path.test.def deleted file mode 100644 index ab7d8b00c62c..000000000000 --- a/cppu/test/cascade_mapping/path.test.def +++ /dev/null @@ -1,8 +0,0 @@ -LIBRARY cppu3 -DESCRIPTION 'StarView 3.00 680 m124' -DATA READ WRITE SHARED -HEAPSIZE 0 -EXPORTS - CALLEE - - diff --git a/cppu/test/cpputest.idl b/cppu/test/cpputest.idl deleted file mode 100644 index 89302cb02585..000000000000 --- a/cppu/test/cpputest.idl +++ /dev/null @@ -1,94 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _TEST_CPPUTEST_IDL_ -#define _TEST_CPPUTEST_IDL_ - -#include <com/sun/star/uno/XInterface.idl> -#include <com/sun/star/uno/TypeClass.idl> - -module test -{ - -struct Test1 -{ - short nInt16; - double dDouble; - boolean bBool; -}; - -struct Test2 -{ - short nInt16; - Test1 aTest1; -}; - -typedef Test1 TdTest1; - -struct Test3 -{ - byte nInt8; - float nFloat; - double nDouble; - short nInt16; - string aString; - unsigned short nuInt16; - hyper nInt64; - long nInt32; - unsigned hyper nuInt64; - unsigned long nuInt32; - com::sun::star::uno::TypeClass eType; - char wChar; - TdTest1 td; - boolean bBool; - any aAny; -}; - - -struct Base -{ - long n; - short o; -}; - -struct Base1 : Base -{ - short p; -}; - -struct Base2 : Base1 -{ - double p2; -}; - -interface XSimpleInterface : com::sun::star::uno::XInterface -{ - void method(); -}; - -}; //module test - -#endif diff --git a/cppu/test/env_substs/env_subst.test.cxx b/cppu/test/env_substs/env_subst.test.cxx deleted file mode 100644 index 585fcbf02d8a..000000000000 --- a/cppu/test/env_substs/env_subst.test.cxx +++ /dev/null @@ -1,95 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "sal/main.h" - -#include "uno/environment.hxx" - -#include <iostream> - - -using namespace com::sun::star; - -static rtl::OUString s_comment; - -static void s_test_substituting(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_substituting\n")); - - putenv(strdup("UNO_ENV_SUBST:uno:unsafe=uno:affine")); - - uno::Environment env(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:unsafe"))); - if (!env.getTypeName().equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:affine")))) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE - expected \"uno:affine\" instead of \"")); - s_comment += env.getTypeName(); - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -static void s_test_not_substituting(void) -{ - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_not_substituting\n")); - - putenv(strdup("UNO_ENV_SUBST:uno:unsafe=uno:affine")); - - uno::Environment env(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:affine"))); - if (!env.getTypeName().equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("uno:affine")))) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE - expected \"uno:affine\" instead of \"")); - s_comment += env.getTypeName(); - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\"\n")); - } -} - -SAL_IMPLEMENT_MAIN_WITH_ARGS(/*argc*/, argv) -{ - s_test_substituting(); - s_test_not_substituting(); - - - int ret; - if (s_comment.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - s_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - - std::cerr - << argv[0] - << std::endl - << rtl::OUStringToOString(s_comment, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} - diff --git a/cppu/test/env_substs/makefile.mk b/cppu/test/env_substs/makefile.mk deleted file mode 100644 index 58564ba8cce2..000000000000 --- a/cppu/test/env_substs/makefile.mk +++ /dev/null @@ -1,46 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := env_subst.test - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk - - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/env_subst.test.obj -APP1STDLIBS := $(CPPULIB) $(SALLIB) - - -.INCLUDE : target.mk diff --git a/cppu/test/env_tester/TestEnvironment.cxx b/cppu/test/env_tester/TestEnvironment.cxx deleted file mode 100644 index f91f78659316..000000000000 --- a/cppu/test/env_tester/TestEnvironment.cxx +++ /dev/null @@ -1,37 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include "uno/environment.h" - - -extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * /*pEnv*/) - SAL_THROW_EXTERN_C() -{ -} diff --git a/cppu/test/env_tester/TestEnvironment.def b/cppu/test/env_tester/TestEnvironment.def deleted file mode 100644 index f59a32c4a174..000000000000 --- a/cppu/test/env_tester/TestEnvironment.def +++ /dev/null @@ -1,7 +0,0 @@ -LIBRARY cppu3 -DESCRIPTION 'StarView 3.00 680 m124' -DATA READ WRITE SHARED -HEAPSIZE 0 -EXPORTS - uno_initEnvironment - diff --git a/cppu/test/env_tester/env.tester.cxx b/cppu/test/env_tester/env.tester.cxx deleted file mode 100644 index fcc4cbfcd845..000000000000 --- a/cppu/test/env_tester/env.tester.cxx +++ /dev/null @@ -1,104 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <iostream> - -#include "sal/main.h" -#include "rtl/ustring.hxx" -#include "rtl/string.hxx" -#include "rtl/alloc.h" -#include "uno/environment.hxx" -#include "uno/lbnames.h" - -using namespace com::sun::star; - - -static rtl::OUString s_replaceCPP(rtl::OUString const & str) -{ - rtl::OUString cpp(RTL_CONSTASCII_USTRINGPARAM("CPP")); - - rtl::OUString result; - - sal_Int32 index_old = 0; - sal_Int32 index = str.indexOf(cpp, index_old); - while (index != -1) - { - result += str.copy(index_old, index - index_old); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(CPPU_STRINGIFY(CPPU_ENV))); - - index_old = index + 3; - index = str.indexOf(cpp, index_old); - } - result += str.copy(index_old); - - return result; -} - - -rtl::OUString register_test(rtl::OUString const & envDcp); -rtl::OUString purpenv_test(rtl::OUString const & envDcp); - - - -SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) -{ - int ret = 0; - rtl::OUString message; - - if (argc == 2) - { - message = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - rtl::OUString envDcp(argv[1], rtl_str_getLength(argv[1]), RTL_TEXTENCODING_ASCII_US); - envDcp = s_replaceCPP(envDcp); - - - message += register_test(envDcp); - message += purpenv_test(envDcp); - - if (message.indexOf(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILURE"))) == -1) - { - message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS PASSED\n")); - ret = 0; - } - else - { - message += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TESTS _NOT_ PASSED\n")); - ret = -1; - } - } - else - message = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("<env. descriptor>")); - - std::cerr - << argv[0] - << " " - << rtl::OUStringToOString(message, RTL_TEXTENCODING_ASCII_US).getStr() - << std::endl; - - return ret; -} diff --git a/cppu/test/env_tester/makefile.mk b/cppu/test/env_tester/makefile.mk deleted file mode 100644 index c418749e66bf..000000000000 --- a/cppu/test/env_tester/makefile.mk +++ /dev/null @@ -1,67 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := env.tester.bin - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE - - -.INCLUDE : settings.mk -.INCLUDE : ../../source/helper/purpenv/export.mk - - -.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" -ObjectFactory_LIB := -lObjectFactory.$(COMID) - -.ELSE -ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib - -.ENDIF - - -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/env.tester.obj $(OBJ)$/purpenv.test.obj $(OBJ)$/register.test.obj -APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB) - - -SHL1TARGET := purpA_uno_uno -SHL1IMPLIB := i$(SHL1TARGET) -SHL1OBJS := $(SLO)$/TestEnvironment.obj -SHL1STDLIBS := $(CPPULIB) $(SALHELPERLIB) $(SALLIB) -SHL1DEF := TestEnvironment.def - -SHL2TARGET := purpB_uno_uno -SHL2IMPLIB := i$(SHL2TARGET) -SHL2OBJS := $(SHL1OBJS) -SHL2STDLIBS := $(SHL1STDLIBS) -SHL2DEF := $(SHL1DEF) - - -.INCLUDE : target.mk diff --git a/cppu/test/env_tester/purpenv.test.cxx b/cppu/test/env_tester/purpenv.test.cxx deleted file mode 100644 index 42da4d300189..000000000000 --- a/cppu/test/env_tester/purpenv.test.cxx +++ /dev/null @@ -1,401 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <iostream> - -#include "sal/main.h" - -#include "uno/environment.hxx" -#include "uno/dispatcher.h" - -#include "typelib/typedescription.h" - -#include "com/sun/star/uno/Any.h" - -#include "../ObjectFactory/ObjectFactory.hxx" - - -using namespace com::sun::star; - - -static rtl::OUString g_usret(RTL_CONSTASCII_USTRINGPARAM("\n")); -static rtl::OUString g_ustab(RTL_CONSTASCII_USTRINGPARAM("\t")); -static rtl::OUString g_comment; -static uno::Environment g_env; -static bool g_check = 0; - -extern "C" { static void s_callee(rtl_uString * pMethod_name) -{ - if (g_check) - { - g_comment += g_ustab; - g_comment += g_ustab; - g_comment += rtl::OUString(pMethod_name); - - rtl::OUString reason; - int valid = g_env.isValid(&reason); - - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[")); - g_comment += rtl::OUString::valueOf((sal_Int32)valid); - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(",")); - g_comment += reason; - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("]")); - - if (!valid) - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE")); - - g_comment += g_usret; - } -}} - - -static rtl::OUString s_test_registerInterface(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_registerInterface")); - g_comment += g_usret; - - rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla")); - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_TypeDescription * pRet = NULL; - typelib_typedescriptionreference_getDescription(&pRet, type_XInterface); - - void * pObject = createObject(envDcp, s_callee); - g_check = 1; - g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv, - &pObject, - id.pData, - (struct _typelib_InterfaceTypeDescription *)pRet); - g_check = 0; - - g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject); - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - - g_env.clear(); - - return g_comment; -} - -extern "C" { static void s_freeFunc(struct _uno_ExtEnvironment * /*pEnv*/, void * /*pProxy*/ ) -{ - if (g_check) - { - g_comment += g_ustab; - g_comment += g_ustab; - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("s_freeFunc")); - - rtl::OUString reason; - int valid = g_env.isValid(&reason); - - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[")); - g_comment += rtl::OUString::valueOf((sal_Int32)valid); - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(",")); - g_comment += reason; - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("]")); - - if (!valid) - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" - FAILURE")); - - g_comment += g_usret; - } -}} - -static rtl::OUString s_test_registerProxyInterface(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_registerProxyInterface")); - g_comment += g_usret; - - rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla")); - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_TypeDescription * pRet = NULL; - typelib_typedescriptionreference_getDescription(&pRet, type_XInterface); - - void * pObject = createObject(envDcp, s_callee); - g_check = 1; - g_env.get()->pExtEnv->registerProxyInterface(g_env.get()->pExtEnv, - &pObject, - s_freeFunc, - id.pData, - (typelib_InterfaceTypeDescription *)pRet); - g_check = 0; - - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - g_check = 1; - g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject); - g_check = 0; - - g_env.clear(); - - - return g_comment; -} - -static rtl::OUString s_test_revokeInterface(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_revokeInterface")); - g_comment += g_usret; - - rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla")); - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_TypeDescription * pRet = NULL; - typelib_typedescriptionreference_getDescription(&pRet, type_XInterface); - - void * pObject = createObject(envDcp, s_callee); - g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv, - &pObject, - id.pData, - (struct _typelib_InterfaceTypeDescription *)pRet); - - g_check = 1; - g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject); - g_check = 0; - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - - g_env.clear(); - - return g_comment; -} - -static rtl::OUString s_test_getObjectIdentifier(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getObjectIdentifier")); - g_comment += g_usret; - - rtl::OUString oId; - void * pObject = createObject(envDcp, s_callee); - g_check = 1; - g_env.get()->pExtEnv->getObjectIdentifier(g_env.get()->pExtEnv, &oId.pData, pObject); - g_check = 0; - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - - g_env.clear(); - - return g_comment; -} - -static rtl::OUString s_test_getRegisteredInterface(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getRegisteredInterface")); - g_comment += g_usret; - - rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla")); - - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_TypeDescription * pRet = NULL; - typelib_typedescriptionreference_getDescription(&pRet, type_XInterface); - - void * pObject = createObject(envDcp, s_callee); - g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv, - &pObject, - id.pData, - (typelib_InterfaceTypeDescription *)pRet); - - - g_check = 1; - g_env.get()->pExtEnv->getRegisteredInterface(g_env.get()->pExtEnv, &pObject, id.pData, - (typelib_InterfaceTypeDescription *)pRet); - g_check = 0; - - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject); - - g_env.clear(); - - return g_comment; -} - -static rtl::OUString s_test_getRegisteredInterfaces(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getRegisteredInterfaces")); - g_comment += g_usret; - - rtl::OUString id(RTL_CONSTASCII_USTRINGPARAM("blabla")); - - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_TypeDescription * pRet = NULL; - typelib_typedescriptionreference_getDescription(&pRet, type_XInterface); - - void * pObject = createObject(envDcp, s_callee); - g_env.get()->pExtEnv->registerInterface(g_env.get()->pExtEnv, - &pObject, - id.pData, - (typelib_InterfaceTypeDescription *)pRet); - - g_check = 1; - void ** ppObject; - sal_Int32 nCount; - g_env.get()->pExtEnv->getRegisteredInterfaces(g_env.get()->pExtEnv, &ppObject, &nCount, rtl_allocateMemory); - g_check = 0; - - - if (nCount != 1) - { - g_comment += g_ustab; - g_comment += g_ustab; - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("more than one object registered -> FAILURE")); - g_comment += g_usret; - } - - if (*ppObject != pObject) - { - g_comment += g_ustab; - g_comment += g_ustab; - g_comment += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("returned object is not the registerd one -> FAILURE")); - g_comment += g_usret; - } - - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, *ppObject); - - g_env.get()->pExtEnv->revokeInterface(g_env.get()->pExtEnv, pObject); - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - - rtl_freeMemory(ppObject); - - g_env.clear(); - - return g_comment; -} - -static rtl::OUString s_test_computeObjectIdentifier(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_computeObjectIdentifier")); - g_comment += g_usret; - - rtl::OUString oId; - void * pObject = createObject(envDcp, s_callee); - g_check = 1; - g_env.get()->pExtEnv->computeObjectIdentifier(g_env.get()->pExtEnv, &oId.pData, pObject); - g_check = 0; - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - - g_env.clear(); - - return g_comment; -} - -static rtl::OUString s_test_acquire(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_acquire")); - g_comment += g_usret; - void * pObject = createObject(envDcp, s_callee); - - g_check = 1; - g_env.get()->pExtEnv->acquireInterface(g_env.get()->pExtEnv, pObject); - g_check = 0; - - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - g_env.clear(); - - return g_comment; -} - -static rtl::OUString s_test_release(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - g_comment = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\ts_test_release")); - g_comment += g_usret; - void * pObject = createObject(envDcp, s_callee); - - g_check = 1; - g_env.get()->pExtEnv->releaseInterface(g_env.get()->pExtEnv, pObject); - g_check = 0; - - g_env.clear(); - - return g_comment; -} - - -rtl::OUString purpenv_test(rtl::OUString const & envDcp) -{ - g_env = uno::Environment(envDcp); - - rtl::OUString result; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("purpenv_test")); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - result += s_test_registerInterface(envDcp); - result += g_usret; - - result += s_test_registerProxyInterface(envDcp); - result += g_usret; - - result += s_test_revokeInterface(envDcp); - result += g_usret; - - result += s_test_getObjectIdentifier(envDcp); - result += g_usret; - - result += s_test_getRegisteredInterface(envDcp); - result += g_usret; - - result += s_test_getRegisteredInterfaces(envDcp); - result += g_usret; - - result += s_test_computeObjectIdentifier(envDcp); - result += g_usret; - - result += s_test_acquire(envDcp); - result += g_usret; - - result += s_test_release(envDcp); - result += g_usret; - - return result; -} diff --git a/cppu/test/env_tester/register.test.cxx b/cppu/test/env_tester/register.test.cxx deleted file mode 100644 index a98a14cac69b..000000000000 --- a/cppu/test/env_tester/register.test.cxx +++ /dev/null @@ -1,234 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <iostream> - -#include "sal/main.h" -#include "rtl/ustring.hxx" -#include "rtl/string.hxx" -#include "rtl/alloc.h" -#include "uno/environment.hxx" -#include "uno/lbnames.h" - -using namespace com::sun::star; - - -static rtl::OUString s_test_getEnvironment(rtl::OUString const & envDcp, void * pContext) -{ - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_getEnvironment(")); - result += envDcp; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); - result += rtl::OUString::valueOf((long)pContext); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); - - uno::Environment env(envDcp, pContext); - - if (!env.is()) - { - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: couldn't get env.\n")); - return result; - } - - if (rtl::OUString(env.getTypeName()).compareTo(envDcp)) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: got environment has wrong descriptor.\n")); - - if (env.getContext() != pContext) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE: got environment has wrong context.\n")); - - - return result; -} - -static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp1, - rtl::OUString const & envDcp2 , - void * pContext1, void * pContext2) -{ - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_regetEnvironment(")); - result += envDcp1; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); - result += envDcp2; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); - result += rtl::OUString::valueOf((long)pContext1); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", " )); - result += rtl::OUString::valueOf((long)pContext2); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); - - uno::Environment env1(envDcp1, pContext1); - uno::Environment env2(envDcp2, pContext2); - - if (! ((pContext1 == pContext2 && envDcp1 == envDcp2) ? env1.get() == env2.get() : env1.get() != env2.get()) - && env1.is() && env2.is()) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); - - return result; -} - -static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp, void * pContext) -{ - return s_test_regetEnvironment(envDcp, envDcp, pContext, pContext); -} - -// static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp, void * pContext1, void * pContext2) -// { -// return s_test_regetEnvironment(envDcp, envDcp, pContext1, pContext2); -// } - -static rtl::OUString s_test_regetEnvironment(rtl::OUString const & envDcp1, rtl::OUString const & envDcp2, void * pContext) -{ - return s_test_regetEnvironment(envDcp1, envDcp2, pContext, pContext); -} - - -static int s_is_registered(rtl::OUString const & envDcp, void * pContext) -{ - int result = 0; - - uno_Environment ** ppEnvs = NULL; - sal_Int32 nLen = 0; - - uno_getRegisteredEnvironments(&ppEnvs, &nLen, rtl_allocateMemory, envDcp.pData); - for (sal_Int32 i = 0; !result && i < nLen; ++ i) - { - result = result || (ppEnvs[i]->pContext == pContext && !rtl::OUString(ppEnvs[i]->pTypeName).compareTo(envDcp)); - - ppEnvs[i]->release(ppEnvs[i]); - } - rtl_freeMemory(ppEnvs); - - return result; -} - -static rtl::OUString s_test_uno_getRegisteredEnvironments_registered(rtl::OUString const & envDcp, void * pContext) -{ - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_getRegisteredEnvironments_registered(")); - result += envDcp; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); - result += rtl::OUString::valueOf((long)pContext); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); - - uno::Environment env(envDcp, pContext); - - if (!env.is() || !s_is_registered(envDcp, pContext)) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); - - return result; -} - -static rtl::OUString s_test_uno_getRegisteredEnvironments_notRegistered(rtl::OUString const & envDcp, void * pContext) -{ - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_getRegisteredEnvironments_notRegistered(")); - result += envDcp; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); - result += rtl::OUString::valueOf((long)pContext); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); - - uno::Environment env(envDcp, pContext); - - if (!env.is() && !s_is_registered(envDcp, pContext)) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); - - return result; -} - - -static rtl::OUString s_test_uno_createEnvironment(rtl::OUString const & envDcp, void * pContext) -{ - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\ts_test_uno_createEnvironment(")); - result += envDcp; - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(", ")); - result += rtl::OUString::valueOf((long)pContext); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(")\n")); - - uno_Environment * pEnv = NULL; - uno_createEnvironment(&pEnv, envDcp.pData, pContext); - - if (!pEnv && !s_is_registered(envDcp, pContext)) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\t\tFAILURE:\n")); - - if (pEnv) - pEnv->release(pEnv); - - return result; -} - - -rtl::OUString register_test(rtl::OUString const & envDcp) -{ - rtl::OUString env_A(envDcp); - env_A += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(":purpA")); - - rtl::OUString env_B(envDcp); - env_B += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(":purpB")); - - rtl::OUString result; - - result = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("registration_test")); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\n")); - - result += s_test_getEnvironment(envDcp, NULL); - result += s_test_getEnvironment(env_A, NULL); - result += s_test_getEnvironment(env_B, NULL); - - result += s_test_regetEnvironment(envDcp, NULL); - result += s_test_regetEnvironment(envDcp, (void *)0x1); - result += s_test_regetEnvironment(env_A, NULL) ; - result += s_test_regetEnvironment(env_A, (void *)0x1); - result += s_test_regetEnvironment(env_B, NULL) ; - result += s_test_regetEnvironment(env_B, (void *)0x1); - - result += s_test_regetEnvironment(envDcp, env_A, (void *)NULL); - result += s_test_regetEnvironment(envDcp, env_A, (void *)0x1) ; - result += s_test_regetEnvironment(envDcp, env_B, (void *)NULL); - result += s_test_regetEnvironment(envDcp, env_B, (void *)0x1) ; - result += s_test_regetEnvironment(env_A, env_B, (void *)NULL); - result += s_test_regetEnvironment(env_A, env_B, (void *)0x1) ; - - result += s_test_regetEnvironment(env_A, env_B, (void *)NULL, (void *)0x1); - - result += s_test_uno_getRegisteredEnvironments_registered(envDcp, (void *)NULL); - result += s_test_uno_getRegisteredEnvironments_registered(envDcp, (void *)0x1) ; - result += s_test_uno_getRegisteredEnvironments_registered(env_A, (void *)NULL); - result += s_test_uno_getRegisteredEnvironments_registered(env_A, (void *)0x1) ; - result += s_test_uno_getRegisteredEnvironments_registered(env_B, (void *)NULL); - result += s_test_uno_getRegisteredEnvironments_registered(env_B, (void *)0x1) ; - - result += s_test_uno_getRegisteredEnvironments_notRegistered(envDcp, NULL) ; - result += s_test_uno_getRegisteredEnvironments_notRegistered(envDcp, (void *)0x1); - result += s_test_uno_getRegisteredEnvironments_notRegistered(env_A, NULL) ; - result += s_test_uno_getRegisteredEnvironments_notRegistered(env_A, (void *)0x1); - result += s_test_uno_getRegisteredEnvironments_notRegistered(env_B, NULL) ; - result += s_test_uno_getRegisteredEnvironments_notRegistered(env_B, (void *)0x1); - - result += s_test_uno_createEnvironment(envDcp, NULL) ; - result += s_test_uno_createEnvironment(envDcp, (void *)0x1); - result += s_test_uno_createEnvironment(env_A, NULL) ; - result += s_test_uno_createEnvironment(env_A, (void *)0x1); - result += s_test_uno_createEnvironment(env_B, NULL) ; - result += s_test_uno_createEnvironment(env_B, (void *)0x1); - - return result; -} diff --git a/cppu/test/language_binding.idl b/cppu/test/language_binding.idl deleted file mode 100644 index 2a708ad56ee6..000000000000 --- a/cppu/test/language_binding.idl +++ /dev/null @@ -1,239 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ -#ifndef _TEST_LANGUAGE_BINDING_IDL_ -#define _TEST_LANGUAGE_BINDING_IDL_ - -#include <com/sun/star/uno/XInterface.idl> -#include <com/sun/star/lang/IllegalArgumentException.idl> - -module test -{ - -enum TestEnum -{ - TEST, - ONE, - TWO, - CHECK, - LOLA, - PALOO, - ZA -}; - -/** - * simple c++ types - */ -struct TestSimple -{ - boolean Bool; - char Char; - byte Byte; - short Short; - unsigned short UShort; - long Long; - unsigned long ULong; - hyper Hyper; - unsigned hyper UHyper; - float Float; - double Double; - test::TestEnum Enum; -}; -/** - * equal to max size returned in registers on x86_64 - */ -struct SmallStruct -{ - hyper a; - hyper b; -}; -/** - * equal to max size returned in registers on ia64 - */ -struct MediumStruct -{ - hyper a; - hyper b; - hyper c; - hyper d; -}; -/** - * bigger than max size returned in registers on ia64 - */ -struct BigStruct -{ - hyper a; - hyper b; - hyper c; - hyper d; - hyper e; - hyper f; - hyper g; - hyper h; -}; -/** - * all floats, ia64 claims to handle them specially - */ -struct AllFloats -{ - float a; - float b; - float c; - float d; -}; - -/** - * complex c++ types - */ -struct TestElement : test::TestSimple -{ - string String; - com::sun::star::uno::XInterface Interface; - any Any; -}; -struct TestDataElements : test::TestElement -{ - sequence<test::TestElement > Sequence; -}; - -typedef TestDataElements TestData; - -/** - * Monster test interface to test language binding calls. - * - * @author Daniel Boelzle - */ -interface XLBTestBase : com::sun::star::uno::XInterface -{ - /** - * in parameter test, tests by calls reference also (complex types) - */ - [oneway] void setValues( [in] boolean bBool, [in] char cChar, [in] byte nByte, - [in] short nShort, [in] unsigned short nUShort, - [in] long nLong, [in] unsigned long nULong, - [in] hyper nHyper, [in] unsigned hyper nUHyper, - [in] float fFloat, [in] double fDouble, - [in] test::TestEnum eEnum, [in] string aString, - [in] com::sun::star::uno::XInterface xInterface, [in] any aAny, - [in] sequence<test::TestElement > aSequence, - [in] test::TestData aStruct ); - /** - * inout parameter test - */ - test::TestData setValues2( [inout] boolean bBool, [inout] char cChar, [inout] byte nByte, - [inout] short nShort, [inout] unsigned short nUShort, - [inout] long nLong, [inout] unsigned long nULong, - [inout] hyper nHyper, [inout] unsigned hyper nUHyper, - [inout] float fFloat, [inout] double fDouble, - [inout] test::TestEnum eEnum, [inout] string aString, - [inout] com::sun::star::uno::XInterface xInterface, [inout] any aAny, - [inout] sequence<test::TestElement > aSequence, - [inout] test::TestData aStruct ); - - /** - * out parameter test - */ - test::TestData getValues( [out] boolean bBool, [out] char cChar, [out] byte nByte, - [out] short nShort, [out] unsigned short nUShort, - [out] long nLong, [out] unsigned long nULong, - [out] hyper nHyper, [out] unsigned hyper nUHyper, - [out] float fFloat, [out] double fDouble, - [out] test::TestEnum eEnum, [out] string aString, - [out] com::sun::star::uno::XInterface xInterface, [out] any aAny, - [out] sequence<test::TestElement > aSequence, - [out] test::TestData aStruct ); - - /** - * register return test 1 - */ - test::SmallStruct echoSmallStruct( [in] test::SmallStruct aStruct ); - - /** - * register return test 2 - */ - test::MediumStruct echoMediumStruct( [in] test::MediumStruct aStruct ); - - /** - * register return test 3 - */ - test::BigStruct echoBigStruct( [in] test::BigStruct aStruct ); - - /** - * register return test 4 - */ - test::AllFloats echoAllFloats( [in] test::AllFloats aStruct ); - - [attribute] boolean Bool; - [attribute] byte Byte; - [attribute] char Char; - [attribute] short Short; - [attribute] unsigned short UShort; - [attribute] long Long; - [attribute] unsigned long ULong; - [attribute] hyper Hyper; - [attribute] unsigned hyper UHyper; - [attribute] float Float; - [attribute] double Double; - [attribute] test::TestEnum Enum; - [attribute] string String; - [attribute] com::sun::star::uno::XInterface Interface; - [attribute] any Any; - [attribute] sequence<test::TestElement > Sequence; - [attribute] test::TestData Struct; -}; - - -/** - * Inherting from monster; adds raiseException(). - * - * @author Daniel Boelzle - */ -interface XLanguageBindingTest : test::XLBTestBase -{ - /** - * params are there only for dummy, to test if all temp out params will be released. - */ - test::TestData raiseException( [out] boolean bBool, [out] char cChar, [out] byte nByte, - [out] short nShort, [out] unsigned short nUShort, - [out] long nLong, [out] unsigned long nULong, - [out] hyper nHyper, [out] unsigned hyper nUHyper, - [out] float fFloat, [out] double fDouble, - [out] test::TestEnum eEnum, [out] string aString, - [out] com::sun::star::uno::XInterface xInterface, [out] any aAny, - [out] sequence<test::TestElement > aSequence, - [out] test::TestData aStruct ) - raises( com::sun::star::lang::IllegalArgumentException ); - - /** - * raises runtime exception - */ - [attribute] long RuntimeException; -}; - -}; // test - - -#endif diff --git a/cppu/test/makefile.mk b/cppu/test/makefile.mk deleted file mode 100644 index 8eecf6bbf452..000000000000 --- a/cppu/test/makefile.mk +++ /dev/null @@ -1,156 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* -PRJ=.. - -PRJNAME=testcppu -TARGET= testcppu -LIBTARGET=NO -ENABLE_EXCEPTIONS=TRUE -NO_BSYMBOLIC=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -# --- Files -------------------------------------------------------- - -UNOUCRDEP=$(SOLARBINDIR)$/udkapi.rdb -UNOUCRRDB=$(SOLARBINDIR)$/udkapi.rdb -UNOUCROUT=$(OUT)$/inc$/test -INCPRE+=$(OUT)$/inc$/test - -OBJFILES= \ - $(OBJ)$/testcppu.obj \ - $(OBJ)$/test_di.obj \ - $(OBJ)$/test_Cincludes.obj -# $(OBJ)$/test_cuno.obj \ -# $(OBJ)$/test_sec.obj \ - -APP1TARGET= testcppu -APP1OBJS= \ - $(OBJ)$/testcppu.obj \ - $(OBJ)$/test_di.obj -# $(OBJ)$/test_cuno.obj -# $(OBJ)$/test_sec.obj - -APP1STDLIBS+= \ - $(CPPULIB) \ - $(CPPUHELPERLIB) \ - $(SALHELPERLIB) \ - $(SALLIB) - -APP1DEF=$(MISC)$/$(APP1TARGET).def - -ALLIDLFILES:= \ - cpputest.idl \ - language_binding.idl \ - alignment.idl - - -APP2TARGET := Mapping.test -APP2OBJS := $(OBJ)$/Mapping.test.obj -APP2STDLIBS := $(CPPULIB) $(SALLIB) - -APP3TARGET := Environment.test -APP3OBJS := $(OBJ)$/Environment.test.obj -APP3STDLIBS := $(CPPULIB) $(SALLIB) - -APP4TARGET := IdentityMapping.test -APP4OBJS := $(OBJ)$/IdentityMapping.test.obj -APP4STDLIBS := $(CPPULIB) $(SALLIB) - - - -# --- Targets ------------------------------------------------------ - -.IF "$(depend)" == "" -ALL : $(BIN)$/testcppu.rdb unoheader ALLTAR -.ELSE -ALL: ALLDEP -.ENDIF - -.IF "$(COM)" == "MSC" -.IF "$(debug)" != "" -CFLAGS += /Ob0 -.ENDIF -.ENDIF - -.IF "$(extra_mapping)" != "" -CFLAGS += -DEXTRA_MAPPING -.ENDIF - -.INCLUDE : target.mk - -CPPUMAKERFLAGS = -L - -TYPES:= -Ttest.XLanguageBindingTest \ - -Ttest.XSimpleInterface \ - -Ttest.Test1 \ - -Ttest.Test2 \ - -Ttest.TdTest1 \ - -Ttest.Test3 \ - -Ttest.Base \ - -Ttest.Base1 \ - -Ttest.Base2 \ - -Tcom.sun.star.lang.XMultiServiceFactory \ - -Tcom.sun.star.lang.XSingleServiceFactory \ - -Tcom.sun.star.lang.XInitialization \ - -Tcom.sun.star.lang.XServiceInfo \ - -Tcom.sun.star.lang.XEventListener \ - -Tcom.sun.star.lang.XTypeProvider \ - -Tcom.sun.star.lang.DisposedException \ - -Tcom.sun.star.registry.XSimpleRegistry \ - -Tcom.sun.star.registry.XRegistryKey \ - -Tcom.sun.star.loader.XImplementationLoader \ - -Tcom.sun.star.registry.XImplementationRegistration \ - -Tcom.sun.star.lang.XComponent \ - -Tcom.sun.star.uno.XComponentContext \ - -Tcom.sun.star.container.XSet \ - -Tcom.sun.star.container.XNameContainer \ - -Tcom.sun.star.uno.TypeClass \ - -Tcom.sun.star.uno.XReference \ - -Tcom.sun.star.uno.XAdapter \ - -Tcom.sun.star.uno.XAggregation \ - -Tcom.sun.star.uno.XWeak \ - -Tcom.sun.star.beans.XPropertySet \ - -Tcom.sun.star.reflection.XIdlClassProvider \ - -Tcom.sun.star.container.XHierarchicalNameAccess \ - -Tcom.sun.star.uno.XCurrentContext - -$(BIN)$/testcppu.rdb: $(ALLIDLFILES) - idlc -I$(PRJ) -I$(SOLARIDLDIR) -O$(BIN) $? - regmerge $@ /UCR $(BIN)$/{$(?:f:s/.idl/.urd/)} - regmerge $@ / $(UNOUCRRDB) - touch $@ - -# regcomp -register -r $@ -c javaloader.dll -# regcomp -register -r $@ -c jen.dll - -unoheader: $(BIN)$/testcppu.rdb - cppumaker $(CPPUMAKERFLAGS) -BUCR -O$(UNOUCROUT) $(TYPES) $(BIN)$/testcppu.rdb -# cunomaker -BUCR -O$(UNOUCROUT) $(TYPES) $(BIN)$/testcppu.rdb - diff --git a/cppu/test/mapping_tester/Mapping.tester.hxx b/cppu/test/mapping_tester/Mapping.tester.hxx deleted file mode 100644 index 6a2573a105f8..000000000000 --- a/cppu/test/mapping_tester/Mapping.tester.hxx +++ /dev/null @@ -1,75 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef INCLUDED_Mapping_tester_hxx -#define INCLUDED_Mapping_tester_hxx - - -#include "../ObjectFactory/callee.hxx" - - -#ifdef CPPU_TEST_MAPPING_TESTER_TESTS_IMPL -# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT SAL_DLLPUBLIC_EXPORT - -#elif defined(CPPU_TEST_MAPPING_TESTER_TESTS_LIB) -# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT extern - -#elif defined(__GNUC__) && defined(HAVE_GCC_VISIBILITY_FEATURE) -# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT extern __attribute__ ((weak)) - -#elif defined(__SUNPRO_CC) -# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT extern - extern rtl::OUString g_from_envDcp; - extern rtl::OUString g_to_envDcp; - extern rtl::OUString g_ref; - extern rtl::OUString g_custom; - extern rtl::OUString g_result; - extern int g_check; -# pragma weak g_from_envDcp -# pragma weak g_to_envDcp -# pragma weak g_ref -# pragma weak g_custom -# pragma weak g_result -# pragma weak g_check - -#else -# define CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT SAL_DLLPUBLIC_IMPORT - -#endif - -CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_from_envDcp; -CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_to_envDcp; -CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_ref; -CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_custom; -CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT rtl::OUString g_result; -CPPU_TEST_MAPPING_TESTER_TESTS_EXPORT int g_check; - - -#define D_CALLEE extern "C" void CALLEE(rtl_uString * pMethod_name) - - -#endif diff --git a/cppu/test/mapping_tester/makefile.mk b/cppu/test/mapping_tester/makefile.mk deleted file mode 100644 index db62dcd5b14a..000000000000 --- a/cppu/test/mapping_tester/makefile.mk +++ /dev/null @@ -1,63 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := mapping.tester - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE - - -.INCLUDE : settings.mk - -VERSIONOBJ := # NO GetVersionInfo symbols :-) -ENVINCPRE := -I$(OUT)$/inc$/$(TARGET) -#CDEFS += -DLOG_LIFECYCLE - -.IF "$(COM)" == "GCC" -LINKFLAGS += -rdynamic -.ENDIF - - -.IF "$(GUI)"=="UNX" || "$(GUI)"=="MAC" -ObjectFactory_LIB := -lObjectFactory.$(COMID) - -.ELSE -ObjectFactory_LIB := $(LIBPRE) iObjectFactory.$(COMID).lib - -.ENDIF - - -APP1TARGET := mapping.tester -APP1OBJS := $(OBJ)$/mapping.tester.obj -APP1STDLIBS := $(ObjectFactory_LIB) $(SALLIB) $(CPPULIB) $(CPPUHELPERLIB) - - -.INCLUDE : target.mk - - diff --git a/cppu/test/mapping_tester/mapping.tester.cxx b/cppu/test/mapping_tester/mapping.tester.cxx deleted file mode 100644 index bed213daefba..000000000000 --- a/cppu/test/mapping_tester/mapping.tester.cxx +++ /dev/null @@ -1,456 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#define CPPU_TEST_MAPPING_TESTER_TESTS_IMPL - - -#include <iostream> - -#include "sal/main.h" -#include "osl/module.hxx" -#include "rtl/ustring.hxx" -#include "uno/environment.hxx" -#include "uno/mapping.hxx" - -#include "../ObjectFactory/ObjectFactory.hxx" -#include "Mapping.tester.hxx" - -using namespace ::com::sun::star; - - - -static uno::Mapping s_getMapping(rtl::OUString const & from_envDcp, - rtl::OUString const & to_envDcp, - uno::Environment * pSourceEnv, - uno::Environment * pTargetEnv) -{ - uno::Environment sourceEnv(from_envDcp); - uno::Environment targetEnv(to_envDcp); - - uno::Mapping mapping(sourceEnv, targetEnv); - - if (pSourceEnv) - *pSourceEnv = sourceEnv; - - if (pTargetEnv) - *pTargetEnv = targetEnv; - - return mapping; -} - -static void * s_mapObject(rtl::OUString const & from_envDcp, - rtl::OUString const & to_envDcp, - void * object, - uno::Environment * pSourceEnv, - uno::Environment * pTargetEnv) -{ - uno::Mapping mapping(s_getMapping(from_envDcp, to_envDcp, pSourceEnv, pTargetEnv)); - - void * mapped_object = NULL; - - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0; - - TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface ); - mapping.mapInterface(&mapped_object, object, pTXInterfaceDescr); - TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr ); - - return mapped_object; -} - - -static rtl::OUString s_test_regetMapping(void) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tmapping reget test --> ")); - - uno::Mapping mapping1(g_from_envDcp, g_to_envDcp); - uno::Mapping mapping2(g_from_envDcp, g_to_envDcp); - - if (mapping2.get() == mapping1.get()) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_mapObject(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject map test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv); - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - sourceEnv.clear(); - - if (mapped_object) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_remapObject(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject remap test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object1 = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv); - void * mapped_object2 = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, NULL, NULL); - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - sourceEnv.clear(); - - if (mapped_object2 == mapped_object1) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object1); - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object2); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_mapBackObject(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject map back test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment to_sourceEnv; - uno::Environment to_targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, - g_from_envDcp, - pObject, - &to_sourceEnv, - &to_targetEnv); - - uno::Environment back_sourceEnv; - uno::Environment back_targetEnv; - void * mapped_back_object = s_mapObject(g_from_envDcp, - g_to_envDcp, - mapped_object, - &back_sourceEnv, - &back_targetEnv); - - if (back_targetEnv.get() != to_sourceEnv.get()) - abort(); - - if (back_sourceEnv.get() != to_targetEnv.get()) - abort(); - - if (pObject == mapped_back_object) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - to_sourceEnv .get()->pExtEnv->releaseInterface(to_sourceEnv .get()->pExtEnv, pObject); - to_targetEnv .get()->pExtEnv->releaseInterface(to_targetEnv .get()->pExtEnv, mapped_object); - back_targetEnv.get()->pExtEnv->releaseInterface(back_targetEnv.get()->pExtEnv, mapped_back_object); - - result += g_result; - - return result; -} - -static rtl::OUString s_test_objectRegistered(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject registered test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, - g_from_envDcp, - pObject, - &sourceEnv, - &targetEnv); - - if (sourceEnv.get() == targetEnv.get()) - { - if (mapped_object != pObject) - abort(); - } - else - { - typelib_TypeDescriptionReference * type_XInterface = - * typelib_static_type_getByTypeClass( typelib_TypeClass_INTERFACE ); - - typelib_InterfaceTypeDescription * pTXInterfaceDescr = 0; - TYPELIB_DANGER_GET( (typelib_TypeDescription **) &pTXInterfaceDescr, type_XInterface ); - - rtl_uString * pOId = 0; - targetEnv.get()->pExtEnv->getObjectIdentifier(targetEnv.get()->pExtEnv, &pOId, mapped_object); - - void * pOut = NULL; - - targetEnv.get()->pExtEnv->getRegisteredInterface(targetEnv.get()->pExtEnv, - &pOut, - pOId, - pTXInterfaceDescr); - - TYPELIB_DANGER_RELEASE( (typelib_TypeDescription *) pTXInterfaceDescr ); - - if (mapped_object == pOut) - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OKAY\n")); - - else - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("FAILED\n")); - - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, pOut); - } - - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object); - - result += g_result; - - return result; -} - - -// static void s_test_mappingNotEqual(char const * source1Name, char const * dest1Name, -// char const * source2Name, char const * dest2Name) -// { -// rtl::OUString source1EnvName(source1Name, rtl_str_getLength(source1Name), RTL_TEXTENCODING_ASCII_US); -// rtl::OUString dest1EnvName (dest1Name, rtl_str_getLength(dest1Name), RTL_TEXTENCODING_ASCII_US); - -// rtl::OUString source2EnvName(source2Name, rtl_str_getLength(source2Name), RTL_TEXTENCODING_ASCII_US); -// rtl::OUString dest2EnvName (dest2Name, rtl_str_getLength(dest2Name), RTL_TEXTENCODING_ASCII_US); - -// uno::Mapping mapping1(s_getMapping(source1EnvName, dest1EnvName, NULL, NULL)); -// uno::Mapping mapping2(s_getMapping(source2EnvName, dest2EnvName, NULL, NULL)); - -// if (mapping2.get() == mapping1.get()) -// { -// // fprintf(stderr, "***************** can not reget mapping\n"); -// abort(); -// } -// } - -static rtl::OUString s_test_call(Callee * pCallee) -{ - g_result = rtl::OUString(); - g_custom = rtl::OUString(); - - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\tobject call test --> ")); - - void * pObject = createObject(g_to_envDcp, pCallee); - - uno::Environment sourceEnv; - uno::Environment targetEnv; - void * mapped_object = s_mapObject(g_to_envDcp, g_from_envDcp, pObject, &sourceEnv, &targetEnv); - sourceEnv.get()->pExtEnv->releaseInterface(sourceEnv.get()->pExtEnv, pObject); - sourceEnv.clear(); - - g_check = 1; - callObject(g_from_envDcp, mapped_object); - g_check = 0; - - targetEnv.get()->pExtEnv->releaseInterface(targetEnv.get()->pExtEnv, mapped_object); - - result += g_result; - - return result; -} - - -static rtl::OString test_mapping_a(char const * pfrom_envDcp, - char const * pto_envDcp, - Callee * pCallee, - char const * pRef) -{ - g_from_envDcp = rtl::OUString(pfrom_envDcp, rtl_str_getLength(pfrom_envDcp), RTL_TEXTENCODING_ASCII_US); - g_to_envDcp = rtl::OUString(pto_envDcp, rtl_str_getLength(pto_envDcp), RTL_TEXTENCODING_ASCII_US); - g_ref = rtl::OUString(pRef, rtl_str_getLength(pRef), RTL_TEXTENCODING_ASCII_US); - - rtl::OUString result; - - g_check = 0; - - result += s_test_regetMapping (); - result += s_test_objectRegistered(pCallee); - result += s_test_remapObject (pCallee); - result += s_test_mapBackObject (pCallee); - result += s_test_mapObject (pCallee); - result += s_test_call (pCallee); - - return rtl::OUStringToOString(result, RTL_TEXTENCODING_ASCII_US); -} - - -static rtl::OString s_replaceCPP(rtl::OString const & str) -{ - rtl::OString result; - - sal_Int32 index_old = 0; - sal_Int32 index = str.indexOf("CPP", index_old); - while (index != -1) - { - result += str.copy(index_old, index - index_old); - result += rtl::OString(CPPU_STRINGIFY(CPPU_ENV)); - - index_old = index + 3; - index = str.indexOf("CPP", index_old); - } - result += str.copy(index_old); - - return result; -} - - -extern "C" { static void s_dummy(rtl_uString * pMethod_name) -{ - rtl::OUString result(RTL_CONSTASCII_USTRINGPARAM("\t\tmethod: ")); - result += rtl::OUString(pMethod_name); - result += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(" -dummy-\n")); - - g_result = result; -}} - -static Callee * s_pCustomCallee = s_dummy; - -extern "C" { static void s_callee(rtl_uString * pMethod_name) -{ - if (rtl::OUString(pMethod_name).equals(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface")))) - { - rtl::OUString tmp; - - if (!g_from_envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)))) - { - tmp += g_from_envDcp; - tmp += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-->")); - } - - tmp += g_custom; - - if (!g_to_envDcp.match(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO)))) - { - tmp += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("-->")); - tmp += g_to_envDcp; - } - - g_custom = tmp; - s_pCustomCallee(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface::queryInterface")).pData); - } - else - s_pCustomCallee(pMethod_name); -}} - - -SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) -{ - int ret = 0; - rtl::OString message; - - if (argc == 3 || argc == 6) - { - rtl::OString from_envDcp(argv[1]); - from_envDcp = s_replaceCPP(from_envDcp); - - rtl::OString to_envDcp(argv[2]); - to_envDcp = s_replaceCPP(to_envDcp); - - osl::Module module; - - rtl::OString ref; - if (argc == 6 && rtl::OString(argv[3]).equals(rtl::OString("-s"))) - { - rtl::OUString libName(argv[4], rtl_str_getLength(argv[4]), RTL_TEXTENCODING_ASCII_US); - libName += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SAL_DLLEXTENSION)); - module.load(libName); - - s_pCustomCallee = (Callee *)module.getFunctionSymbol(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CALLEE"))); - if (!s_pCustomCallee) - abort(); - - ref = s_replaceCPP(rtl::OString(argv[5])); - } - - message += rtl::OString("TESTING: "); - message += from_envDcp; - message += rtl::OString("-->"); - message += to_envDcp; - message += rtl::OString("\n"); - - message += test_mapping_a(from_envDcp.getStr(), to_envDcp.getStr(), s_callee, ref); - - if (message.indexOf(rtl::OString("FAILED")) == -1) - message += rtl::OString("TESTS PASSED\n"); - - else - { - message += rtl::OString("TESTS _NOT_ PASSED\n"); - ret = -1; - } - } - else - message = "Usage: <source env. dcp> <destination env. dcp> [-s testfun <ref. string>]\n"; - - - std::cout << message.getStr(); - - return ret; -} diff --git a/cppu/test/purpenvhelper/TestEnv.cxx b/cppu/test/purpenvhelper/TestEnv.cxx deleted file mode 100644 index 65a91230dd03..000000000000 --- a/cppu/test/purpenvhelper/TestEnv.cxx +++ /dev/null @@ -1,129 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - - -#include "cppu/EnvDcp.hxx" - -#include "cppu/helper/purpenv/Environment.hxx" -#include "cppu/helper/purpenv/Mapping.hxx" - - - -#define LOG_LIFECYCLE_TestEnv -#ifdef LOG_LIFECYCLE_TestEnv -# include <iostream> -# define LOG_LIFECYCLE_TestEnv_emit(x) x - -#else -# define LOG_LIFECYCLE_TestEnv_emit(x) - -#endif - - -class SAL_DLLPRIVATE TestEnv : public cppu::Enterable -{ - int m_inCount; - - virtual ~TestEnv(void); - -public: - explicit TestEnv(void); - -protected: - virtual void v_enter(void); - virtual void v_leave(void); - - virtual void v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam); - virtual void v_callOut_v (uno_EnvCallee * pCallee, va_list * pParam); - - virtual int v_isValid (rtl::OUString * pReason); -}; - -TestEnv::TestEnv(void) - : m_inCount(0) -{ - LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::TestEnv(...)", this)); -} - -TestEnv::~TestEnv(void) -{ - LOG_LIFECYCLE_TestEnv_emit(fprintf(stderr, "LIFE: %s -> %p\n", "TestEnv::~TestEnv(void)", this)); -} - - -void TestEnv::v_callInto_v(uno_EnvCallee * pCallee, va_list * pParam) -{ - ++ m_inCount; - pCallee(pParam); - -- m_inCount; -} - -void TestEnv::v_callOut_v(uno_EnvCallee * pCallee, va_list * pParam) -{ - -- m_inCount; - pCallee(pParam); - ++ m_inCount; -} - -void TestEnv::v_enter(void) -{ - ++ m_inCount; -} - -void TestEnv::v_leave(void) -{ - -- m_inCount; -} - -int TestEnv::v_isValid(rtl::OUString * pReason) -{ - int result = m_inCount & 1; - - if (result) - *pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("OK")); - - else - *pReason = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("not entered/invoked")); - - return result; -} - -extern "C" void SAL_CALL uno_initEnvironment(uno_Environment * pEnv) SAL_THROW_EXTERN_C() -{ - cppu::helper::purpenv::Environment_initWithEnterable(pEnv, new TestEnv()); -} - -extern "C" void uno_ext_getMapping(uno_Mapping ** ppMapping, - uno_Environment * pFrom, - uno_Environment * pTo ) -{ - cppu::helper::purpenv::createMapping(ppMapping, pFrom, pTo); -} - diff --git a/cppu/test/purpenvhelper/TestEnv.def b/cppu/test/purpenvhelper/TestEnv.def deleted file mode 100644 index 1444d92c13fa..000000000000 --- a/cppu/test/purpenvhelper/TestEnv.def +++ /dev/null @@ -1,8 +0,0 @@ -HEAPSIZE 0 -EXPORTS - uno_initEnvironment - uno_ext_getMapping - - - - diff --git a/cppu/test/purpenvhelper/makefile.mk b/cppu/test/purpenvhelper/makefile.mk deleted file mode 100644 index 3d9b9eaedcbf..000000000000 --- a/cppu/test/purpenvhelper/makefile.mk +++ /dev/null @@ -1,54 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := purpenvhelper.test.pl - - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE - - -.INCLUDE : settings.mk -.INCLUDE : ../../source/helper/purpenv/export.mk - - -SHL1TARGET := TestEnv_uno_uno -SHL1IMPLIB := i$(SHL1TARGET) -SHL1OBJS := $(SLO)$/TestEnv.obj -SHL1STDLIBS := $(purpenv_helper_LIB) $(CPPULIB) $(SALHELPERLIB) $(SALLIB) -SHL1DEF := TestEnv.def - - -.INCLUDE : target.mk - -ALLTAR: $(BIN)$/$(TARGET) - -$(BIN)$/$(TARGET): purpenvhelper.test.pl - @+$(COPY) $^ $@ diff --git a/cppu/test/purpenvhelper/purpenvhelper.test.pl b/cppu/test/purpenvhelper/purpenvhelper.test.pl deleted file mode 100755 index aa5605f71416..000000000000 --- a/cppu/test/purpenvhelper/purpenvhelper.test.pl +++ /dev/null @@ -1,67 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -my $rc = 0; -my $comment = ""; - - -@tests=( - "env.tester.bin uno:TestEnv" -); - -foreach $test (@tests) { - $output = ""; - - $cmd = $test; - open TESTER, $cmd . "|"; - while (<TESTER>) { - chomp; - - $output = $output . "\t" . $_ . "\n"; - } - close TESTER ; - - if ($? != 0) { - $comment = $comment . "TEST FAILED: " . $cmd . "\n"; - $comment = $comment . $output; - } - $rc = $rc + $?; -} - - -print $comment; - -if ($rc == 0) { - print "*********** SUCCESS\n"; -} -else { - print "*********** FAILURE\n"; -} diff --git a/cppu/test/purpose_envs/makefile.mk b/cppu/test/purpose_envs/makefile.mk deleted file mode 100644 index 6e9fe8ebb067..000000000000 --- a/cppu/test/purpose_envs/makefile.mk +++ /dev/null @@ -1,44 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := purpose_envs.test.pl - -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE - - -.INCLUDE : settings.mk - - -.INCLUDE : target.mk - -ALLTAR: $(BIN)$/$(TARGET) - -$(BIN)$/$(TARGET): purpose_envs.test.pl - @+$(COPY) $^ $@ diff --git a/cppu/test/purpose_envs/purpose_envs.test.pl b/cppu/test/purpose_envs/purpose_envs.test.pl deleted file mode 100755 index 28abe2b72398..000000000000 --- a/cppu/test/purpose_envs/purpose_envs.test.pl +++ /dev/null @@ -1,67 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -my $rc = 0; -my $comment = ""; - - -@tests=( -"env.tester.bin uno" -); - -foreach $test (@tests) { - $output = ""; - - $cmd = $test; - open TESTER, $cmd . "|"; - while (<TESTER>) { - chomp; - - $output = $output . "\t" . $_ . "\n"; - } - close TESTER ; - - if ($? != 0) { - $comment = $comment . "TEST FAILED: " . $cmd . "\n"; - $comment = $comment . $output; - } - $rc = $rc + $?; -} - - -print $comment; - -if ($rc == 0) { - print "*********** SUCCESS\n"; -} -else { - print "*********** FAILURE\n"; -} diff --git a/cppu/test/surrogate.hxx b/cppu/test/surrogate.hxx deleted file mode 100644 index 3f479d3e5009..000000000000 --- a/cppu/test/surrogate.hxx +++ /dev/null @@ -1,155 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <uno/dispatcher.h> -#include <uno/mapping.hxx> -#include <uno/environment.h> -#include <uno/data.h> -#include <osl/diagnose.h> -#include <osl/interlck.h> - -#include <com/sun/star/uno/Reference.hxx> - -/* -//================================================================================================== -struct UnoMediator : public uno_Interface -{ - oslInterlockedCount nRef; - uno_Interface * pDest; - - UnoMediator( uno_Interface * pDest ); - ~UnoMediator(); -}; - -//-------------------------------------------------------------------------------------------------- -inline static void SAL_CALL UnoMediator_acquire( uno_Interface * pUnoI ) -{ - osl_incrementInterlockedCount( &((UnoMediator *)pUnoI)->nRef ); -} -//-------------------------------------------------------------------------------------------------- -inline static void SAL_CALL UnoMediator_release( uno_Interface * pUnoI ) -{ - if (! osl_decrementInterlockedCount( &((UnoMediator *)pUnoI)->nRef )) - delete (UnoMediator *)pUnoI; -} -//-------------------------------------------------------------------------------------------------- -inline static void SAL_CALL UnoMediator_dispatch( - uno_Interface * pUnoI, const typelib_TypeDescription * pMemberType, - void * pReturn, void * pArgs[], uno_Any ** ppException ) -{ - (*((UnoMediator *)pUnoI)->pDest->pDispatcher)( - ((UnoMediator *)pUnoI)->pDest, pMemberType, pReturn, pArgs, ppException ); -} - -//__________________________________________________________________________________________________ -UnoMediator::UnoMediator( uno_Interface * pDest_ ) - : nRef( 0 ) - , pDest( pDest_ ) -{ - (*pDest->acquire)( pDest ); - uno_Interface::acquire = UnoMediator_acquire; - uno_Interface::release = UnoMediator_release; - uno_Interface::pDispatcher = UnoMediator_dispatch; -} -//__________________________________________________________________________________________________ -UnoMediator::~UnoMediator() -{ - (*pDest->release)( pDest ); -} -*/ - -//################################################################################################## - -template< class T > -inline sal_Bool makeSurrogate( com::sun::star::uno::Reference< T > & rOut, - const com::sun::star::uno::Reference< T > & rOriginal ) -{ - rOut.clear(); - - typelib_TypeDescription * pTD = 0; - const com::sun::star::uno::Type & rType = ::getCppuType( &rOriginal ); - TYPELIB_DANGER_GET( &pTD, rType.getTypeLibType() ); - OSL_ENSURE( pTD, "### cannot get typedescription!" ); - if (pTD) - { - uno_Environment * pCppEnv1 = 0; - uno_Environment * pCppEnv2 = 0; - - ::rtl::OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ); - uno_getEnvironment( &pCppEnv1, aCppEnvTypeName.pData, 0 ); - uno_createEnvironment( &pCppEnv2, aCppEnvTypeName.pData, 0 ); // anonymous - - ::com::sun::star::uno::Mapping aMapping( pCppEnv1, pCppEnv2, ::rtl::OUString::createFromAscii("prot") ); - T * p = (T *)aMapping.mapInterface( rOriginal.get(), (typelib_InterfaceTypeDescription *)pTD ); - if (p) - { - rOut = p; - p->release(); - } - - (*pCppEnv2->release)( pCppEnv2 ); - (*pCppEnv1->release)( pCppEnv1 ); - - TYPELIB_DANGER_RELEASE( pTD ); - } -/* - ::com::sun::star::uno::Mapping aCpp2Uno( CPPU_CURRENT_LANGUAGE_BINDING_NAME, UNO_LB_UNO ); - ::com::sun::star::uno::Mapping aUno2Cpp( UNO_LB_UNO, CPPU_CURRENT_LANGUAGE_BINDING_NAME ); - OSL_ENSURE( aCpp2Uno.is() && aUno2Cpp.is(), "### cannot get mappings!" ); - if (aCpp2Uno.is() && aUno2Cpp.is()) - { - typelib_TypeDescription * pTD = 0; - const com::sun::star::uno::Type & rType = ::getCppuType( &rOriginal ); - TYPELIB_DANGER_GET( &pTD, rType.getTypeLibType() ); - OSL_ENSURE( pTD, "### cannot get typedescription!" ); - if (pTD) - { - uno_Interface * pUno = (uno_Interface *)aCpp2Uno.mapInterface( - rOriginal.get(), (typelib_InterfaceTypeDescription *)pTD ); - if (pUno) - { - UnoMediator * pPseudo = new UnoMediator( pUno ); - (*pPseudo->acquire)( pPseudo ); - OSL_ENSURE( uno_equals( &pUno, &pPseudo, pTD, 0 ), "### interfaces don't belong to same object, but they do!?" ); - (*pUno->release)( pUno ); - - T * pCpp = (T *)aUno2Cpp.mapInterface( - pPseudo, (typelib_InterfaceTypeDescription *)pTD ); - (*pPseudo->release)( pPseudo ); - - if (pCpp) - { - rOut = pCpp; - pCpp->release(); - } - } - TYPELIB_DANGER_RELEASE( pTD ); - } - } -*/ - return rOut.is(); -} diff --git a/cppu/test/test_Cincludes.c b/cppu/test/test_Cincludes.c deleted file mode 100644 index bacdbc67209e..000000000000 --- a/cppu/test/test_Cincludes.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <uno/any2.h> -#include <uno/data.h> -#include <uno/dispatcher.h> -#include <uno/environment.h> -#include <uno/mapping.h> -#include <uno/sequence2.h> -#include <uno/threadpool.h> -#include <typelib/typedescription.h> - diff --git a/cppu/test/test_cuno.c b/cppu/test/test_cuno.c deleted file mode 100644 index 5757e0c229bb..000000000000 --- a/cppu/test/test_cuno.c +++ /dev/null @@ -1,784 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include <stdio.h> -#include <osl/diagnose.h> -#include <osl/time.h> -#include <osl/interlck.h> -#include <rtl/alloc.h> -// -/* -#include <uno/dispatcher.h> -#include <uno/environment.h> -#include <uno/mapping.hxx> -*/ -#include <uno/data.h> -#include <uno/any2.h> -#include <uno/sequence2.h> - -#include <test/XLanguageBindingTest.h> - - -typedef struct _InstanceData -{ - void const * m_XInterface[2]; - void const * m_XLBTestBase[2]; - void const * m_XLanguageBindingTest[2]; - - sal_Int32 m_refCount; - typelib_TypeDescription* m_pTDXInterface; - typelib_TypeDescription* m_pTDSeqTestElement; - typelib_TypeDescription* m_pTDTestDataElements; - test_TestDataElements m_data, m_structData; -} InstanceData; - -#define GET_THIS( p ) (InstanceData *)((void **)p)[1] - -//================================================================================================== -static void SAL_CALL c_acquire( void * p ) - SAL_THROW_EXTERN_C( ) -{ - CUNO_CALL( ((com_sun_star_uno_XInterface *)p) )->acquire( (com_sun_star_uno_XInterface *)p ); -} -//================================================================================================== -static void SAL_CALL c_release( void * p ) - SAL_THROW_EXTERN_C( ) -{ - CUNO_CALL( ((com_sun_star_uno_XInterface *)p) )->release( (com_sun_star_uno_XInterface *)p ); -} -//================================================================================================== -static void * SAL_CALL c_queryInterface( void * p, typelib_TypeDescriptionReference * pType ) - SAL_THROW_EXTERN_C( ) -{ - uno_Any aExc; - com_sun_star_uno_XInterface * pRet = NULL; - - if (CUNO_EXCEPTION_OCCURED( CUNO_CALL( ((com_sun_star_uno_XInterface *)p) )->queryInterface( (com_sun_star_uno_XInterface *)p, &aExc, &pRet, pType ) )) - { - uno_any_destruct( &aExc, c_release ); - return NULL; - } - else - { - return pRet; - } -} - -void defaultConstructData(test_TestDataElements* pData, typelib_TypeDescriptionReference * pElemType) -{ - pData->_Base._Base.Bool = sal_False; - pData->_Base._Base.Char = 0; - pData->_Base._Base.Byte = 0; - pData->_Base._Base.Short = 0; - pData->_Base._Base.UShort = 0; - pData->_Base._Base.Long = 0; - pData->_Base._Base.ULong = 0; - pData->_Base._Base.Hyper = 0; - pData->_Base._Base.UHyper = 0; - pData->_Base._Base.Float = 0; - pData->_Base._Base.Double = 0; - pData->_Base._Base.Enum = test_TestEnum_TEST; - pData->_Base.String = 0; - rtl_uString_new(&pData->_Base.String); - pData->_Base.Interface = 0; - uno_any_construct(&pData->_Base.Any, 0, 0, 0); -/* pData->Sequence = 0; */ - uno_type_sequence_construct( - &pData->Sequence, pElemType, 0, 0, c_acquire ); -} - -void assign1( test_TestSimple* rData, - sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte, - sal_Int16 nShort, sal_uInt16 nUShort, - sal_Int32 nLong, sal_uInt32 nULong, - sal_Int64 nHyper, sal_uInt64 nUHyper, - float fFloat, double fDouble, - test_TestEnum eEnum) -{ - rData->Bool = bBool; - rData->Char = cChar; - rData->Byte = nByte; - rData->Short = nShort; - rData->UShort = nUShort; - rData->Long = nLong; - rData->ULong = nULong; - rData->Hyper = nHyper; - rData->UHyper = nUHyper; - rData->Float = fFloat; - rData->Double = fDouble; - rData->Enum = eEnum; -} - -void assign2( test_TestElement* rData, - sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte, - sal_Int16 nShort, sal_uInt16 nUShort, - sal_Int32 nLong, sal_uInt32 nULong, - sal_Int64 nHyper, sal_uInt64 nUHyper, - float fFloat, double fDouble, - test_TestEnum eEnum, rtl_uString* rStr, - com_sun_star_uno_XInterface* xTest, - uno_Any* rAny, - typelib_TypeDescription* pTDIface) -{ - assign1( (test_TestSimple *)rData, - bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble, - eEnum ); - rtl_uString_assign(&rData->String, rStr); -/* uno_assignData(&rData->Interface, pTDIface, &xTest, pTDIface, c_queryInterface, c_acquire, c_release); */ - if ( rData->Interface ) - CUNO_CALL(rData->Interface)->release(rData->Interface); - - if ( xTest ) - { - CUNO_CALL(xTest)->acquire(xTest); - rData->Interface = xTest; - } else - { - rData->Interface = 0; - } - - uno_type_any_assign(&rData->Any, rAny->pData, rAny->pType, c_acquire, c_release); -} - -void assign3( test_TestDataElements* rData, - sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte, - sal_Int16 nShort, sal_uInt16 nUShort, - sal_Int32 nLong, sal_uInt32 nULong, - sal_Int64 nHyper, sal_uInt64 nUHyper, - float fFloat, double fDouble, - test_TestEnum eEnum, rtl_uString* rStr, - com_sun_star_uno_XInterface* xTest, - uno_Any* rAny, - /* sequence< test_TestElement >*/uno_Sequence* rSequence, - typelib_TypeDescription* pTDIface, - typelib_TypeDescription* pTDSeqElem) -{ - assign2( (test_TestElement *)rData, - bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble, - eEnum,rStr, xTest, rAny, pTDIface ); - uno_sequence_assign(&rData->Sequence, rSequence, pTDSeqElem, c_release); -} - -/* XInterface =============================================================================== */ - -/* XInterface::acquire */ -cuno_ErrorCode SAL_CALL XInterface_acquire( com_sun_star_uno_XInterface* pIFace) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - osl_incrementInterlockedCount( &pImpl->m_refCount ); - return CUNO_ERROR_NONE; -} - -/* XInterface::release */ -cuno_ErrorCode SAL_CALL XInterface_release( com_sun_star_uno_XInterface * pIFace ) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - if( osl_decrementInterlockedCount( &pImpl->m_refCount ) == 0) - { - uno_destructData(&pImpl->m_data, pImpl->m_pTDTestDataElements, c_release); - uno_destructData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, c_release); - typelib_typedescription_release(pImpl->m_pTDXInterface); - typelib_typedescription_release(pImpl->m_pTDSeqTestElement); - typelib_typedescription_release(pImpl->m_pTDTestDataElements); - rtl_freeMemory( pImpl ); - } - return CUNO_ERROR_NONE; -} - -/* XInterface::queryInterface */ -cuno_ErrorCode SAL_CALL XInterface_queryInterface( com_sun_star_uno_XInterface * pIFace, uno_Any * pExc, com_sun_star_uno_XInterface ** pRet, typelib_TypeDescriptionReference * pTypeRef) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - com_sun_star_uno_XInterface * pIFaceRet = 0; - if ( pTypeRef ) - { - if( ! rtl_ustr_ascii_compare_WithLength( pTypeRef->pTypeName->buffer, pTypeRef->pTypeName->length, - "com.sun.star.uno.XInterface" ) ) - pIFaceRet = (com_sun_star_uno_XInterface *)&pImpl->m_XInterface; - else if( !rtl_ustr_ascii_compare_WithLength( pTypeRef->pTypeName->buffer, pTypeRef->pTypeName->length, - "test.XLBTestBase" ) ) - pIFaceRet = (com_sun_star_uno_XInterface *)&pImpl->m_XLBTestBase; - else if( !rtl_ustr_ascii_compare_WithLength( pTypeRef->pTypeName->buffer, pTypeRef->pTypeName->length, - "test.XLanguageBindingTest" ) ) - pIFaceRet = (com_sun_star_uno_XInterface *)&pImpl->m_XLanguageBindingTest; - - if( pIFaceRet ) - { - CUNO_CALL(pIFaceRet)->acquire( pIFaceRet ); - *pRet = pIFaceRet; - } else - { - *pRet = 0; - } - } - return CUNO_ERROR_NONE; -} - -/* XLBTestBase =============================================================================== */ - -/* XLBTestBase::getBool */ -cuno_ErrorCode SAL_CALL XLBTestBase_getBool( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Bool *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Bool; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setBool */ -cuno_ErrorCode SAL_CALL XLBTestBase_setBool( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Bool value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Bool = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getByte */ -cuno_ErrorCode SAL_CALL XLBTestBase_getByte( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int8 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Byte; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setByte */ -cuno_ErrorCode SAL_CALL XLBTestBase_setByte( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int8 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Byte = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getChar */ -cuno_ErrorCode SAL_CALL XLBTestBase_getChar( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Unicode *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Char; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setChar */ -cuno_ErrorCode SAL_CALL XLBTestBase_setChar( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Unicode value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Char = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getShort */ -cuno_ErrorCode SAL_CALL XLBTestBase_getShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int16 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Short; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setShort */ -cuno_ErrorCode SAL_CALL XLBTestBase_setShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int16 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Short = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getUShort */ -cuno_ErrorCode SAL_CALL XLBTestBase_getUShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt16 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.UShort; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setUShort */ -cuno_ErrorCode SAL_CALL XLBTestBase_setUShort( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt16 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.UShort = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getLong */ -cuno_ErrorCode SAL_CALL XLBTestBase_getLong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int32 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Long; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setLong */ -cuno_ErrorCode SAL_CALL XLBTestBase_setLong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int32 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Long = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getULong */ -cuno_ErrorCode SAL_CALL XLBTestBase_getULong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt32 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.ULong; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setULong */ -cuno_ErrorCode SAL_CALL XLBTestBase_setULong( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt32 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.ULong = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getHyper */ -cuno_ErrorCode SAL_CALL XLBTestBase_getHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int64 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Hyper; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setHyper */ -cuno_ErrorCode SAL_CALL XLBTestBase_setHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Int64 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Hyper = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getUHyper */ -cuno_ErrorCode SAL_CALL XLBTestBase_getUHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt64 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.UHyper; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setUHyper */ -cuno_ErrorCode SAL_CALL XLBTestBase_setUHyper( test_XLBTestBase * pIFace, uno_Any * pExc, sal_uInt64 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.UHyper = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getFloat */ -cuno_ErrorCode SAL_CALL XLBTestBase_getFloat( test_XLBTestBase * pIFace, uno_Any * pExc, float *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Float; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setFloat */ -cuno_ErrorCode SAL_CALL XLBTestBase_setFloat( test_XLBTestBase * pIFace, uno_Any * pExc, float value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Float = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getDouble */ -cuno_ErrorCode SAL_CALL XLBTestBase_getDouble( test_XLBTestBase * pIFace, uno_Any * pExc, double *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Double; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setDouble */ -cuno_ErrorCode SAL_CALL XLBTestBase_setDouble( test_XLBTestBase * pIFace, uno_Any * pExc, double value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Double = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getEnum */ -cuno_ErrorCode SAL_CALL XLBTestBase_getEnum( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestEnum *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = pImpl->m_data._Base._Base.Enum; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setEnum */ -cuno_ErrorCode SAL_CALL XLBTestBase_setEnum( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestEnum value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - pImpl->m_data._Base._Base.Enum = value; - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getString */ -cuno_ErrorCode SAL_CALL XLBTestBase_getString( test_XLBTestBase * pIFace, uno_Any * pExc, rtl_uString **pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - *pRet = 0; - rtl_uString_newFromString(pRet, pImpl->m_data._Base.String); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setString */ -cuno_ErrorCode SAL_CALL XLBTestBase_setString( test_XLBTestBase * pIFace, uno_Any * pExc, rtl_uString *value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - rtl_uString_assign(&pImpl->m_data._Base.String, value); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getInterface */ -cuno_ErrorCode SAL_CALL XLBTestBase_getInterface( test_XLBTestBase * pIFace, uno_Any * pExc, com_sun_star_uno_XInterface **pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); -/* uno_copyData(pRet, &pImpl->m_data._Base.Interface, pImpl->m_pTDXInterface, c_acquire); */ - if ( pImpl->m_data._Base.Interface ) - { - CUNO_CALL(pImpl->m_data._Base.Interface)->acquire(pImpl->m_data._Base.Interface); - *pRet = pImpl->m_data._Base.Interface; - } else - { - *pRet = 0; - } - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setInterface */ -cuno_ErrorCode SAL_CALL XLBTestBase_setInterface( test_XLBTestBase * pIFace, uno_Any * pExc, com_sun_star_uno_XInterface *value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); -/* uno_assignData(&pImpl->m_data._Base.Interface, pImpl->m_pTDXInterface, &value, pImpl->m_pTDXInterface, c_queryInterface, c_acquire, c_release); */ - if ( pImpl->m_data._Base.Interface ) - CUNO_CALL(pImpl->m_data._Base.Interface)->release(pImpl->m_data._Base.Interface); - - if ( value ) - { - CUNO_CALL(value)->acquire(value); - pImpl->m_data._Base.Interface = value; - } else - { - pImpl->m_data._Base.Interface = 0; - } - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getAny */ -cuno_ErrorCode SAL_CALL XLBTestBase_getAny( test_XLBTestBase * pIFace, uno_Any * pExc, uno_Any *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - typelib_TypeDescription* pTD = 0; - typelib_typedescriptionreference_getDescription(&pTD, pImpl->m_data._Base.Any.pType); - uno_any_construct(pRet, pImpl->m_data._Base.Any.pData, pTD, c_acquire); - typelib_typedescription_release(pTD); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setAny */ -cuno_ErrorCode SAL_CALL XLBTestBase_setAny( test_XLBTestBase * pIFace, uno_Any * pExc, uno_Any *value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - typelib_TypeDescription* pTD = 0; - typelib_typedescriptionreference_getDescription(&pTD, value->pType); - uno_any_assign(&pImpl->m_data._Base.Any, value->pData, pTD, c_acquire, c_release); - typelib_typedescription_release(pTD); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getSequence */ -cuno_ErrorCode SAL_CALL XLBTestBase_getSequence( test_XLBTestBase * pIFace, uno_Any * pExc, /*sequence< test.TestElement >*/uno_Sequence **pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - uno_sequence_construct(pRet, pImpl->m_pTDSeqTestElement, pImpl->m_data.Sequence->elements, pImpl->m_data.Sequence->nElements, c_acquire); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setSequence */ -cuno_ErrorCode SAL_CALL XLBTestBase_setSequence( test_XLBTestBase * pIFace, uno_Any * pExc, /*sequence< test.TestElement >*/uno_Sequence *value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - uno_sequence_assign(&pImpl->m_data.Sequence, value, pImpl->m_pTDSeqTestElement, c_release); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getStruct */ -cuno_ErrorCode SAL_CALL XLBTestBase_getStruct( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - uno_copyData(pRet, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setStruct */ -cuno_ErrorCode SAL_CALL XLBTestBase_setStruct( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements *value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - uno_assignData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, value, pImpl->m_pTDTestDataElements, c_queryInterface, c_acquire, c_release); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setValues */ -cuno_ErrorCode SAL_CALL XLBTestBase_setValues( test_XLBTestBase * pIFace, uno_Any * pExc, sal_Bool aBool, sal_Unicode aChar, sal_Int8 aByte, sal_Int16 aShort, sal_uInt16 aUShort, sal_Int32 aLong, sal_uInt32 aULong, sal_Int64 aHyper, sal_uInt64 aUHyper, float aFloat, double aDouble, test_TestEnum aEnum, rtl_uString* aString, com_sun_star_uno_XInterface *aInterface, uno_Any * aAny, /*sequence< test.TestElement >*/ uno_Sequence * aSequence, test_TestDataElements *aStruct) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - assign3(&pImpl->m_data, aBool, aChar, aByte, aShort, aUShort, aLong, aULong, aHyper, aUHyper, aFloat, aDouble, - aEnum, aString, aInterface, aAny,aSequence, pImpl->m_pTDXInterface, pImpl->m_pTDSeqTestElement); - uno_assignData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, aStruct, pImpl->m_pTDTestDataElements, c_queryInterface, c_acquire, c_release); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::setValues2 */ -cuno_ErrorCode SAL_CALL XLBTestBase_setValues2( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements* pRet, sal_Bool* aBool, sal_Unicode* aChar, sal_Int8* aByte, sal_Int16* aShort, sal_uInt16* aUShort, sal_Int32* aLong, sal_uInt32* aULong, sal_Int64* aHyper, sal_uInt64* aUHyper, float* aFloat, double* aDouble, test_TestEnum* aEnum, rtl_uString** aString, com_sun_star_uno_XInterface **aInterface, uno_Any * aAny, /*sequence< test.TestElement >*/ uno_Sequence ** aSequence, test_TestDataElements * aStruct) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - assign3(&pImpl->m_data, *aBool, *aChar, *aByte, *aShort, *aUShort, *aLong, *aULong, *aHyper, *aUHyper, *aFloat, *aDouble, - *aEnum, *aString, *aInterface, aAny, *aSequence, pImpl->m_pTDXInterface, pImpl->m_pTDSeqTestElement); - uno_assignData(&pImpl->m_structData, pImpl->m_pTDTestDataElements, aStruct, pImpl->m_pTDTestDataElements, c_queryInterface, c_acquire, c_release); - uno_copyData(pRet, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire); - return CUNO_ERROR_NONE; -} -/* XLBTestBase::getValues */ -cuno_ErrorCode SAL_CALL XLBTestBase_getValues( test_XLBTestBase * pIFace, uno_Any * pExc, test_TestDataElements* pRet, sal_Bool* aBool, sal_Unicode* aChar, sal_Int8* aByte, sal_Int16* aShort, sal_uInt16* aUShort, sal_Int32* aLong, sal_uInt32* aULong, sal_Int64* aHyper, sal_uInt64* aUHyper, float* aFloat, double* aDouble, test_TestEnum* aEnum, rtl_uString** aString, com_sun_star_uno_XInterface **aInterface, uno_Any * aAny, /*sequence< test.TestElement >*/ uno_Sequence ** aSequence, test_TestDataElements * aStruct) -{ - typelib_TypeDescription* pTD = 0; - InstanceData * pImpl = GET_THIS( pIFace ); - *aBool = pImpl->m_data._Base._Base.Bool; - *aChar = pImpl->m_data._Base._Base.Char; - *aByte = pImpl->m_data._Base._Base.Byte; - *aShort = pImpl->m_data._Base._Base.Short; - *aUShort = pImpl->m_data._Base._Base.UShort; - *aLong = pImpl->m_data._Base._Base.Long; - *aULong = pImpl->m_data._Base._Base.ULong; - *aHyper = pImpl->m_data._Base._Base.Hyper; - *aUHyper = pImpl->m_data._Base._Base.UHyper; - *aFloat = pImpl->m_data._Base._Base.Float; - *aDouble = pImpl->m_data._Base._Base.Double; - *aEnum = pImpl->m_data._Base._Base.Enum; - *aString = 0; - rtl_uString_newFromString(aString, pImpl->m_data._Base.String); -/* uno_copyData(aInterface, &pImpl->m_data._Base.Interface, pImpl->m_pTDXInterface, c_acquire); */ - if ( pImpl->m_data._Base.Interface ) - { - CUNO_CALL(pImpl->m_data._Base.Interface)->acquire(pImpl->m_data._Base.Interface); - *aInterface = pImpl->m_data._Base.Interface; - } else - { - *aInterface = 0; - } - typelib_typedescriptionreference_getDescription(&pTD, pImpl->m_data._Base.Any.pType); - uno_any_construct(aAny, pImpl->m_data._Base.Any.pData, pTD, c_acquire); - typelib_typedescription_release(pTD); - uno_sequence_construct(aSequence, pImpl->m_pTDSeqTestElement, pImpl->m_data.Sequence->elements, pImpl->m_data.Sequence->nElements, c_acquire); - uno_copyData(aStruct, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire); - uno_copyData(pRet, &pImpl->m_structData, pImpl->m_pTDTestDataElements, c_acquire); - return CUNO_ERROR_NONE; -} - -/* XLanguageBindingTest =============================================================================== */ - -/* XLanguageBindingTest::getRuntimeException */ -cuno_ErrorCode SAL_CALL XLanguageBindingTest_getRuntimeException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, sal_Int32 *pRet) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - com_sun_star_uno_RuntimeException aExc; - typelib_TypeDescription * pTD = 0; - rtl_uString * pTypeName = 0; - uno_Any excp; - - rtl_uString_newFromAscii( &pTypeName, "com.sun.star.uno.RuntimeException"); - typelib_typedescription_getByName(&pTD, pTypeName); - - aExc._Base.Message = 0; - rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum..."); - aExc._Base.Context = 0; - if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) )) - { - /* ... */ - uno_any_destruct( &excp, 0 ); - } - - uno_any_construct(pExc, &aExc, pTD, c_acquire); - uno_destructData(&aExc, pTD, c_release); - typelib_typedescription_release(pTD); - rtl_uString_release(pTypeName); - - return CUNO_ERROR_EXCEPTION; -} -/* XLanguageBindingTest::setRuntimeException */ -cuno_ErrorCode SAL_CALL XLanguageBindingTest_setRuntimeException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, sal_Int32 value) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - com_sun_star_uno_RuntimeException aExc; - typelib_TypeDescription * pTD = 0; - rtl_uString * pTypeName = 0; - uno_Any excp; - - rtl_uString_newFromAscii( &pTypeName, "com.sun.star.uno.RuntimeException"); - typelib_typedescription_getByName(&pTD, pTypeName); - - aExc._Base.Message = 0; - rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum..."); - aExc._Base.Context = 0; - if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) )) - { - /* ... */ - uno_any_destruct( &excp, 0 ); - } - - uno_any_construct(pExc, &aExc, pTD, c_acquire); - uno_destructData(&aExc, pTD, c_release); - typelib_typedescription_release(pTD); - rtl_uString_release(pTypeName); - - return CUNO_ERROR_EXCEPTION; -} -/* XLanguageBindingTest::raiseException */ -cuno_ErrorCode SAL_CALL XLanguageBindingTest_raiseException( test_XLanguageBindingTest * pIFace, uno_Any * pExc, test_TestDataElements* pRet, sal_Bool* aBool, sal_Unicode* aChar, sal_Int8* aByte, sal_Int16* aShort, sal_uInt16* aUShort, sal_Int32* aLong, sal_uInt32* aULong, sal_Int64* aHyper, sal_uInt64* aUHyper, float* aFloat, double* aDouble, test_TestEnum* aEnum, rtl_uString ** aString, com_sun_star_uno_XInterface ** aInterface, uno_Any* aAny, /*sequence< test.TestElement >*/ uno_Sequence ** aSequence, test_TestDataElements* AStruct) -{ - InstanceData * pImpl = GET_THIS( pIFace ); - com_sun_star_lang_IllegalArgumentException aExc; - typelib_TypeDescription * pTD = 0; - rtl_uString * pTypeName = 0; - uno_Any excp; - - rtl_uString_newFromAscii( &pTypeName, "com.sun.star.lang.IllegalArgumentException"); - typelib_typedescription_getByName(&pTD, pTypeName); - - aExc.ArgumentPosition = 5; - aExc._Base.Message = 0; - rtl_uString_newFromAscii(&aExc._Base.Message, "dum dum dum ich tanz im kreis herum..."); - aExc._Base.Context = 0; - if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pIFace)->getInterface( (test_XLBTestBase *)pIFace, &excp, &aExc._Base.Context) )) - { - /* ... */ - uno_any_destruct( &excp, 0 ); - } - - uno_any_construct(pExc, &aExc, pTD, c_acquire); - uno_destructData(&aExc, pTD, c_release); - typelib_typedescription_release(pTD); - rtl_uString_release(pTypeName); - - return CUNO_ERROR_EXCEPTION; -} - - -static const com_sun_star_uno_XInterface_ftab s_XInterface_ftab={ - XInterface_queryInterface, - XInterface_acquire, - XInterface_release, - }; -static const test_XLBTestBase_ftab s_XLBTestBase_ftab={ - XInterface_queryInterface, - XInterface_acquire, - XInterface_release, - XLBTestBase_getBool, - XLBTestBase_setBool, - XLBTestBase_getByte, - XLBTestBase_setByte, - XLBTestBase_getChar, - XLBTestBase_setChar, - XLBTestBase_getShort, - XLBTestBase_setShort, - XLBTestBase_getUShort, - XLBTestBase_setUShort, - XLBTestBase_getLong, - XLBTestBase_setLong, - XLBTestBase_getULong, - XLBTestBase_setULong, - XLBTestBase_getHyper, - XLBTestBase_setHyper, - XLBTestBase_getUHyper, - XLBTestBase_setUHyper, - XLBTestBase_getFloat, - XLBTestBase_setFloat, - XLBTestBase_getDouble, - XLBTestBase_setDouble, - XLBTestBase_getEnum, - XLBTestBase_setEnum, - XLBTestBase_getString, - XLBTestBase_setString, - XLBTestBase_getInterface, - XLBTestBase_setInterface, - XLBTestBase_getAny, - XLBTestBase_setAny, - XLBTestBase_getSequence, - XLBTestBase_setSequence, - XLBTestBase_getStruct, - XLBTestBase_setStruct, - XLBTestBase_setValues, - XLBTestBase_setValues2, - XLBTestBase_getValues - }; -static const test_XLanguageBindingTest_ftab s_XLanguageBindingTest_ftab={ - XInterface_queryInterface, - XInterface_acquire, - XInterface_release, - XLBTestBase_getBool, - XLBTestBase_setBool, - XLBTestBase_getByte, - XLBTestBase_setByte, - XLBTestBase_getChar, - XLBTestBase_setChar, - XLBTestBase_getShort, - XLBTestBase_setShort, - XLBTestBase_getUShort, - XLBTestBase_setUShort, - XLBTestBase_getLong, - XLBTestBase_setLong, - XLBTestBase_getULong, - XLBTestBase_setULong, - XLBTestBase_getHyper, - XLBTestBase_setHyper, - XLBTestBase_getUHyper, - XLBTestBase_setUHyper, - XLBTestBase_getFloat, - XLBTestBase_setFloat, - XLBTestBase_getDouble, - XLBTestBase_setDouble, - XLBTestBase_getEnum, - XLBTestBase_setEnum, - XLBTestBase_getString, - XLBTestBase_setString, - XLBTestBase_getInterface, - XLBTestBase_setInterface, - XLBTestBase_getAny, - XLBTestBase_setAny, - XLBTestBase_getSequence, - XLBTestBase_setSequence, - XLBTestBase_getStruct, - XLBTestBase_setStruct, - XLBTestBase_setValues, - XLBTestBase_setValues2, - XLBTestBase_getValues, - XLanguageBindingTest_getRuntimeException, - XLanguageBindingTest_setRuntimeException, - XLanguageBindingTest_raiseException - }; - -com_sun_star_uno_XInterface* SAL_CALL createTestObject() -{ - InstanceData *pObj; - rtl_uString* usXInterface = 0; - rtl_uString* usSeqTestElement = 0; - rtl_uString* usTestDataElements = 0; - - /* Create a data instance of the component */ - pObj= (InstanceData*)rtl_allocateMemory( sizeof( InstanceData) ); - pObj->m_XInterface[0] = &s_XInterface_ftab; - pObj->m_XInterface[1] = pObj; - pObj->m_XLBTestBase[0] = &s_XLBTestBase_ftab; - pObj->m_XLBTestBase[1] = pObj; - pObj->m_XLanguageBindingTest[0] = &s_XLanguageBindingTest_ftab; - pObj->m_XLanguageBindingTest[1] = pObj; - - /* Initalize the reference counter member and other component data */ - pObj->m_refCount= 1; - - pObj->m_pTDXInterface = 0; - rtl_uString_newFromAscii( &usXInterface, "com.sun.star.uno.XInterface"); - typelib_typedescription_getByName(&pObj->m_pTDXInterface, usXInterface); - - pObj->m_pTDSeqTestElement = 0; - rtl_uString_newFromAscii( &usSeqTestElement, "[]test.TestElement"); - typelib_typedescription_getByName(&pObj->m_pTDSeqTestElement, usSeqTestElement); - - pObj->m_pTDTestDataElements = 0; - rtl_uString_newFromAscii( &usTestDataElements, "test.TestDataElements"); - typelib_typedescription_getByName(&pObj->m_pTDTestDataElements, usTestDataElements); - - defaultConstructData(&pObj->m_data, pObj->m_pTDSeqTestElement->pWeakRef); - defaultConstructData(&pObj->m_structData, pObj->m_pTDSeqTestElement->pWeakRef); - - rtl_uString_release(usXInterface); - rtl_uString_release(usSeqTestElement); - rtl_uString_release(usTestDataElements); - return (com_sun_star_uno_XInterface *)&pObj->m_XInterface; -} - diff --git a/cppu/test/test_di.cxx b/cppu/test/test_di.cxx deleted file mode 100644 index 88e8f9ac639d..000000000000 --- a/cppu/test/test_di.cxx +++ /dev/null @@ -1,888 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#if !defined(OSL_DEBUG_LEVEL) || OSL_DEBUG_LEVEL == 0 -# undef OSL_DEBUG_LEVEL -# define OSL_DEBUG_LEVEL 2 -#endif - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include <stdio.h> -#include <string.h> -#include <rtl/ustring.hxx> -#include <osl/diagnose.h> -#include <osl/time.h> -#include <sal/types.h> -// -#include <uno/dispatcher.h> -#include <uno/environment.h> -#include <uno/mapping.hxx> -#include <uno/data.h> - -// #include <uno/cuno.h> -// #include <test/XLanguageBindingTest.h> - -#include <cppuhelper/weak.hxx> -#include <cppuhelper/queryinterface.hxx> -#include <cppu/macros.hxx> -#include <test/XLanguageBindingTest.hpp> - -#include <cppuhelper/implbase1.hxx> - -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/lang/DisposedException.hpp> - - -using namespace test; -using namespace cppu; -using namespace osl; -using namespace rtl; -using namespace com::sun::star; -using namespace com::sun::star::uno; - - -//================================================================================================== -sal_Bool equals( const test::TestElement & rData1, const test::TestElement & rData2 ) -{ - OSL_ENSURE( rData1.Bool == rData2.Bool, "### bool does not match!" ); - OSL_ENSURE( rData1.Char == rData2.Char, "### char does not match!" ); - OSL_ENSURE( rData1.Byte == rData2.Byte, "### byte does not match!" ); - OSL_ENSURE( rData1.Short == rData2.Short, "### short does not match!" ); - OSL_ENSURE( rData1.UShort == rData2.UShort, "### unsigned short does not match!" ); - OSL_ENSURE( rData1.Long == rData2.Long, "### long does not match!" ); - OSL_ENSURE( rData1.ULong == rData2.ULong, "### unsigned long does not match!" ); - OSL_ENSURE( rData1.Hyper == rData2.Hyper, "### hyper does not match!" ); - OSL_ENSURE( rData1.UHyper == rData2.UHyper, "### unsigned hyper does not match!" ); - OSL_ENSURE( rData1.Float == rData2.Float, "### float does not match!" ); - OSL_ENSURE( rData1.Double == rData2.Double, "### double does not match!" ); - OSL_ENSURE( rData1.Enum == rData2.Enum, "### enum does not match!" ); - OSL_ENSURE( rData1.String == rData2.String, "### string does not match!" ); - OSL_ENSURE( rData1.Interface == rData2.Interface, "### interface does not match!" ); - OSL_ENSURE( rData1.Any == rData2.Any, "### any does not match!" ); - - return (rData1.Bool == rData2.Bool && - rData1.Char == rData2.Char && - rData1.Byte == rData2.Byte && - rData1.Short == rData2.Short && - rData1.UShort == rData2.UShort && - rData1.Long == rData2.Long && - rData1.ULong == rData2.ULong && - rData1.Hyper == rData2.Hyper && - rData1.UHyper == rData2.UHyper && - rData1.Float == rData2.Float && - rData1.Double == rData2.Double && - rData1.Enum == rData2.Enum && - rData1.String == rData2.String && - rData1.Interface == rData2.Interface && - rData1.Any == rData2.Any); -} -//================================================================================================== -sal_Bool equals( const test::TestData & rData1, const test::TestData & rData2 ) -{ - sal_Int32 nLen; - - if ((rData1.Sequence == rData2.Sequence) && - equals( (const test::TestElement &)rData1, (const test::TestElement &)rData2 ) && - (nLen = rData1.Sequence.getLength()) == rData2.Sequence.getLength()) - { - // once again by hand sequence == - const test::TestElement * pElements1 = rData1.Sequence.getConstArray(); - const test::TestElement * pElements2 = rData2.Sequence.getConstArray(); - for ( ; nLen--; ) - { - if (! equals( pElements1[nLen], pElements2[nLen] )) - { - OSL_ENSURE( sal_False, "### sequence element did not match!" ); - return sal_False; - } - } - return sal_True; - } - return sal_False; -} -//================================================================================================== -void assign( test::TestElement & rData, - sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte, - sal_Int16 nShort, sal_uInt16 nUShort, - sal_Int32 nLong, sal_uInt32 nULong, - sal_Int64 nHyper, sal_uInt64 nUHyper, - float fFloat, double fDouble, - test::TestEnum eEnum, const ::rtl::OUString& rStr, - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - const ::com::sun::star::uno::Any& rAny ) -{ - rData.Bool = bBool; - rData.Char = cChar; - rData.Byte = nByte; - rData.Short = nShort; - rData.UShort = nUShort; - rData.Long = nLong; - rData.ULong = nULong; - rData.Hyper = nHyper; - rData.UHyper = nUHyper; - rData.Float = fFloat; - rData.Double = fDouble; - rData.Enum = eEnum; - rData.String = rStr; - rData.Interface = xTest; - rData.Any = rAny; -} -//================================================================================================== -void assign( test::TestData & rData, - sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte, - sal_Int16 nShort, sal_uInt16 nUShort, - sal_Int32 nLong, sal_uInt32 nULong, - sal_Int64 nHyper, sal_uInt64 nUHyper, - float fFloat, double fDouble, - test::TestEnum eEnum, const ::rtl::OUString& rStr, - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - const ::com::sun::star::uno::Any& rAny, - const com::sun::star::uno::Sequence< test::TestElement >& rSequence ) -{ - assign( (test::TestElement &)rData, - bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble, - eEnum, rStr, xTest, rAny ); - rData.Sequence = rSequence; -} - -//================================================================================================== -class TestDummy : public OWeakObject -{ -public: - sal_Int32 getRefCount() const - { return m_refCount; } - - virtual ~TestDummy() - { OSL_TRACE( "> scalar TestDummy dtor <\n" ); } -}; -//================================================================================================== -class Test_Impl : public cppu::WeakImplHelper1< XLanguageBindingTest > -{ - test::TestData _aData, _aStructData; - -public: - sal_Int32 getRefCount() const - { return m_refCount; } - - virtual ~Test_Impl() - { OSL_TRACE( "> scalar Test_Impl dtor <\n" ); } - - // XLBTestBase - virtual void SAL_CALL setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte, - sal_Int16 nShort, sal_uInt16 nUShort, - sal_Int32 nLong, sal_uInt32 nULong, - sal_Int64 nHyper, sal_uInt64 nUHyper, - float fFloat, double fDouble, - test::TestEnum eEnum, const ::rtl::OUString& rStr, - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - const ::com::sun::star::uno::Any& rAny, - const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence, - const test::TestData& rStruct ) - throw(com::sun::star::uno::RuntimeException); - - virtual test::TestData SAL_CALL setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte, - sal_Int16& nShort, sal_uInt16& nUShort, - sal_Int32& nLong, sal_uInt32& nULong, - sal_Int64& nHyper, sal_uInt64& nUHyper, - float& fFloat, double& fDouble, - test::TestEnum& eEnum, rtl::OUString& rStr, - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - ::com::sun::star::uno::Any& rAny, - ::com::sun::star::uno::Sequence<test::TestElement >& rSequence, - test::TestData& rStruct ) - throw(com::sun::star::uno::RuntimeException); - - virtual test::TestData SAL_CALL getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte, - sal_Int16& nShort, sal_uInt16& nUShort, - sal_Int32& nLong, sal_uInt32& nULong, - sal_Int64& nHyper, sal_uInt64& nUHyper, - float& fFloat, double& fDouble, - test::TestEnum& eEnum, rtl::OUString& rStr, - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - ::com::sun::star::uno::Any& rAny, - ::com::sun::star::uno::Sequence< test::TestElement >& rSequence, - test::TestData& rStruct ) - throw(com::sun::star::uno::RuntimeException); - - virtual test::SmallStruct echoSmallStruct(const test::SmallStruct& rStruct) throw(com::sun::star::uno::RuntimeException) - { return rStruct; } - virtual test::MediumStruct echoMediumStruct(const test::MediumStruct& rStruct) throw(com::sun::star::uno::RuntimeException) - { return rStruct; } - virtual test::BigStruct echoBigStruct(const test::BigStruct& rStruct) throw(com::sun::star::uno::RuntimeException) - { return rStruct; } - virtual test::AllFloats echoAllFloats(const test::AllFloats& rStruct) throw(com::sun::star::uno::RuntimeException) - { return rStruct; } - - virtual sal_Bool SAL_CALL getBool() throw(com::sun::star::uno::RuntimeException) - { return _aData.Bool; } - virtual sal_Int8 SAL_CALL getByte() throw(com::sun::star::uno::RuntimeException) - { return _aData.Byte; } - virtual sal_Unicode SAL_CALL getChar() throw(com::sun::star::uno::RuntimeException) - { return _aData.Char; } - virtual sal_Int16 SAL_CALL getShort() throw(com::sun::star::uno::RuntimeException) - { return _aData.Short; } - virtual sal_uInt16 SAL_CALL getUShort() throw(com::sun::star::uno::RuntimeException) - { return _aData.UShort; } - virtual sal_Int32 SAL_CALL getLong() throw(com::sun::star::uno::RuntimeException) - { return _aData.Long; } - virtual sal_uInt32 SAL_CALL getULong() throw(com::sun::star::uno::RuntimeException) - { return _aData.ULong; } - virtual sal_Int64 SAL_CALL getHyper() throw(com::sun::star::uno::RuntimeException) - { return _aData.Hyper; } - virtual sal_uInt64 SAL_CALL getUHyper() throw(com::sun::star::uno::RuntimeException) - { return _aData.UHyper; } - virtual float SAL_CALL getFloat() throw(com::sun::star::uno::RuntimeException) - { return _aData.Float; } - virtual double SAL_CALL getDouble() throw(com::sun::star::uno::RuntimeException) - { return _aData.Double; } - virtual test::TestEnum SAL_CALL getEnum() throw(com::sun::star::uno::RuntimeException) - { return _aData.Enum; } - virtual rtl::OUString SAL_CALL getString() throw(com::sun::star::uno::RuntimeException) - { return _aData.String; } - virtual com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getInterface( ) throw(com::sun::star::uno::RuntimeException) - { return _aData.Interface; } - virtual com::sun::star::uno::Any SAL_CALL getAny() throw(com::sun::star::uno::RuntimeException) - { return _aData.Any; } - virtual com::sun::star::uno::Sequence< test::TestElement > SAL_CALL getSequence() throw(com::sun::star::uno::RuntimeException) - { return _aData.Sequence; } - virtual test::TestData SAL_CALL getStruct() throw(com::sun::star::uno::RuntimeException) - { return _aStructData; } - - virtual void SAL_CALL setBool( sal_Bool _bool ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Bool = _bool; } - virtual void SAL_CALL setByte( sal_Int8 _byte ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Byte = _byte; } - virtual void SAL_CALL setChar( sal_Unicode _char ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Char = _char; } - virtual void SAL_CALL setShort( sal_Int16 _short ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Short = _short; } - virtual void SAL_CALL setUShort( sal_uInt16 _ushort ) throw(::com::sun::star::uno::RuntimeException) - { _aData.UShort = _ushort; } - virtual void SAL_CALL setLong( sal_Int32 _long ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Long = _long; } - virtual void SAL_CALL setULong( sal_uInt32 _ulong ) throw(::com::sun::star::uno::RuntimeException) - { _aData.ULong = _ulong; } - virtual void SAL_CALL setHyper( sal_Int64 _hyper ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Hyper = _hyper; } - virtual void SAL_CALL setUHyper( sal_uInt64 _uhyper ) throw(::com::sun::star::uno::RuntimeException) - { _aData.UHyper = _uhyper; } - virtual void SAL_CALL setFloat( float _float ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Float = _float; } - virtual void SAL_CALL setDouble( double _double ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Double = _double; } - virtual void SAL_CALL setEnum( test::TestEnum _enum ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Enum = _enum; } - virtual void SAL_CALL setString( const ::rtl::OUString& _string ) throw(::com::sun::star::uno::RuntimeException) - { _aData.String = _string; } - virtual void SAL_CALL setInterface( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _interface ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Interface = _interface; } - virtual void SAL_CALL setAny( const ::com::sun::star::uno::Any& _any ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Any = _any; } - virtual void SAL_CALL setSequence( const ::com::sun::star::uno::Sequence<test::TestElement >& _sequence ) throw(::com::sun::star::uno::RuntimeException) - { _aData.Sequence = _sequence; } - virtual void SAL_CALL setStruct( const test::TestData& _struct ) throw(::com::sun::star::uno::RuntimeException) - { _aStructData = _struct; } - - // XLanguageBindingTest - virtual test::TestData SAL_CALL raiseException( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte, sal_Int16& nShort, sal_uInt16& nUShort, sal_Int32& nLong, sal_uInt32& nULong, sal_Int64& nHyper, sal_uInt64& nUHyper, float& fFloat, double& fDouble, test::TestEnum& eEnum, ::rtl::OUString& aString, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xInterface, ::com::sun::star::uno::Any& aAny, ::com::sun::star::uno::Sequence<test::TestElement >& aSequence,test::TestData& aStruct ) - throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException); - - virtual sal_Int32 SAL_CALL getRuntimeException() throw(::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL setRuntimeException( sal_Int32 _runtimeexception ) throw(::com::sun::star::uno::RuntimeException); -}; -//__________________________________________________________________________________________________ -void Test_Impl::setValues( sal_Bool bBool, sal_Unicode cChar, sal_Int8 nByte, - sal_Int16 nShort, sal_uInt16 nUShort, - sal_Int32 nLong, sal_uInt32 nULong, - sal_Int64 nHyper, sal_uInt64 nUHyper, - float fFloat, double fDouble, - test::TestEnum eEnum, const ::rtl::OUString& rStr, - const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - const ::com::sun::star::uno::Any& rAny, - const ::com::sun::star::uno::Sequence<test::TestElement >& rSequence, - const test::TestData& rStruct ) - throw(com::sun::star::uno::RuntimeException) -{ - assign( _aData, - bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble, - eEnum, rStr, xTest, rAny, rSequence ); - _aStructData = rStruct; -} -//__________________________________________________________________________________________________ -test::TestData Test_Impl::setValues2( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte, - sal_Int16& nShort, sal_uInt16& nUShort, - sal_Int32& nLong, sal_uInt32& nULong, - sal_Int64& nHyper, sal_uInt64& nUHyper, - float& fFloat, double& fDouble, - test::TestEnum& eEnum, rtl::OUString& rStr, - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - ::com::sun::star::uno::Any& rAny, - ::com::sun::star::uno::Sequence<test::TestElement >& rSequence, - test::TestData& rStruct ) - throw(com::sun::star::uno::RuntimeException) -{ - assign( _aData, - bBool, cChar, nByte, nShort, nUShort, nLong, nULong, nHyper, nUHyper, fFloat, fDouble, - eEnum, rStr, xTest, rAny, rSequence ); - _aStructData = rStruct; - return _aStructData; -} -//__________________________________________________________________________________________________ -test::TestData Test_Impl::getValues( sal_Bool& bBool, sal_Unicode& cChar, sal_Int8& nByte, - sal_Int16& nShort, sal_uInt16& nUShort, - sal_Int32& nLong, sal_uInt32& nULong, - sal_Int64& nHyper, sal_uInt64& nUHyper, - float& fFloat, double& fDouble, - test::TestEnum& eEnum, rtl::OUString& rStr, - ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xTest, - ::com::sun::star::uno::Any& rAny, - ::com::sun::star::uno::Sequence<test::TestElement >& rSequence, - test::TestData& rStruct ) - throw(com::sun::star::uno::RuntimeException) -{ - bBool = _aData.Bool; - cChar = _aData.Char; - nByte = _aData.Byte; - nShort = _aData.Short; - nUShort = _aData.UShort; - nLong = _aData.Long; - nULong = _aData.ULong; - nHyper = _aData.Hyper; - nUHyper = _aData.UHyper; - fFloat = _aData.Float; - fDouble = _aData.Double; - eEnum = _aData.Enum; - rStr = _aData.String; - xTest = _aData.Interface; - rAny = _aData.Any; - rSequence = _aData.Sequence; - rStruct = _aStructData; - return _aStructData; -} - -//================================================================================================== -static sal_Bool performTest( - const Reference< XLanguageBindingTest > & xLBT, - const Reference< XInterface > & xDummyInterface ) -{ - OSL_ENSURE( xLBT.is() && xDummyInterface.is(), "### no test interfaces!" ); - if (xLBT.is() && xDummyInterface.is()) - { - // this data is never ever granted access to by calls other than equals(), assign()! - test::TestData aData; // test against this data - - assign( (test::TestElement &)aData, - sal_True, '@', 17, 0x1234, 0xfedc, 0x12345678, 0xfedcba98, - SAL_CONST_INT64(0x123456789abcdef0), - SAL_CONST_UINT64(0xfedcba9876543210), - (float)17.0815, 3.1415926359, TestEnum_LOLA, - OUString::createFromAscii("dumdidum"), xDummyInterface, - makeAny( xDummyInterface ) ); - aData.Sequence = Sequence<test::TestElement >( (const test::TestElement *)&aData, 1 ); - OSL_ENSURE( aData.Any == xDummyInterface, "### unexpected any!" ); - OSL_ENSURE( !(aData.Any != xDummyInterface), "### unexpected any!" ); - - // aData complete ==> never touched again - //================================================================================ - - // this is a manually copy of aData for first setting... - test::TestData aSetData0( aData ); // copy ctor - // assignment - test::TestData aSetData1 = aSetData0; - - test::TestData aSetData; - assign( (test::TestElement &)aSetData, - aSetData1.Bool, aSetData1.Char, aSetData1.Byte, aSetData1.Short, aSetData1.UShort, - aSetData1.Long, aSetData1.ULong, aSetData1.Hyper, aSetData1.UHyper, - aSetData1.Float, aSetData1.Double, - aSetData1.Enum, aSetData1.String, aSetData1.Interface, aSetData1.Any ); - // switch over to new sequence allocation - aSetData.Sequence = Sequence<test::TestElement >( (const test::TestElement *)&aSetData, 1 ); - - xLBT->setValues( - aSetData.Bool, aSetData.Char, aSetData.Byte, aSetData.Short, aSetData.UShort, - aSetData.Long, aSetData.ULong, aSetData.Hyper, aSetData.UHyper, aSetData.Float, aSetData.Double, - aSetData.Enum, aSetData.String, aSetData.Interface, aSetData.Any, aSetData.Sequence, aSetData ); - - { - test::TestData aRet, aRet2; - xLBT->getValues( - aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort, - aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double, - aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 ); - - OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) ); - - // set last retrieved values - test::TestData aSV2ret = xLBT->setValues2( - aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort, - aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double, - aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 ); - - OSL_ASSERT( equals( aData, aSV2ret ) && equals( aData, aRet2 ) ); - } - { - test::TestData aRet, aRet2; - test::TestData aGVret = xLBT->getValues( - aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort, - aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double, - aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 ); - - OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) && equals( aData, aGVret ) ); - - // set last retrieved values - xLBT->setBool( aRet.Bool ); - xLBT->setChar( aRet.Char ); - xLBT->setByte( aRet.Byte ); - xLBT->setShort( aRet.Short ); - xLBT->setUShort( aRet.UShort ); - xLBT->setLong( aRet.Long ); - xLBT->setULong( aRet.ULong ); - xLBT->setHyper( aRet.Hyper ); - xLBT->setUHyper( aRet.UHyper ); - xLBT->setFloat( aRet.Float ); - xLBT->setDouble( aRet.Double ); - xLBT->setEnum( aRet.Enum ); - xLBT->setString( aRet.String ); - xLBT->setInterface( aRet.Interface ); - xLBT->setAny( aRet.Any ); - xLBT->setSequence( aRet.Sequence ); - xLBT->setStruct( aRet2 ); - } - { - test::TestData aRet, aRet2; - aRet.Hyper = xLBT->getHyper(); - aRet.UHyper = xLBT->getUHyper(); - aRet.Float = xLBT->getFloat(); - aRet.Double = xLBT->getDouble(); - aRet.Byte = xLBT->getByte(); - aRet.Char = xLBT->getChar(); - aRet.Bool = xLBT->getBool(); - aRet.Short = xLBT->getShort(); - aRet.UShort = xLBT->getUShort(); - aRet.Long = xLBT->getLong(); - aRet.ULong = xLBT->getULong(); - aRet.Enum = xLBT->getEnum(); - aRet.String = xLBT->getString(); - aRet.Interface = xLBT->getInterface(); - aRet.Any = xLBT->getAny(); - aRet.Sequence = xLBT->getSequence(); - aRet2 = xLBT->getStruct(); - - OSL_ASSERT( equals( aData, aRet ) && equals( aData, aRet2 ) ); - } - { - test::SmallStruct aIn(1, 2); - test::SmallStruct aOut = xLBT->echoSmallStruct(aIn); - OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::SmallStruct)) == 0 ); - } - { - test::MediumStruct aIn(1, 2, 3, 4); - test::MediumStruct aOut = xLBT->echoMediumStruct(aIn); - OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::MediumStruct)) == 0 ); - } - { - test::BigStruct aIn(1, 2, 3, 4, 5, 6, 7, 8); - test::BigStruct aOut = xLBT->echoBigStruct(aIn); - OSL_ASSERT( memcmp(&aIn, &aOut, sizeof(test::BigStruct)) == 0 ); - } - { - test::AllFloats aIn(1.1, 2.2, 3.3, 4.4); - test::AllFloats aOut = xLBT->echoAllFloats(aIn); - return( memcmp(&aIn, &aOut, sizeof(test::AllFloats)) == 0 ); - } - } - return sal_False; -} - -//__________________________________________________________________________________________________ -test::TestData Test_Impl::raiseException( sal_Bool& /*bBool*/, sal_Unicode& /*cChar*/, sal_Int8& /*nByte*/, sal_Int16& /*nShort*/, sal_uInt16& /*nUShort*/, sal_Int32& /*nLong*/, sal_uInt32& /*nULong*/, sal_Int64& /*nHyper*/, sal_uInt64& /*nUHyper*/, float& /*fFloat*/, double& /*fDouble*/, test::TestEnum& /*eEnum*/, ::rtl::OUString& /*aString*/, ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& /*xInterface*/, ::com::sun::star::uno::Any& /*aAny*/, ::com::sun::star::uno::Sequence< test::TestElement >& /*aSequence*/, test::TestData& /*aStruct*/ ) - throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException) -{ - lang::IllegalArgumentException aExc; - aExc.ArgumentPosition = 5; - aExc.Message = OUString::createFromAscii( "dum dum dum ich tanz im kreis herum..." ); - aExc.Context = getInterface(); - throw aExc; -} -//__________________________________________________________________________________________________ -sal_Int32 Test_Impl::getRuntimeException() throw(::com::sun::star::uno::RuntimeException) -{ - lang::DisposedException aExc; - aExc.Message = OUString::createFromAscii( "dum dum dum ich tanz im kreis herum..." ); - aExc.Context = getInterface(); - throw aExc; -} -//__________________________________________________________________________________________________ -void Test_Impl::setRuntimeException( sal_Int32 /*_runtimeexception*/ ) throw(::com::sun::star::uno::RuntimeException) -{ - lang::DisposedException aExc; - aExc.Message = OUString::createFromAscii( "dum dum dum ich tanz im kreis herum..." ); - aExc.Context = getInterface(); - throw aExc; -} - -static void raising1( const Reference< XLanguageBindingTest > & xLBT ) -{ - test::TestData aRet, aRet2; - xLBT->raiseException( - aRet.Bool, aRet.Char, aRet.Byte, aRet.Short, aRet.UShort, - aRet.Long, aRet.ULong, aRet.Hyper, aRet.UHyper, aRet.Float, aRet.Double, - aRet.Enum, aRet.String, aRet.Interface, aRet.Any, aRet.Sequence, aRet2 ); -} -static void raising2( const Reference< XLanguageBindingTest > & xLBT ) -{ - try - { - raising1( xLBT ); - } - catch (RuntimeException &) - { - } - catch (...) - { - throw; - } -} -//================================================================================================== -sal_Bool raiseException( const Reference< XLanguageBindingTest > & xLBT ) -{ - try - { - xLBT->getRuntimeException(); - } - catch (lang::DisposedException & exc) - { - OSL_ENSURE( exc.Context == xLBT->getInterface() && - exc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ), - "### unexpected exception content!" ); - } - catch (RuntimeException &) - { - } - catch (Exception &) - { - return sal_False; - } - catch (...) - { - return sal_False; - } - - sal_Int32 nCount = 0; - try - { - try - { - try - { - raising2( xLBT ); - } - catch (RuntimeException &) - { - } - catch (lang::IllegalArgumentException aExc) - { - ++nCount; - OSL_ENSURE( aExc.ArgumentPosition == 5 && - aExc.Context == xLBT->getInterface() && - aExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ), - "### unexpected exception content!" ); - - /** it is certain, that the RuntimeException testing will fail, if no */ - xLBT->getRuntimeException(); - } - } - catch (const RuntimeException & rExc) - { - ++nCount; - OSL_ENSURE( rExc.Context == xLBT->getInterface() && - rExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ), - "### unexpected exception content!" ); - - /** it is certain, that the RuntimeException testing will fail, if no */ - xLBT->setRuntimeException( 0xcafebabe ); - } - catch (lang::IllegalArgumentException &) - { - } - } - catch (Exception & rExc) - { - ++nCount; - OSL_ENSURE( rExc.Context == xLBT->getInterface() && - rExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") ), - "### unexpected exception content!" ); - return (nCount == 3 && - rExc.Context == xLBT->getInterface() && - rExc.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("dum dum dum ich tanz im kreis herum...") )); - } - return sal_False; -} - -//================================================================================================== -static void checkInvalidInterfaceQuery( - Reference< XInterface > const & xObj ) -{ - try - { - Any aRet( xObj->queryInterface( ::getCppuType( (const lang::IllegalArgumentException *)0 ) ) ); - OSL_ASSERT( ! aRet.hasValue() ); - } - catch (RuntimeException &) - { - } - try - { - Reference< lang::XComponent > xComp( xObj, UNO_QUERY_THROW ); - OSL_ASSERT( 0 ); - } - catch (RuntimeException & /*exc*/) - { -// OString str( OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) ); -// OSL_TRACE( str.getStr() ); - } -} - -//================================================================================================== -static bool perform_test( - Reference< XLanguageBindingTest > const & xObj, - Reference< XInterface > const & xDummy ) -{ - checkInvalidInterfaceQuery( xObj ); - - if (performTest( xObj, xDummy )) - { - ::fprintf( stderr, "> invocation test succeeded!\n" ); - if (raiseException( xObj )) - { - ::fprintf( stderr, "> exception test succeeded!\n" ); - return true; - } - else - { - ::fprintf( stderr, "> exception test failed!\n" ); - } - } - - ::fprintf( stderr, "> dynamic invocation test failed!\n" ); - return false; -} - -//================================================================================================== -void test_CppBridge(void) -{ - // C++-UNO test - { - TestDummy * p = new TestDummy(); - Reference< XInterface > xDummy( *p ); - { - Test_Impl * p2 = new Test_Impl(); - Reference< XLanguageBindingTest > xOriginal( p2 ); - checkInvalidInterfaceQuery( xOriginal ); - { - const char * pExtraMapping = ""; - - Reference< XLanguageBindingTest > xMapped; - { - uno_Interface * pUnoI = 0; - - OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ); - OUString aUnoEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ); - - uno_Environment * pCppEnv = 0; - uno_Environment * pUnoEnv = 0; - ::uno_getEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 ); - ::uno_getEnvironment( &pUnoEnv, aUnoEnvTypeName.pData, 0 ); - - // C++ -> UNO - Mapping mapping( pCppEnv, pUnoEnv ); - mapping.mapInterface( (void **)&pUnoI, xOriginal.get(), ::getCppuType( &xOriginal ) ); - -#ifdef EXTRA_MAPPING - // UNO -> ano C++a - ::uno_createEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 ); - mapping = Mapping( pUnoEnv, pCppEnv ); - mapping.mapInterface( (void **)&xMapped, pUnoI, ::getCppuType( &xMapped ) ); - // ano C++a -> ano UNOa - ::uno_createEnvironment( &pUnoEnv, aUnoEnvTypeName.pData, 0 ); - mapping = Mapping( pCppEnv, pUnoEnv ); - mapping.mapInterface( (void **)&pUnoI, xMapped.get(), ::getCppuType( &xMapped ) ); - pExtraMapping = " <-> c++ <-> uno"; -#endif - - // ano UNOa -> ano C++b - ::uno_createEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 ); - mapping = Mapping( pUnoEnv, pCppEnv ); - mapping.mapInterface( (void **)&xMapped, pUnoI, ::getCppuType( &xMapped ) ); - (*pUnoI->release)( pUnoI ); - (*pCppEnv->release)( pCppEnv ); - (*pUnoEnv->release)( pUnoEnv ); - } - - if (perform_test( xMapped, xDummy )) - { - ::fprintf( stderr, "> C++-UNO test (c++ <-> uno%s <-> c++ [component impl]) succeeded!\n", pExtraMapping ); - } - else - { - ::fprintf( stderr, "> C++-UNO test (c++ <-> uno%s <-> c++ [component impl]) failed!\n", pExtraMapping ); - exit( 1 ); - } - } - OSL_ENSURE( p2->getRefCount() == 1, "### test object ref count > 1 !" ); - } - OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" ); - } -} - -//================================================================================================== -void test_CBridge(void) -{ - // C-UNO test - { - TestDummy * p = new TestDummy(); - Reference< XInterface > xDummy( *p ); - { - Test_Impl * p2 = new Test_Impl(); - Reference< XLanguageBindingTest > xOriginal( p2 ); - checkInvalidInterfaceQuery( xOriginal ); - { - Reference< XLanguageBindingTest > xMapped; - { - uno_Interface * pUnoI2 = 0; - void * pC = 0; - uno_Interface * pUnoI1 = 0; - - OUString aCppEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ); - OUString aCEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_C) ); - OUString aUnoEnvTypeName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ); - - // C++ -> UNO - uno_Environment * pCppEnv = 0; - uno_Environment * pUnoEnv = 0; - ::uno_getEnvironment( &pCppEnv, aCppEnvTypeName.pData, 0 ); - ::uno_getEnvironment( &pUnoEnv, aUnoEnvTypeName.pData, 0 ); - Mapping aCpp2Uno( pCppEnv, pUnoEnv ); - aCpp2Uno.mapInterface( (void **)&pUnoI1, xOriginal.get(), ::getCppuType( &xOriginal ) ); - (*pCppEnv->release)( pCppEnv ); - - // UNO -> C - uno_Environment * pCEnv = 0; - ::uno_getEnvironment( &pCEnv, aCEnvTypeName.pData, 0 ); - Mapping aUno2C( pUnoEnv, pCEnv ); - aUno2C.mapInterface( &pC, pUnoI1, ::getCppuType( &xOriginal ) ); - (*pUnoI1->release)( pUnoI1 ); - (*pUnoEnv->release)( pUnoEnv ); - - // C -> ano UNO - uno_Environment * pAnoUnoEnv = 0; - ::uno_createEnvironment( &pAnoUnoEnv, aUnoEnvTypeName.pData, 0 ); // anonymous - Mapping aC2Uno( pCEnv, pAnoUnoEnv ); - aC2Uno.mapInterface( (void **)&pUnoI2, pC, ::getCppuType( &xOriginal ) ); - (*pCEnv->pExtEnv->releaseInterface)( pCEnv->pExtEnv, pC ); - (*pCEnv->release)( pCEnv ); - - // ano UNO -> ano C++ - uno_Environment * pAnoCppEnv = 0; - ::uno_createEnvironment( &pAnoCppEnv, aCppEnvTypeName.pData, 0 ); - Mapping aUno2Cpp( pAnoUnoEnv, pAnoCppEnv ); - (*pAnoCppEnv->release)( pAnoCppEnv ); - (*pAnoUnoEnv->release)( pAnoUnoEnv ); - aUno2Cpp.mapInterface( (void **)&xMapped, pUnoI2, ::getCppuType( &xOriginal ) ); - (*pUnoI2->release)( pUnoI2 ); - } - - if (perform_test( xMapped, xDummy )) - { - ::fprintf( stderr, "> C-UNO test (c++ <-> uno <-> c <-> uno <-> c++ [component impl]) succeeded!\n" ); - } - else - { - ::fprintf( stderr, "> C-UNO test (c++ <-> uno <-> c <-> uno <-> c++ [component impl]) failed!\n" ); - exit( 1 ); - } - } - OSL_ENSURE( p->getRefCount() == 1, "### test object ref count > 1 !" ); - } - OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" ); - } -} -#if 0 -//================================================================================================== -extern "C" com_sun_star_uno_XInterface* SAL_CALL createTestObject(); - -void test_CBridge2(void) -{ - // C-UNO test - { - TestDummy * p = new TestDummy(); - Reference< XInterface > xDummy( *p ); - { - com_sun_star_uno_XInterface* pXIface = createTestObject(); - test_XLanguageBindingTest* pXLBTest = 0; - uno_Any aExc; - Reference< XLanguageBindingTest > xMapped; - - OSL_ENSURE( pXIface != 0, "create test object failed\n"); - - /* Get interface XFoo2 */ - if (CUNO_EXCEPTION_OCCURED( CUNO_CALL(pXIface)->queryInterface( pXIface, &aExc, (com_sun_star_uno_XInterface**)&pXLBTest, ::getCppuType( &xMapped ).getTypeLibType()) )) - { - uno_any_destruct( &aExc, 0 ); - } - OSL_ENSURE( pXLBTest != 0, "query_Interface XLanguageBindingTest failed\n"); - - Mapping aC2Cpp( - OUString( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_C) ), - OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ) ); - aC2Cpp.mapInterface( (void **)&xMapped, pXLBTest, ::getCppuType( &xMapped ) ); - - OSL_ENSURE( xMapped.is(), "mapping interface failed\n"); - - if (perform_test( xMapped, xDummy )) - { - ::fprintf( stderr, "> second C-UNO test (c++ <-> uno <-> c [component impl]) succeeded!\n" ); - } - else - { - ::fprintf( stderr, "> second C-UNO test (c++ <-> uno <-> c [component impl]) failed!\n" ); - exit( 1 ); - } - - - CUNO_CALL(pXIface)->release( pXIface ); - CUNO_CALL(pXLBTest)->release( (com_sun_star_uno_XInterface *)pXLBTest ); - } - OSL_ENSURE( p->getRefCount() == 1, "### dummy object ref count > 1 !" ); - } - -} -#endif - diff --git a/cppu/test/test_sec.cxx b/cppu/test/test_sec.cxx deleted file mode 100644 index 0bc3585e23d0..000000000000 --- a/cppu/test/test_sec.cxx +++ /dev/null @@ -1,211 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include <stdio.h> - - -#include <uno/current_context.hxx> - -#include <cppuhelper/implbase1.hxx> - -#include <com/sun/star/lang/XMultiServiceFactory.hpp> -#include <com/sun/star/lang/XSingleServiceFactory.hpp> -#include <com/sun/star/loader/XImplementationLoader.hpp> -#include <com/sun/star/container/XNameContainer.hpp> - -using namespace rtl; -using namespace cppu; -using namespace com::sun::star::uno; -using namespace com::sun::star::security; -using namespace com::sun::star::lang; -using namespace com::sun::star::loader; -using namespace com::sun::star::registry; -using namespace com::sun::star::container; - - -static inline void out( const sal_Char * p ) -{ - ::fprintf( stderr, p ); -} -static inline void out( const OUString & r ) -{ - OString aStr( OUStringToOString( r, RTL_TEXTENCODING_ASCII_US ) ); - out( aStr.getStr() ); -} - - -static Reference< XInterface > load( - const Reference< XMultiServiceFactory > & xMgr, - const char * service, - const char * implName, const char * activator, const char * loc ) throw () -{ - Reference< XInterface > xRet( - xMgr->createInstance( OUString::createFromAscii( service ) ) ); - if (xRet.is()) - return xRet; - - try - { - Reference< XImplementationLoader > xLoader( - xMgr->createInstance( OUString::createFromAscii( activator ) ), UNO_QUERY ); - if (xLoader.is()) - { - Reference< XSingleServiceFactory > xFac( xLoader->activate( - OUString::createFromAscii( implName ), OUString(), - OUString::createFromAscii( loc ), - Reference< XRegistryKey >() ), UNO_QUERY ); - if (xFac.is()) - return xFac->createInstance(); - } - else - { - out( "### cannot activate loader \"" ); - out( activator ); - out( "\"!\n" ); - } - } - catch (Exception &) - { - out( "### cannot activate service \"" ); - out( service ); - out( "\"!\n" ); - } - return Reference< XInterface >(); -} - -static void setEnv( const Reference< XMultiServiceFactory > & xMgr ) throw () -{ - OSL_ASSERT( xMgr.is() ); - Reference< XNameContainer > xContext( getCurrentContext(), UNO_QUERY ); - OSL_ASSERT( xContext.is() ); - - try - { - xContext->insertByName( - OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.ServiceManager") ), - makeAny( xMgr ) ); - xContext->insertByName( - OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.security.AccessController") ), - makeAny( load( xMgr, - "com.sun.star.security.AccessController", - "com.sun.star.comp.security.AccessController", - "com.sun.star.loader.Java2", - "com.sun.star.comp.security.AccessController" ) ) ); - xContext->insertByName( - OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.security.auth.login.LoginContext") ), - makeAny( load( xMgr, - "com.sun.star.security.auth.login.LoginContext", - "com.sun.star.comp.security.auth.login.LoginContext", - "com.sun.star.loader.Java2", - "com.sun.star.comp.security.auth.login.LoginContext" ) ) ); - } - catch (Exception & rExc) - { - out( "### exception occured: " ); - out( rExc.Message ); - out( "\n" ); - } -} - -//################################################################################################## -//################################################################################################## -//################################################################################################## - -struct PrivAction : WeakImplHelper1< XPrivilegedAction > -{ - virtual Any SAL_CALL run() - throw (Exception) - { - throw IllegalArgumentException( - OUString::createFromAscii("testtest"), (OWeakObject *)this, (sal_Int16)5 ); - } -}; - -struct Thread1 : public OThread -{ - Reference< XMultiServiceFactory > _xMgr; - - Thread1( const Reference< XMultiServiceFactory > & xMgr ) - : _xMgr( xMgr ) - {} - - void f() - { - Reference< XNameAccess > xAccess( getCurrentContext(), UNO_QUERY ); - OSL_ASSERT( xAccess->getByName( OUString::createFromAscii("a") ) == (sal_Int16)5 ); - Reference< XNameContainer > xCont( getCurrentContext(), UNO_QUERY ); - xCont->insertByName( OUString::createFromAscii("b"), makeAny( (sal_Int32)6 ) ); - } - virtual void SAL_CALL run() - { - try - { - setEnv( _xMgr ); - Reference< XNameContainer > xCont( getCurrentContext(), UNO_QUERY ); - xCont->insertByName( OUString::createFromAscii("a"), makeAny( (sal_Int32)5 ) ); - f(); - Reference< XNameAccess > xAccess( getCurrentContext(), UNO_QUERY ); - OSL_ASSERT( xAccess->getByName( OUString::createFromAscii("b") ) == (sal_Int16)6 ); - -// checkPermission( -// Permission( OUString::createFromAscii("java.io.FilePermission"), -// OUString::createFromAscii("f:\\userprofiles.dat"), -// OUString::createFromAscii("read") ) ); - -// try -// { -// Reference< XCurrentContext > xContext( getCurrentContext() ); -// Reference< XAccessController > xACC( xContext->getAccessController() ); -// xACC->doPrivileged( new PrivAction(), Reference< XAccessControlContext >() ); -// } -// catch (IllegalArgumentException & r) -// { -// OSL_ASSERT( r.ArgumentPosition == 5 && -// r.Message.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("testtest") )); -// } - } - catch (RuntimeException & rExc) - { - out( rExc.Message ); - } - } -}; - - -void test_security( const Reference< XMultiServiceFactory > & xMgr ) throw () -{ - setEnv( xMgr ); - OSL_ASSERT( getCurrentContext()->getServiceManager().is() ); - - Thread1 thread1( xMgr ); - thread1.create(); - thread1.join(); - out( "> exiting...\n" ); -} diff --git a/cppu/test/testcppu.cxx b/cppu/test/testcppu.cxx deleted file mode 100644 index b132ab0cb281..000000000000 --- a/cppu/test/testcppu.cxx +++ /dev/null @@ -1,1241 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#if !defined(OSL_DEBUG_LEVEL) || OSL_DEBUG_LEVEL == 0 -# undef OSL_DEBUG_LEVEL -# define OSL_DEBUG_LEVEL 2 -#endif - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" - -#include "sal/main.h" - -#include <stdio.h> - -#include <uno/environment.h> -#include <uno/mapping.hxx> - -#include <uno/dispatcher.h> -#include <rtl/alloc.h> -#include <rtl/unload.h> - -#include <cppuhelper/queryinterface.hxx> -#include <com/sun/star/uno/Exception.hpp> -#include <com/sun/star/uno/XInterface.hpp> -#include <com/sun/star/uno/Uik.hpp> -#include <rtl/ustring.hxx> -#include <osl/diagnose.h> -#include <osl/interlck.h> -#include <sal/types.h> - -#include <test/Test1.hpp> -#include <test/Test2.hpp> -#include <test/TdTest1.hpp> -#include <test/Test3.hpp> -#include <test/Base.hpp> -#include <test/Base1.hpp> -#include <test/Base2.hpp> - -#include <uno/current_context.hxx> -#include <cppuhelper/bootstrap.hxx> -#include <cppuhelper/implbase1.hxx> - -#include <com/sun/star/lang/XComponent.hpp> -#include <com/sun/star/container/XHierarchicalNameAccess.hpp> -#include <com/sun/star/uno/XCurrentContext.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/beans/PropertyValue.hpp> -#include <test/XSimpleInterface.hpp> -#include <test/XLanguageBindingTest.hpp> -#include <com/sun/star/registry/XSimpleRegistry.hpp> - -using namespace test; -using namespace rtl; -using namespace osl; - -using namespace com::sun::star; -using namespace com::sun::star::uno; -using namespace com::sun::star::lang; -using namespace com::sun::star::registry; -using namespace test; - - -sal_Int32 getSize( const Type & rT ) -{ - sal_Int32 nSize; - typelib_TypeDescription * pTD = 0; - typelib_typedescriptionreference_getDescription( &pTD, rT.getTypeLibType() ); - nSize = pTD->nSize; - typelib_typedescription_release( pTD ); - return nSize; -} - -/* - * main. - */ -void testCppu() -{ - Any a(false); -#if 0 - // the following don't compile, which is ok: - a.get<sal_Unicode>(); - a.get<sal_uInt16>(); - a.has<sal_Unicode>(); - a.has<sal_uInt16>(); - Any a_( static_cast<sal_Unicode>('a') ); -#endif - OSL_ASSERT( a.getValueTypeClass() == TypeClass_BOOLEAN ); - OSL_ASSERT( !a.get<bool>() && !a.get<sal_Bool>() ); - a <<= sal_False; - OSL_ASSERT( a.getValueTypeClass() == TypeClass_BOOLEAN ); - OSL_ASSERT( !a.get<bool>() && !a.get<sal_Bool>() ); - a = Any(sal_False); - OSL_ASSERT( a.getValueTypeClass() == TypeClass_BOOLEAN ); - OSL_ASSERT( !a.get<bool>() && !a.get<sal_Bool>() ); - Any b( static_cast<sal_Int8>(32) ); - OSL_ASSERT( b.getValueTypeClass() == TypeClass_BYTE ); - OSL_ASSERT( b.get<sal_Int64>() == 32 && - b.get<sal_uInt64>() == 32 && - b.get<sal_Int32>() == 32 && - b.get<sal_uInt32>() == 32 && - b.get<sal_Int16>() == 32 && - b.get<sal_Int8>() == 32 ); - OSL_ASSERT( b.has<sal_Int64>() && - b.has<sal_uInt64>() && - b.has<sal_Int32>() && - b.has<sal_uInt32>() && - b.has<sal_Int16>() && - b.has<sal_Int8>() ); - b <<= true; - OSL_ASSERT( b.getValueTypeClass() == TypeClass_BOOLEAN ); - OSL_ASSERT( b.get<bool>() && b.get<sal_Bool>() ); - try { - b.get<sal_Int8>(); - OSL_ASSERT(false); - } - catch (RuntimeException & /*exc*/) { -// exc; - } - try { - const Sequence<beans::PropertyValue> seq( - b.get< Sequence<beans::PropertyValue> >() ); - OSL_ASSERT(false); - } - catch (RuntimeException & /*exc*/) { -// exc; - } - - sal_Int32 big = 0x7fffffff; - try - { - Sequence< Sequence< Any > > seq( big ); - } - catch (::std::bad_alloc &) - { - } - try - { - Sequence< Sequence< Any > > seq( 0, big ); - } - catch (::std::bad_alloc &) - { - } - try - { - Sequence< Sequence< Any > > seq; - seq.realloc( big ); - } - catch (::std::bad_alloc &) - { - } - - { - // test the size of types - OSL_ENSURE( sizeof( Uik ) == getSize( getCppuType( (Uik *)0) ), - "bad sizeof uik" ); - OSL_ENSURE( sizeof( Test1 ) == getSize( getCppuType( (Test1*)0).getTypeLibType() ), - "bad sizeof test1" ); -// OSL_ENSURE( sizeof( TdTest1 ) == getSize( get_test_TdTest1_Type().getTypeLibType() ), -// "bad sizeof TypedefTest1" ); - OSL_ENSURE( sizeof( Test2 ) == getSize( getCppuType( (Test2*)0).getTypeLibType() ), - "bad sizeof test2" ); - -/* find the error -sal_Int32 nPos; -nPos = (sal_Int32)&((Test3 *)0)->nInt8; -nPos = (sal_Int32)&((Test3 *)0)->nFloat; -nPos = (sal_Int32)&((Test3 *)0)->nuInt8; -nPos = (sal_Int32)&((Test3 *)0)->nDouble; -nPos = (sal_Int32)&((Test3 *)0)->nInt16; -nPos = (sal_Int32)&((Test3 *)0)->aString; -nPos = (sal_Int32)&((Test3 *)0)->nuInt16; -nPos = (sal_Int32)&((Test3 *)0)->nInt64; -nPos = (sal_Int32)&((Test3 *)0)->nInt32; -nPos = (sal_Int32)&((Test3 *)0)->nuInt64; -nPos = (sal_Int32)&((Test3 *)0)->nuInt32; -nPos = (sal_Int32)&((Test3 *)0)->eType; -nPos = (sal_Int32)&((Test3 *)0)->wChar; -nPos = (sal_Int32)&((Test3 *)0)->td; -nPos = (sal_Int32)&((Test3 *)0)->bBool; -nPos = (sal_Int32)&((Test3 *)0)->aAny; -*/ - OSL_ENSURE( sizeof( Test3 ) == getSize( getCppuType( (Test3*)0).getTypeLibType() ), - "bad sizeof test3" ); - } - - { - // test the default constructor - Test1 a1; - a1.nInt16 = 4; - a1.dDouble = 3.6; - a1.bBool = sal_True; - uno_type_constructData( &a1, getCppuType( (Test1*)0).getTypeLibType() ); - OSL_ASSERT( a1.nInt16 == 0 && a1.dDouble == 0.0 && a1.bBool == sal_False); - - Test2 a2; - a2.nInt16 = 2; - a2.aTest1.nInt16 = 4; - a2.aTest1.dDouble = 3.6; - a2.aTest1.dDouble = sal_True; - uno_type_constructData( &a2, getCppuType( (Test2*)0).getTypeLibType() ); - OSL_ASSERT( a2.nInt16 == 0 && a2.aTest1.nInt16 == 0 && a2.aTest1.dDouble == 0.0 && a2.aTest1.bBool == sal_False); - - Test3 * pa3 = (Test3 *)new char[ sizeof( Test3 ) ]; - Test3 & a3 = *pa3; - a3.nInt8 = 2; - a3.nFloat = (float)2; - a3.nDouble = 2; - a3.nInt16 = 2; - a3.nuInt16 = 2; - a3.nInt64 = 2; - a3.nInt32 = 2; - a3.nuInt64 = 2; - a3.nuInt32 = 2; - a3.eType = TypeClass_STRUCT; - a3.wChar = L'g'; - a3.td.nInt16 = 2; - a3.td.dDouble = 2; - a3.bBool = sal_True; - uno_type_constructData( &a3, getCppuType( (Test3*)0).getTypeLibType() ); - OSL_ASSERT( a3.nInt8 == 0 && a3.nFloat == (float)0 - && a3.nDouble == 0 && a3.nInt16 == 0 && a3.aString == OUString() - && a3.nuInt16 == 0 && a3.nInt64 == 0 && a3.nInt32 == 0 - && a3.nuInt64 == 0 && a3.nuInt32 == 0 && a3.eType == TypeClass_VOID - && a3.wChar == L'\0' && a3.td.nInt16 == 0 && a3.td.dDouble == 0 - && a3.bBool == sal_False ); - OSL_ASSERT( a3.aAny.getValueType() == getCppuVoidType() ); - delete[] reinterpret_cast< char * >(pa3); - } - - { - // test the destructor - long a1[ sizeof( Test1 ) / sizeof(long) +1 ]; - uno_type_constructData( &a1, getCppuType( (Test1*)0).getTypeLibType() ); - uno_type_destructData( &a1, getCppuType( (Test1*)0).getTypeLibType(), reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - - long a2[ sizeof( Test2 ) / sizeof(long) +1 ]; - uno_type_constructData( &a2, getCppuType( (Test2*)0).getTypeLibType() ); - uno_type_destructData( &a2, getCppuType( (Test2*)0).getTypeLibType(), reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - - long a3[ sizeof( Test3 ) / sizeof(long) +1 ]; - uno_type_constructData( &a3, getCppuType( (Test3*)0).getTypeLibType() ); - OUString aTestString( RTL_CONSTASCII_USTRINGPARAM("test") ); - ((Test3*)a3)->aString = aTestString; - uno_type_destructData( &a3, getCppuType( (Test3*)0).getTypeLibType(), reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - OSL_ASSERT( aTestString.pData->refCount == 1 ); - } - - { - // test the copy constructor - Test1 a1; - a1.nInt16 = 4; - a1.dDouble = 3.6; - a1.bBool = sal_True; - char sz1[sizeof( Test1 )]; - uno_type_copyData( sz1, &a1, getCppuType( (Test1*)0).getTypeLibType(), reinterpret_cast<uno_AcquireFunc>(cpp_acquire) ); - OSL_ASSERT( ((Test1*)sz1)->nInt16 == 4 && ((Test1*)sz1)->dDouble == 3.6 && ((Test1*)sz1)->bBool == sal_True); - - Test2 a2; - a2.nInt16 = 2; - a2.aTest1.nInt16 = 4; - a2.aTest1.dDouble = 3.6; - a2.aTest1.bBool = sal_True; - char sz2[sizeof( Test2 )]; - uno_type_copyData( sz2, &a2, getCppuType( (Test2*)0).getTypeLibType(), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire) ); - OSL_ASSERT( ((Test2*)sz2)->nInt16 == 2 ); - OSL_ASSERT(((Test2*)sz2)->aTest1.nInt16 == 4 ); - OSL_ASSERT( ((Test2*)sz2)->aTest1.dDouble == 3.6 ); - OSL_ASSERT(((Test2*)sz2)->aTest1.bBool == sal_True); - - Test3 a3; - a3.nInt8 = 2; - a3.nFloat = (float)2; - a3.nDouble = 2; - a3.nInt16 = 2; - a3.aString = OUString::createFromAscii("2"); - a3.nuInt16 = 2; - a3.nInt64 = 2; - a3.nInt32 = 2; - a3.nuInt64 = 2; - a3.nuInt32 = 2; - a3.eType = TypeClass_STRUCT; - a3.wChar = L'2'; - a3.td.nInt16 = 2; - a3.td.dDouble = 2; - a3.bBool = sal_True; - a3.aAny = makeAny( (sal_Int32)2 ); - char sz3[sizeof( Test3 )]; - uno_type_copyData( sz3, &a3, getCppuType( (Test3*)0).getTypeLibType(), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire) ); - OSL_ASSERT( ((Test3*)sz3)->nInt8 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->nFloat == (float)2 ); - OSL_ASSERT( ((Test3*)sz3)->nDouble == 2 ); - OSL_ASSERT( ((Test3*)sz3)->nInt16 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->aString == OUString::createFromAscii("2") ); - OSL_ASSERT( ((Test3*)sz3)->nuInt16 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->nInt64 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->nInt32 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->nuInt64 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->nuInt32 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->eType == TypeClass_STRUCT ); - OSL_ASSERT( ((Test3*)sz3)->wChar == L'2' ); - OSL_ASSERT( ((Test3*)sz3)->td.nInt16 == 2 ); - OSL_ASSERT( ((Test3*)sz3)->td.dDouble == 2 ); - OSL_ASSERT( ((Test3*)sz3)->bBool == sal_True ); - OSL_ASSERT( ((Test3*)sz3)->aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) ); - OSL_ASSERT( *(sal_Int32*)((Test3*)sz3)->aAny.getValue() == 2 ); - ((Test3 *)sz3)->~Test3(); - } - - { - sal_Bool bAssignable; - // test assignment - Test1 a1; - a1.nInt16 = 4; - a1.dDouble = 3.6; - a1.bBool = sal_True; - Test1 sz1; - bAssignable = uno_type_assignData( - &sz1, getCppuType( (Test1*)0).getTypeLibType(), - &a1, getCppuType( (Test1*)0).getTypeLibType(), - reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire), - reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - OSL_ASSERT( bAssignable ); - OSL_ASSERT( sz1.nInt16 == 4 && sz1.dDouble == 3.6 && sz1.bBool == sal_True); - - Test2 a2; - a2.nInt16 = 2; - a2.aTest1.nInt16 = 4; - a2.aTest1.dDouble = 3.6; - a2.aTest1.bBool = sal_True; - Test2 sz2; - bAssignable = uno_type_assignData( - &sz2, getCppuType( (Test2*)0).getTypeLibType(), - &a2, getCppuType( (Test2*)0).getTypeLibType(), - reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire), - reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - OSL_ASSERT( bAssignable ); - OSL_ASSERT( sz2.nInt16 == 2 && sz2.aTest1.nInt16 == 4 - && sz2.aTest1.dDouble == 3.6 && sz2.aTest1.bBool == sal_True); - - Test3 a3; - Test3 sz3; - a3.nInt8 = 2; - a3.nFloat = (float)2; - a3.nDouble = 2; - a3.nInt16 = 2; - a3.aString = OUString::createFromAscii("2"); - a3.nuInt16 = 2; - a3.nInt64 = 2; - a3.nInt32 = 2; - a3.nuInt64 = 2; - a3.nuInt32 = 2; - a3.eType = TypeClass_STRUCT; - a3.wChar = L'2'; - a3.td.nInt16 = 2; - a3.td.dDouble = 2; - a3.bBool = sal_True; - a3.aAny = makeAny( (sal_Int32)2 ); - OSL_ASSERT( a3.aAny.isExtractableTo( ::getCppuType( (sal_Int64 const *)0 ) ) ); - OSL_ASSERT( ::getCppuType( (sal_Int64 const *)0 ).isAssignableFrom( a3.aAny.getValueType() ) ); - bAssignable = uno_type_assignData( - &sz3, getCppuType( (Test3*)0).getTypeLibType(), - &a3, getCppuType( (Test3*)0).getTypeLibType(), - reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire), - reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - OSL_ASSERT( bAssignable ); - OSL_ASSERT( sz3.nInt8 == 2 ); - OSL_ASSERT( sz3.nFloat == (float)2 ); - OSL_ASSERT( sz3.nDouble == 2 ); - OSL_ASSERT( sz3.nInt16 == 2 ); - OSL_ASSERT( sz3.aString == OUString::createFromAscii("2") ); - OSL_ASSERT( sz3.nuInt16 == 2 ); - OSL_ASSERT( sz3.nInt64 == 2 ); - OSL_ASSERT( sz3.nInt32 == 2 ); - OSL_ASSERT( sz3.nuInt64 == 2 ); - OSL_ASSERT( sz3.nuInt32 == 2 ); - OSL_ASSERT( sz3.eType == TypeClass_STRUCT ); - OSL_ASSERT( sz3.wChar == L'2' ); - OSL_ASSERT( sz3.td.nInt16 == 2 ); - OSL_ASSERT( sz3.td.dDouble == 2 ); - OSL_ASSERT( sz3.bBool == sal_True ); - OSL_ASSERT( sz3.aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) ); - OSL_ASSERT( *(sal_Int32*)sz3.aAny.getValue() == 2 ); - - // test not assigneable values - bAssignable = uno_type_assignData( - &a1, getCppuType( (Test1*)0).getTypeLibType(), - &a2, getCppuType( (Test2*)0).getTypeLibType(), - reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire), reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - OSL_ASSERT( !bAssignable ); - } - - { - // test any - Any tb; - tb <<= true; - OSL_ASSERT( tb.getValueType() == ::getCppuBooleanType() ); - OSL_ASSERT( tb == makeAny( true ) ); - Any aAny = makeAny( (sal_Int8)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int8 *)0 ) ); - OSL_ASSERT( *(sal_Int8*)aAny.getValue() == 2 ); - aAny = makeAny( (float)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (float *)0 ) ); - OSL_ASSERT( *(float*)aAny.getValue() == (float)2 ); - aAny = makeAny( (sal_Int8)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int8 *)0 ) ); - OSL_ASSERT( *(sal_Int8*)aAny.getValue() == 2 ); - aAny = makeAny( (double)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (double *)0 ) ); - OSL_ASSERT( *(double*)aAny.getValue() == (double)2 ); - aAny = makeAny( (sal_Int16)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int16 *)0 ) ); - OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 ); - aAny = makeAny( OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (OUString *)0 ) ); - OSL_ASSERT( *(OUString*)aAny.getValue() == OUString::createFromAscii("test") ); - aAny = makeAny( (sal_uInt16)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt16 *)0 ) ); - OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 ); - sal_Int64 aInt64 = SAL_CONST_INT64(0x200000000); - aAny = makeAny( aInt64 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int64 *)0 ) ); - OSL_ASSERT( *(sal_Int64*)aAny.getValue() == SAL_CONST_INT64(0x200000000) ); - aAny = makeAny( (sal_Int32)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) ); - OSL_ASSERT( *(sal_Int32*)aAny.getValue() == 2 ); - sal_uInt64 auInt64 = SAL_CONST_UINT64(0x200000000); - aAny = makeAny( auInt64 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt64 *)0 ) ); - OSL_ASSERT( *(sal_uInt64*)aAny.getValue() == SAL_CONST_UINT64(0x200000000) ); - aAny = makeAny( (sal_uInt32)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt32 *)0 ) ); - OSL_ASSERT( *(sal_uInt32*)aAny.getValue() == 2 ); - aAny = makeAny( TypeClass_STRUCT ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (TypeClass *)0 ) ); - OSL_ASSERT( *(TypeClass*)aAny.getValue() == TypeClass_STRUCT ); - sal_Unicode c = L'2'; - aAny.setValue( &c, getCppuCharType() ); - OSL_ASSERT( aAny.getValueType() == getCppuCharType() ); - OSL_ASSERT( *(sal_Unicode*)aAny.getValue() == L'2' ); - sal_Bool b2 = sal_True; - aAny.setValue( &b2, getCppuBooleanType() ); - OSL_ASSERT( aAny.getValueType() == getCppuBooleanType() ); - OSL_ASSERT( *(sal_Bool*)aAny.getValue() == sal_True ); - } - - { - // test: operator <<=( any, value ) - Any aAny; - aAny <<= (sal_Int8)2; - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int8 *)0 ) ); - OSL_ASSERT( *(sal_Int8*)aAny.getValue() == 2 ); - aAny <<=( (float)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (float *)0 ) ); - OSL_ASSERT( *(float*)aAny.getValue() == (float)2 ); -// aAny <<=( (sal_uInt8)2 ); -// OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt8 *)0 ) ); -// OSL_ASSERT( *(sal_uInt8*)aAny.getValue() == 2 ); - aAny <<=( (double)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (double *)0 ) ); - OSL_ASSERT( *(double*)aAny.getValue() == (double)2 ); - aAny <<=( (sal_Int16)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int16 *)0 ) ); - OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 ); - aAny <<=( OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (OUString *)0 ) ); - OSL_ASSERT( *(OUString*)aAny.getValue() == OUString::createFromAscii("test") ); - aAny <<=( (sal_uInt16)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt16 *)0 ) ); - OSL_ASSERT( *(sal_Int16*)aAny.getValue() == 2 ); - sal_Int64 aInt64 = SAL_CONST_INT64(0x200000000); - aAny <<=( aInt64 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int64 *)0 ) ); - OSL_ASSERT( *(sal_Int64*)aAny.getValue() == SAL_CONST_UINT64(0x200000000) ); - aAny <<=( (sal_Int32)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_Int32 *)0 ) ); - OSL_ASSERT( *(sal_Int32*)aAny.getValue() == 2 ); - sal_uInt64 auInt64 = SAL_CONST_UINT64(0x200000000); - aAny <<=( auInt64 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt64 *)0 ) ); - OSL_ASSERT( *(sal_uInt64*)aAny.getValue() == SAL_CONST_UINT64(0x200000000) ); - aAny <<=( (sal_uInt32)2 ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (sal_uInt32 *)0 ) ); - OSL_ASSERT( *(sal_uInt32*)aAny.getValue() == 2 ); - aAny <<=( TypeClass_STRUCT ); - OSL_ASSERT( aAny.getValueType() == getCppuType( (TypeClass *)0 ) ); - OSL_ASSERT( *(TypeClass*)aAny.getValue() == TypeClass_STRUCT ); - } - - { - // test seq< any > - Sequence< Any > seqAny( 1 ); - seqAny[ 0 ] <<= sal_Int32(5); - seqAny.realloc( 200000 ); // hopefully different memory - seqAny[ 1 ] <<= sal_Int32(6); - - uno_Any * pAnys = (uno_Any *)seqAny.getConstArray(); - OSL_ASSERT( pAnys[ 1 ].pData == &pAnys[ 1 ].pReserved ); - OSL_ASSERT( *(sal_Int32 *)pAnys[ 1 ].pData == sal_Int32(6) ); - OSL_ASSERT( pAnys[ 0 ].pData == &pAnys[ 0 ].pReserved ); - OSL_ASSERT( *(sal_Int32 *)pAnys[ 0 ].pData == sal_Int32(5) ); - } - - { - // test: operator >>=( any, value ) - Test3 a3; - makeAny( (sal_Int8)2) >>= a3.nInt8; - OSL_ASSERT( (makeAny( (sal_Int8)2) >>= a3.nInt8) && a3.nInt8 == 2 ); - OSL_ASSERT( (makeAny( (float)2) >>= a3.nFloat) && a3.nFloat ==(float)2 ); - OSL_ASSERT( (makeAny( (double)2) >>= a3.nDouble) && a3.nDouble == 2 ); - OSL_ASSERT( (makeAny( (sal_Int16)2) >>= a3.nInt16) && a3.nInt16 == 2 ); - OSL_ASSERT( (makeAny( OUString( RTL_CONSTASCII_USTRINGPARAM("2") )) >>= a3.aString) && - a3.aString == OUString::createFromAscii("2") ); - OSL_ASSERT( (makeAny( (sal_uInt16)2) >>= a3.nuInt16) && a3.nuInt16 == 2 ); - sal_Int64 aInt64 = SAL_CONST_INT64(0x200000000); - OSL_ASSERT( makeAny( aInt64 ) >>= a3.nInt64 ); - OSL_ASSERT( a3.nInt64 == SAL_CONST_INT64(0x200000000) ); - OSL_ASSERT( (makeAny( (sal_Int32)2) >>= a3.nInt32) && a3.nInt32 == 2 ); - sal_uInt64 auInt64 = SAL_CONST_UINT64(0x200000000); - OSL_ASSERT( makeAny( auInt64 ) >>= a3.nuInt64 ); - OSL_ASSERT( a3.nuInt64 == SAL_CONST_UINT64(0x200000000) ); - OSL_ASSERT( (makeAny( (sal_uInt32)2) >>= a3.nuInt32) && a3.nuInt32 == 2 ); - OSL_ASSERT( (makeAny( TypeClass_STRUCT) >>= a3.eType) && a3.eType == TypeClass_STRUCT ); - //OSL_ASSERT( (makeAny( L'2' ) >>= a3.wChar) && a3.nInt8 ==L'2'; - OSL_ASSERT( (makeAny( (sal_Int16)2) >>= a3.td.nInt16) && a3.nInt16 == 2 ); - OSL_ASSERT( (makeAny( (double)2) >>= a3.td.dDouble) && a3.nDouble == 2 ); - //OSL_ASSERT( (makeAny( (sal_True)2) >>= a3.bBool) && a3.nInt8 ==sal_True; - - // Only one negative test, the implementation has only one if to test this - OSL_ASSERT( (makeAny( (float)2) >>= a3.nFloat) && a3.nFloat ==(float)2 ); - } - - { - // test: Sequence - Sequence< Test1 > aTestSeq; - OSL_ASSERT( aTestSeq.getLength() == 0 ); - sal_Int32 szInt32[2] = { 1, 2 }; - Sequence< sal_Int32 > aInt32Seq( szInt32, 2 ); - OSL_ASSERT( aInt32Seq.getLength() == 2 ); - OSL_ASSERT( aInt32Seq[0] == 1 && aInt32Seq[1] == 2 ); - OSL_ASSERT( aInt32Seq.getArray()[0] == 1 && aInt32Seq.getArray()[1] == 2 ); - Sequence< sal_Int32 > aNextInt32Seq( aInt32Seq ); - OSL_ASSERT( aNextInt32Seq[0] == 1 && aNextInt32Seq[1] == 2 ); - aInt32Seq[0] = 45; - OSL_ASSERT( aInt32Seq[0] == 45 && aInt32Seq[1] == 2 ); - OSL_ASSERT( aNextInt32Seq[0] == 1 && aNextInt32Seq[1] == 2 ); - sal_Int32 * pArray = aNextInt32Seq.getArray(); - OSL_ASSERT( pArray[0] == 1 && pArray[1] == 2 ); - Sequence< double > aDoubleSeq( 5 ); - OSL_ASSERT( aDoubleSeq[4] == 0.0 ); - Sequence< OUString > aStringSeq( 5 ); - OSL_ASSERT( aStringSeq[4] == OUString() ); - } - sal_Int32 szInt32[2] = { 1, 2 }; - Sequence<sal_Int32 > aInt32Seq( szInt32, 2 ); - Sequence<sal_Int32 > aNextInt32Seq( aInt32Seq ); - aNextInt32Seq.realloc( 1 ); // split of sequence - const sal_Int32 * pArray = aNextInt32Seq.getConstArray(); - OSL_ASSERT( pArray[0] == 1 ); - aInt32Seq.realloc( 1 ); // reallocate mem - pArray = aInt32Seq.getConstArray(); - OSL_ASSERT( pArray[0] == 1 ); - - Sequence<sal_Int32 > aInt32Seq2( aInt32Seq ); - aInt32Seq.realloc( 0 ); - aInt32Seq.realloc( 1 ); - aInt32Seq.realloc( 0 ); -} - -class TestInterface : public XInterface -{ -public: - // XInterface - void SAL_CALL acquire() throw () - { osl_incrementInterlockedCount( &nRefCount ); } - void SAL_CALL release() throw () - { if( !osl_decrementInterlockedCount( &nRefCount ) ) delete this; } - Any SAL_CALL queryInterface( const Type & rType ) throw (RuntimeException) - { return cppu::queryInterface( rType, static_cast< XInterface* >( this ) ); } - - TestInterface() : nRefCount( 0 ) {} - - sal_Int32 nRefCount; -}; - -struct SimpleInterface : public TestInterface, public XSimpleInterface -{ - void SAL_CALL acquire() throw () - { TestInterface::acquire(); } - void SAL_CALL release() throw () - { TestInterface::release(); } - Any SAL_CALL queryInterface( const Type & rType ) throw (RuntimeException) - { - Any aRet( cppu::queryInterface( rType, static_cast< XSimpleInterface * >( this ) ) ); - return (aRet.hasValue() ? aRet : TestInterface::queryInterface( rType )); - } - virtual void SAL_CALL method() throw(::com::sun::star::uno::RuntimeException) - {} -}; - -static sal_Bool s_aAssignableFromTab[11][11] = -{ - /* from CH,BO,BY,SH,US,LO,UL,HY,UH,FL,DO */ -/* TypeClass_CHAR */ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -/* TypeClass_BOOLEAN */ { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, -/* TypeClass_BYTE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, -/* TypeClass_SHORT */ { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, -/* TypeClass_UNSIGNED_SHORT */ { 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, -/* TypeClass_LONG */ { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 }, -/* TypeClass_UNSIGNED_LONG */ { 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 }, -/* TypeClass_HYPER */ { 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, -/* TypeClass_UNSIGNED_HYPER */ { 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0 }, -/* TypeClass_FLOAT */ { 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0 }, -/* TypeClass_DOUBLE */ { 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1 } -}; -template < class T > -void test_assignSimple( const T & rVal, /*const*/ Any /*&*/ rAny ) -{ - typelib_TypeDescription * pTD = 0; - ::getCppuType( &rVal ).getDescription( &pTD ); - sal_Bool bTable = s_aAssignableFromTab[pTD->eTypeClass-1][rAny.getValueTypeClass()-1]; - OSL_ASSERT( - (bTable!=sal_False) == - (typelib_typedescriptionreference_isAssignableFrom( - pTD->pWeakRef, rAny.getValueTypeRef() )!=sal_False) ); - T t; - OSL_ASSERT( (bTable!=sal_False) == ((rAny >>= t)!=sal_False) ); - if (bTable) - OSL_ASSERT( t == rVal ); - typelib_typedescription_release( pTD ); -} -template < class T > -void test_simple_assignment( const T & rVal ) -{ - // bool - sal_Bool tr = sal_True; - typelib_TypeDescription * pBoolTD = 0; - ::getCppuBooleanType().getDescription( &pBoolTD ); - Any a( &tr, pBoolTD ); - test_assignSimple( rVal, a ); - OSL_ASSERT( typelib_typedescriptionreference_isAssignableFrom( pBoolTD->pWeakRef, a.getValueTypeRef() ) ); - typelib_typedescription_release( pBoolTD ); - OSL_ASSERT( *(sal_Bool *)a.getValue() ); - // char - sal_Unicode ch = 'a'; - typelib_TypeDescription * pCharTD = 0; - ::getCppuCharType().getDescription( &pCharTD ); - a.setValue( &ch, pCharTD ); - test_assignSimple( rVal, a ); - OSL_ASSERT( typelib_typedescriptionreference_isAssignableFrom( pCharTD->pWeakRef, a.getValueTypeRef() ) ); - typelib_typedescription_release( pCharTD ); - OSL_ASSERT( *(sal_Unicode *)a.getValue() == 'a' ); - - // rest by template - a <<= (sal_Int8)5; - test_assignSimple( rVal, a ); - a <<= (sal_Int16)5; - test_assignSimple( rVal, a ); - a <<= (sal_uInt16)5; - test_assignSimple( rVal, a ); - a <<= (sal_Int32)5; - test_assignSimple( rVal, a ); - a <<= (sal_uInt32)5; - test_assignSimple( rVal, a ); - a <<= (sal_Int64)5; - test_assignSimple( rVal, a ); - a <<= (sal_uInt64)5; - test_assignSimple( rVal, a ); - a <<= (float)5; - test_assignSimple( rVal, a ); - a <<= (double)5; - test_assignSimple( rVal, a ); -} -static void testAssignment() -{ - // simple types - test_simple_assignment( (sal_Int8)5 ); - test_simple_assignment( (sal_Int16)5 ); - test_simple_assignment( (sal_uInt16)5 ); - test_simple_assignment( (sal_Int32)5 ); - test_simple_assignment( (sal_uInt32)5 ); - test_simple_assignment( (sal_Int64)5 ); - test_simple_assignment( (sal_uInt64)5 ); - test_simple_assignment( (float)5 ); - test_simple_assignment( (double)5 ); - // some complex things - Any a; - TestSimple ts; - TestElement te; // derived from simple - a <<= ts; - OSL_ASSERT( !(a >>= te) ); - OSL_ASSERT( a >>= ts ); - a <<= te; - OSL_ASSERT( (a >>= te) && (a >>= ts) ); - // interface - Reference< XSimpleInterface > xOriginal( new SimpleInterface() ); - a <<= xOriginal; - Reference< XInterface > x; - OSL_ASSERT( (a >>= x) && (a == xOriginal) && (xOriginal == x) && (x == xOriginal) ); - // sequence - Sequence< TestElement > aSeq( 5 ); - Sequence< TestElement > aSeq2( 3 ); - aSeq[1].Byte = 17; - a <<= aSeq; - OSL_ASSERT( a >>= aSeq2 ); - OSL_ASSERT( aSeq2[1].Byte == 17 ); - aSeq2[1].Byte = 20; - OSL_ASSERT( aSeq != aSeq2 ); - OSL_ASSERT( a != aSeq2 ); - a <<= aSeq2; - OSL_ASSERT( a >>= aSeq ); - OSL_ASSERT( a == aSeq ); - OSL_ASSERT( !(a != aSeq) ); - OSL_ASSERT( aSeq == aSeq2 ); - OSL_ASSERT( aSeq[1].Byte == 20 ); - - // equals... - sal_uInt64 n = (sal_uInt64)(sal_Int64)-5; - a.setValue( &n, getCppuType( (sal_uInt64 *)0 ) ); - Any b; - sal_Int8 n2 = -5; - b.setValue( &n2, getCppuType( (sal_Int8 *)0 ) ); - OSL_ASSERT( a != b ); -} - -void test_interface() -{ - { - // test: Interface - Reference< XInterface > xIFace; - OSL_ASSERT( !xIFace.is() ); - xIFace.clear(); // do nothing - } -} - -void test_inheritance() -{ - OSL_ASSERT( sizeof( Base ) == getSize( getCppuType( (Base *)0).getTypeLibType() ) ); - OSL_ASSERT( sizeof( Base1 ) == getSize( getCppuType( (Base1 *)0).getTypeLibType() ) ); - OSL_ASSERT( sizeof( Base2 ) == getSize( getCppuType( (Base2 *)0).getTypeLibType() ) ); -} - -sal_Int32 nCallback_1; -sal_Int32 nCallback; -void SAL_CALL typedescription_Callback_1 -( - void * pContext, - typelib_TypeDescription ** ppRet, - rtl_uString * pTypeName -) -{ - OSL_ENSURE( pContext == (void *)1, "### unexpected context!" ); - if( *ppRet ) - { - typelib_typedescription_release( *ppRet ); - *ppRet = 0; - } - - OUString aTypeName( pTypeName ); - if( -1 != aTypeName.indexOf( OUString::createFromAscii("1_") ) ) - { - nCallback_1++; - OUString aName( RTL_CONSTASCII_USTRINGPARAM("unsigned short") ); - OUString empty; - typelib_CompoundMember_Init aMember = { typelib_TypeClass_UNSIGNED_SHORT, - aName.pData, - empty.pData }; - typelib_typedescription_new( - ppRet, - typelib_TypeClass_STRUCT, pTypeName, 0, - 1, - &aMember - ); - } -} - -void SAL_CALL typedescription_Callback -( - void * pContext, - typelib_TypeDescription ** ppRet, - rtl_uString * pTypeName -) -{ - OSL_ENSURE( pContext == (void *)0, "### unexpected context!" ); - if( *ppRet ) - { - typelib_typedescription_release( *ppRet ); - *ppRet = 0; - } - - OUString aTypeName( pTypeName ); - if( -1 != aTypeName.indexOf( OUString::createFromAscii("cachetest") ) ) - { - nCallback++; - aTypeName = OUString( RTL_CONSTASCII_USTRINGPARAM("1_") ) + aTypeName; - OUString empty; - typelib_CompoundMember_Init aMember = { typelib_TypeClass_STRUCT, - aTypeName.pData, - empty.pData }; - typelib_typedescription_new( - ppRet, - typelib_TypeClass_STRUCT, pTypeName, 0, - 1, - &aMember - ); - } -} - -void test_cache() -{ - typelib_typedescription_registerCallback( - (void *)1, - reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback_1) ); - typelib_typedescription_registerCallback( - 0, - reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback) ); - - for( sal_Int32 i = 0; i < 300; i++ ) - { - typelib_TypeDescription * pTD = 0; - OUString aTypeName( RTL_CONSTASCII_USTRINGPARAM("cachetest") ); - aTypeName = aTypeName + OUString::valueOf( i ); - typelib_typedescription_getByName( &pTD, aTypeName.pData ); - typelib_typedescription_release( pTD ); - } - OSL_ASSERT( nCallback_1 == 300 ); - OSL_ASSERT( nCallback == 300 ); - // The cache size is 200 so the description "cachetest200" is in the cache - typelib_TypeDescription * pTD = 0; - OUString aName200( RTL_CONSTASCII_USTRINGPARAM("cachetest200") ); - typelib_typedescription_getByName( &pTD, aName200.pData ); - OSL_ASSERT( nCallback_1 == 300 ); - OSL_ASSERT( nCallback == 300 ); - // The cache size is 200 so the description "cachetest199" is not in the cache - // "1_cachetest199" is loaded too. - OUString aName199( RTL_CONSTASCII_USTRINGPARAM("cachetest199") ); - typelib_typedescription_getByName( &pTD, aName199.pData ); - typelib_typedescription_release( pTD ); - OSL_ASSERT( nCallback_1 == 301 ); - OSL_ASSERT( nCallback == 301 ); - - typelib_typedescription_revokeCallback( - (void *)1, - reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback_1) ); - typelib_typedescription_revokeCallback( - 0, - reinterpret_cast<typelib_typedescription_Callback>(typedescription_Callback) ); -} - -static OUString s_aAddPurpose; - -static void SAL_CALL getMappingCallback( - uno_Mapping ** /*ppMapping*/, - uno_Environment * /*pFrom*/, uno_Environment * /*pTo*/, rtl_uString * pAddPurpose ) -{ - s_aAddPurpose = pAddPurpose; -} -static void testMappingCallback() -{ - uno_registerMappingCallback( reinterpret_cast<uno_getMappingFunc>(getMappingCallback) ); - OSL_ASSERT( ! s_aAddPurpose.getLength() ); - Mapping aTest( - OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ), - OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ), - OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) ); - uno_revokeMappingCallback( reinterpret_cast<uno_getMappingFunc>(getMappingCallback) ); - OSL_ASSERT( s_aAddPurpose.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("test") ) ); - s_aAddPurpose = OUString(); - Mapping aTest2( - OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ), - OUString( RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ), - OUString( RTL_CONSTASCII_USTRINGPARAM("test") ) ); - OSL_ASSERT( ! s_aAddPurpose.getLength() ); -} - -static void testEnvironments(void) -{ - uno_Environment ** ppEnv; - sal_Int32 nLen; - OUString aTypeName; - - ::uno_getRegisteredEnvironments( - &ppEnv, &nLen, ::rtl_allocateMemory, aTypeName.pData ); - - if (nLen) - { - for ( sal_Int32 nPos = 0; nPos < nLen; ++nPos ) - { - uno_Environment * pEnv = ppEnv[ nPos ]; - - // dump out infos - ::uno_dumpEnvironment( stderr, pEnv, 0 ); - - // call some releases - void ** ppInterfaces = 0; - sal_Int32 nInterfaces; - - uno_ExtEnvironment * pExtEnv = pEnv->pExtEnv; - (*pExtEnv->getRegisteredInterfaces)( - pExtEnv, &ppInterfaces, &nInterfaces, ::rtl_allocateMemory ); - if (nInterfaces) - { - while (nInterfaces--) - { - void * p = ppInterfaces[ nInterfaces ]; - (*pExtEnv->releaseInterface)( pExtEnv, p ); - } - ::rtl_freeMemory( ppInterfaces ); - } - - (*pEnv->release)( pEnv ); - } - ::rtl_freeMemory( ppEnv ); - } -} - -inline const ::com::sun::star::uno::Type& SAL_CALL getCppuType( const Sequence< OUString[2][4] >* ) SAL_THROW( () ) -{ - return getCppuSequenceType< OUString[2][4] >( getCppuArrayType2( (const OUString (*)[2][4])0 ) ); -} - -//================================================================================================== -class Test_CContext - : public ::cppu::WeakImplHelper1< XCurrentContext > -{ - Reference< XCurrentContext > m_xDel; - sal_Int32 m_value; - OUString m_name; -public: - inline Test_CContext( sal_Int32 val, OUString const & rName, - Reference< XCurrentContext > const & xDel ) - SAL_THROW( () ) - : m_xDel( xDel ) - , m_value( val ) - , m_name( rName ) - {} - - virtual Any SAL_CALL getValueByName( OUString const & rName ) - throw (RuntimeException); -}; -//__________________________________________________________________________________________________ -Any Test_CContext::getValueByName( OUString const & rName ) - throw (RuntimeException) -{ - if (rName == m_name) - { - return makeAny( m_value ); - } - else if (m_xDel.is()) - { - return m_xDel->getValueByName( rName ); - } - return Any(); -} -//================================================================================================== -static void testCurrentContext() -{ - { - ContextLayer layer( new Test_CContext( - 5, OUString( RTL_CONSTASCII_USTRINGPARAM("Value1") ), - Reference< XCurrentContext >() ) ); - Reference< XCurrentContext > xCC( getCurrentContext() ); - OSL_ASSERT( - xCC.is() && - xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value1") ) ) == (sal_Int16)5 && - !xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value2") ) ).hasValue() ); - OSL_ASSERT( ! layer.getPreviousContext().is() ); - - { - ContextLayer layer2( new Test_CContext( - 7, OUString( RTL_CONSTASCII_USTRINGPARAM("Value2") ), - xCC ) ); - OSL_ASSERT( layer2.getPreviousContext() == xCC ); - xCC = getCurrentContext(); - OSL_ASSERT( - xCC.is() && - xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value1") ) ) == (sal_Int16)5 && - xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("Value2") ) ) == (sal_Int16)7 && - !xCC->getValueByName( OUString( RTL_CONSTASCII_USTRINGPARAM("dummy") ) ).hasValue() ); - - uno_Interface * pContext = 0; - OUString aEnvName( RTL_CONSTASCII_USTRINGPARAM(UNO_LB_UNO) ); - OSL_VERIFY( ::uno_getCurrentContext( (void **)&pContext, aEnvName.pData, 0 ) ); - (*pContext->release)( pContext ); - } - OSL_ASSERT( ! layer.getPreviousContext().is() ); - } - OSL_ASSERT( ! getCurrentContext().is() ); -} - -void testArray(void) -{ - long a[5][6]; - getCppuArrayType2( &a ); - - getCppuArrayType1( (const long (*)[5])0 ); - getCppuArrayType2( (const long (*)[6][7])0 ); - getCppuArrayType3( (const long (*)[7][8][9])0 ); - getCppuArrayType4( (const long (*)[8][9][10][11])0 ); - getCppuArrayType5( (const long (*)[9][10][11][12][13])0 ); - getCppuArrayType6( (const long (*)[10][11][12][13][14][15])0 ); - - getCppuArrayType2( (const Reference< XInterface > (*)[6][7])0 ); - - getCppuArrayType1( (const Test1 (*)[5])0 ); - getCppuArrayType2( (const Test1 (*)[6][7])0 ); - getCppuArrayType3( (const Test1 (*)[7][8][9])0 ); - getCppuArrayType4( (const Test1 (*)[8][9][10][11])0 ); - getCppuArrayType5( (const Test1 (*)[9][10][11][12][13])0 ); - getCppuArrayType6( (const Test1 (*)[10][11][12][13][14][15])0 ); - - typelib_TypeDescription* pType = NULL; - typelib_TypeDescriptionReference* pTypeRef = NULL; - sal_Int32 pDim[] = { 2, 4 }; - Type rType = getCppuType((const sal_Int32*)0); - typelib_typedescription_newArray(&pType, rType.getTypeLibType(), 2, pDim); - OSL_ASSERT( pType ); - typelib_typedescriptionreference_new(&pTypeRef, typelib_TypeClass_ARRAY, pType->pTypeName); - OSL_ASSERT( pTypeRef ); - - sal_Int32 a1[2][4]; - sal_Int32 a2[2][4] = { {1,2,3,4}, {5,6,7,8} }; - uno_constructData( &a1, pType ); -// uno_type_constructData( &a1, pTypeRef ); - - sal_Bool bAssignable = uno_assignData(&a1, pType, a2, pType, - reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire), - reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - sal_Int32 i,j; - for ( i=0; i<2; i++ ) - for ( j=0; j<4; j++ ) - OSL_ASSERT( a1[i][j] == a2[i][j] ); - - uno_destructData( a1, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); -// uno_type_destructData( &a1, pTypeRef, cpp_release ); - uno_destructData( a2, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - - typelib_typedescription_release(pType); - typelib_typedescriptionreference_release(pTypeRef); - pType = NULL; - pTypeRef = NULL; - - typelib_typedescription_newArray(&pType, getCppuType((const OUString*)0).getTypeLibType(), 2, pDim); - OSL_ASSERT( pType ); - typelib_typedescriptionreference_new(&pTypeRef, typelib_TypeClass_ARRAY, pType->pTypeName); - OSL_ASSERT( pTypeRef ); - - OUString s1(OUString::createFromAscii("Hallo")); - OUString s2(OUString::createFromAscii("jetzt")); - OUString s3(OUString::createFromAscii("teste")); - OUString s4(OUString::createFromAscii("ich")); - OUString s5(OUString::createFromAscii("ein")); - OUString s6(OUString::createFromAscii("Array")); - OUString s7(OUString::createFromAscii("mit")); - OUString s8(OUString::createFromAscii("strings")); - OUString st1,st2,st3,st4,st5,st6,st7,st8; - - void* p = rtl_allocateMemory(8 * sizeof(rtl_uString*)); - void* p2 = rtl_allocateMemory(8 * sizeof(rtl_uString*)); - rtl_uString** ppS = (rtl_uString**)p; - rtl_uString* sa1[2][4] = { {st1.pData,st2.pData,st3.pData,st4.pData}, - {st5.pData,st6.pData,st7.pData,st8.pData} }; - rtl_uString* sa2[2][4] = { {s1.pData,s2.pData,s3.pData,s4.pData}, - {s5.pData,s6.pData,s7.pData,s8.pData} }; - uno_constructData( p, pType ); - - bAssignable = uno_assignData(p, pType, sa2, pType, - reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire), - reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - - bAssignable = uno_assignData(sa1, pType, p, pType, - reinterpret_cast<uno_QueryInterfaceFunc>(cpp_queryInterface), - reinterpret_cast<uno_AcquireFunc>(cpp_acquire), - reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - - for ( i=0; i<2; i++ ) - for ( j=0; j<4; j++ ) - OSL_ASSERT( sa1[i][j] == sa2[i][j] ); - - OUString sA[2][4]; - sA[0][0] = s1; - sA[1][0] = s5; - sA[0][1] = s2; - sA[1][1] = s6; - sA[0][2] = s3; - sA[1][2] = s7; - sA[0][3] = s4; - sA[1][3] = s8; - - Any aa1, aa2; - Type arrayType; - OUString (*sB)[2][4]; - aa1.setValue(&sA, getCppuArrayType2( (const OUString (*)[2][4])0 )); - aa2 = aa1; - arrayType = aa2.getValueType(); - sB = (OUString(*)[2][4])aa2.getValue(); - for ( i=0; i<2; i++ ) - for ( j=0; j<4; j++ ) - OSL_ASSERT( sA[i][j] == (*sB)[i][j] ); - - // requires a specialized getCppuType function 'getCppuType( const Sequence< OUString[2][4] >* )' -// Sequence< OUString[2][4] > aSeq(2); -// OUString (*pSeq)[2][4] = aSeq.getArray(); -// uno_copyData(pSeq[0], sA, pType, cpp_acquire); -// uno_copyData(pSeq[1], sA, pType, cpp_acquire); - -// OSL_ASSERT( aSeq[0][0][0] == sA[0][0] ); -// OSL_ASSERT( aSeq[0][0][1] == sA[0][1] ); -// OSL_ASSERT( aSeq[0][0][2] == sA[0][2] ); -// OSL_ASSERT( aSeq[0][0][3] == sA[0][3] ); -// OSL_ASSERT( aSeq[0][1][0] == sA[1][0] ); -// OSL_ASSERT( aSeq[0][1][1] == sA[1][1] ); -// OSL_ASSERT( aSeq[0][1][2] == sA[1][2] ); -// OSL_ASSERT( aSeq[0][1][3] == sA[1][3] ); - -// OSL_ASSERT( aSeq[1][0][0] == sA[0][0] ); -// OSL_ASSERT( aSeq[1][0][1] == sA[0][1] ); -// OSL_ASSERT( aSeq[1][0][2] == sA[0][2] ); -// OSL_ASSERT( aSeq[1][0][3] == sA[0][3] ); -// OSL_ASSERT( aSeq[1][1][0] == sA[1][0] ); -// OSL_ASSERT( aSeq[1][1][1] == sA[1][1] ); -// OSL_ASSERT( aSeq[1][1][2] == sA[1][2] ); -// OSL_ASSERT( aSeq[1][1][3] == sA[1][3] ); - - uno_constructData( p2, pType ); - ppS = (rtl_uString**)p2; - uno_copyData(p2, sa1, pType, reinterpret_cast<uno_AcquireFunc>(cpp_acquire)); - uno_copyData(sa2, p2, pType, reinterpret_cast<uno_AcquireFunc>(cpp_acquire)); - - uno_destructData( p, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release)); - uno_destructData( p2, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - uno_destructData( sa1, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - uno_destructData( sa2, pType, reinterpret_cast<uno_ReleaseFunc>(cpp_release) ); - - rtl_freeMemory(p); - rtl_freeMemory(p2); - typelib_typedescription_release(pType); - typelib_typedescriptionreference_release(pTypeRef); - pType = NULL; - pTypeRef = NULL; -} - -/* - * main. - */ -SAL_IMPLEMENT_MAIN() -{ - rtl::OUString const cppName( - RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME) ); - uno_Environment * pCppEnv = 0; - uno_getEnvironment( &pCppEnv, cppName.pData, 0 ); - uno_getEnvironment( &pCppEnv, cppName.pData, 0 ); - (*pCppEnv->release)( pCppEnv ); - - try { - typelib_setCacheSize( 200 ); - Reference< registry::XSimpleRegistry > xRegistry( - ::cppu::createSimpleRegistry() ); - xRegistry->open( OUString( RTL_CONSTASCII_USTRINGPARAM("testcppu.rdb") ), sal_True, sal_False ); - Reference< XComponentContext > xContext( - ::cppu::bootstrap_InitialComponentContext( xRegistry ) ); - testEnvironments(); - ::rtl_unloadUnusedModules( 0 ); - testMappingCallback(); - ::rtl_unloadUnusedModules( 0 ); - -// // security test -// void test_security( const Reference< XMultiServiceFactory > & ); -// test_security( xMgr ); - - // C++, C bridges test - void test_CppBridge(void); - test_CppBridge(); - ::rtl_unloadUnusedModules( 0 ); -// void test_CBridge(void); -// void test_CBridge2(void); -// test_CBridge(); -// test_CBridge2(); - - testCurrentContext(); - testAssignment(); - testCppu(); -// testArray(); -#if 0 // cache test not possible if types are loaded dynamically (cppumaker -L) - test_cache(); -#endif - test_interface(); - test_inheritance(); - - // shutdown - Reference< XComponent > xComp( xContext, UNO_QUERY_THROW ); - xComp.set( xContext, UNO_QUERY_THROW ); - Reference< XInterface > x( - xContext->getValueByName( - OUString( RTL_CONSTASCII_USTRINGPARAM("/singletons/com.sun.star.reflection.theTypeDescriptionManager") ) ), UNO_QUERY_THROW ); - xComp->dispose(); - } - catch (Exception & exc) { - fprintf( stderr, "error: %s\n", rtl::OUStringToOString( - exc.Message, RTL_TEXTENCODING_UTF8 ).getStr() ); - } - - typelib_setCacheSize( 0 ); - ::rtl_unloadUnusedModules( 0 ); - testEnvironments(); - ::rtl_unloadUnusedModules( 0 ); - - return 0; -} diff --git a/cppu/test/testthreadpool.cxx b/cppu/test/testthreadpool.cxx deleted file mode 100644 index ec404b89793c..000000000000 --- a/cppu/test/testthreadpool.cxx +++ /dev/null @@ -1,193 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_cppu.hxx" -#include <osl/diagnose.h> -#include <osl/time.h> - -#include <rtl/uuid.h> - -#include <uno/threadpool.h> - -#include <vos/thread.hxx> - -#define TEST_ENSURE OSL_ENSURE - -using namespace ::vos; - - -class OThread1 : public OThread -{ -public: - OThread1( sal_uInt8 *pCallerUuid ); - virtual void run(); - -public: - sal_uInt8 *m_pCallerUuid; - sal_Int8 *m_pThreadIdentifier; - sal_Int32 m_nThreadIdentifierLength; - - void *m_pThreadData; -}; - -OThread1::OThread1( sal_uInt8 *pCallerUuid ) : - m_pCallerUuid( pCallerUuid ), - m_pThreadData( (void*) 1 ), - m_pThreadIdentifier( 0 ), - m_nThreadIdentifierLength( 0 ) -{ - -} - -void OThread1::run() -{ - - uno_threadpool_Ticket *pTicket = uno_threadpool_createTicket( m_pCallerUuid ); - - uno_threadIdent_retrieve( &m_pThreadIdentifier , &m_nThreadIdentifierLength ); - - uno_threadpool_waitOnTicket( pTicket , &m_pThreadData ); - - uno_threadIdent_revoke(); -} - - -void SAL_CALL doIt( void *pThreadData ) -{ - *( sal_Int32 *) pThreadData = 2; -} - -void testthreadpool() -{ - printf( "Testing threadpool ..." ); - fflush( stdout ); - - sal_uInt8 pCallerUuid1[16]; - sal_uInt8 pCallerUuid2[16]; - rtl_createUuid( pCallerUuid1, 0 , sal_True ); - rtl_createUuid( pCallerUuid2, 0 , sal_True ); - - //------------ - // Test reply - //------------ - { - OThread1 thread1( pCallerUuid1 ); - - thread1.create(); - - // do a busy wait - while( ! thread1.m_pThreadIdentifier && ! thread1.m_nThreadIdentifierLength ); - - void *pThreadData = (void*)0xdeadbabe; - uno_threadpool_reply( thread1.m_pThreadIdentifier , - thread1.m_nThreadIdentifierLength, - pThreadData ); - - // do a busy wait - while( (void*)1 == thread1.m_pThreadData ); - - TEST_ENSURE( pThreadData == thread1.m_pThreadData, "uno_threadpool_reply error" ); - } - - //--------------- - // Test request - //--------------- - { - OThread1 thread1( pCallerUuid1 ); - - thread1.create(); - - // do a busy wait - while( ! thread1.m_pThreadIdentifier && ! thread1.m_nThreadIdentifierLength ); - - // do a request - sal_Int32 i = 1; - uno_threadpool_request( thread1.m_pThreadIdentifier , - thread1.m_nThreadIdentifierLength, - &i, - doIt, - sal_False); - - // do a busy wait - while( 1 == i ); - TEST_ENSURE( 2 == i, "uno_threadpool_request error" ); - - // get it out of the pool - void *pThreadData = (void*)0xdeadbabe; - uno_threadpool_reply( thread1.m_pThreadIdentifier , - thread1.m_nThreadIdentifierLength, - pThreadData ); - - // do a busy wait - while( pThreadData != thread1.m_pThreadData ); - - } - - //--------------- - // Test dispose threads - //--------------- - { - OThread1 thread1( pCallerUuid1 ); - OThread1 thread2( pCallerUuid2 ); - - thread1.create(); - thread2.create(); - - // do a busy wait - while( ! thread1.m_pThreadIdentifier && ! thread1.m_nThreadIdentifierLength && - ! thread2.m_pThreadIdentifier && ! thread2.m_nThreadIdentifierLength ); - - // dispose the first - uno_threadpool_disposeThreads( pCallerUuid1 ); - - while( (void*)1 == thread1.m_pThreadData ); - TEST_ENSURE( (void*)0 == thread1.m_pThreadData, "disposing threads failed" ); - - TimeValue value = {1,0}; - osl_waitThread( &value ); - TEST_ENSURE( (void*)1 == thread2.m_pThreadData, "wrong thread disposed !" ); - - // test, if new threads are directly disposed - OThread1 thread3( pCallerUuid1 ); - thread3.create(); - - while( (void*)1 == thread3.m_pThreadData ); - TEST_ENSURE( (void*)0 == thread3.m_pThreadData , - "new threads entering threadpool are not disposed" ); - - uno_threadpool_reply( thread2.m_pThreadIdentifier , - thread2.m_nThreadIdentifierLength, - (void*)0x2 ); - - while( (void*)1 == thread2.m_pThreadData ); - TEST_ENSURE( (void*)2 == thread2.m_pThreadData , "reply does not work correctly" ); - - uno_threadpool_stopDisposeThreads( pCallerUuid1 ); - } - printf( "Done\n" ); -} diff --git a/cppuhelper/inc/cppuhelper/factory.hxx b/cppuhelper/inc/cppuhelper/factory.hxx index 8ebc6b4467c2..1b733d7a9170 100644 --- a/cppuhelper/inc/cppuhelper/factory.hxx +++ b/cppuhelper/inc/cppuhelper/factory.hxx @@ -149,6 +149,23 @@ SAL_CALL createSingleComponentFactory( rtl_ModuleCount * pModCount = 0 ) SAL_THROW( () ); +/** Creates a single service factory which holds the instance created only once. + + @param fptr function pointer for instanciating the object + @param rImplementationName implementation name of service + @param rServiceNames supported services + @param pModCount for future extension (library unloading concept). + + @see createSingleComponentFactory +*/ +::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleComponentFactory > SAL_CALL +createOneInstanceComponentFactory( + ComponentFactoryFunc fptr, + ::rtl::OUString const & rImplementationName, + ::com::sun::star::uno::Sequence< ::rtl::OUString > const & rServiceNames, + rtl_ModuleCount * pModCount = 0 ) + SAL_THROW( () ); + /** Deprecated. The type of the instanciate function used as argument of the create*Fcatory functions. @see createSingleFactory diff --git a/cppuhelper/prj/d.lst b/cppuhelper/prj/d.lst index 6660eab8c3cf..0707a7609b56 100644 --- a/cppuhelper/prj/d.lst +++ b/cppuhelper/prj/d.lst @@ -35,7 +35,6 @@ mkdir: %_DEST%\inc%_EXT%\cppuhelper ..\inc\cppuhelper\shlib.hxx %_DEST%\inc%_EXT%\cppuhelper\shlib.hxx ..\inc\cppuhelper\basemutex.hxx %_DEST%\inc%_EXT%\cppuhelper\basemutex.hxx ..\inc\cppuhelper\bootstrap.hxx %_DEST%\inc%_EXT%\cppuhelper\bootstrap.hxx -..\inc\cppuhelper\extract.hxx %_DEST%\inc%_EXT%\cppuhelper\extract.hxx ..\inc\cppuhelper\exc_hlp.hxx %_DEST%\inc%_EXT%\cppuhelper\exc_hlp.hxx ..\inc\cppuhelper\typeprovider.hxx %_DEST%\inc%_EXT%\cppuhelper\typeprovider.hxx ..\inc\cppuhelper\factory.hxx %_DEST%\inc%_EXT%\cppuhelper\factory.hxx @@ -53,7 +52,6 @@ mkdir: %_DEST%\inc%_EXT%\cppuhelper ..\inc\cppuhelper\queryinterface.hxx %_DEST%\inc%_EXT%\cppuhelper\queryinterface.hxx ..\inc\cppuhelper\weakref.hxx %_DEST%\inc%_EXT%\cppuhelper\weakref.hxx ..\inc\cppuhelper\servicefactory.hxx %_DEST%\inc%_EXT%\cppuhelper\servicefactory.hxx -..\inc\cppuhelper\smartservices.hxx %_DEST%\inc%_EXT%\cppuhelper\smartservices.hxx ..\inc\cppuhelper\implementationentry.hxx %_DEST%\inc%_EXT%\cppuhelper\implementationentry.hxx ..\inc\cppuhelper\access_control.hxx %_DEST%\inc%_EXT%\cppuhelper\access_control.hxx ..\inc\cppuhelper\unourl.hxx %_DEST%\inc%_EXT%\cppuhelper\unourl.hxx diff --git a/cppuhelper/source/cc5_solaris_sparc.map b/cppuhelper/source/cc5_solaris_sparc.map index 941465519a08..d43ea690e11a 100755 --- a/cppuhelper/source/cc5_solaris_sparc.map +++ b/cppuhelper/source/cc5_solaris_sparc.map @@ -385,4 +385,5 @@ UDK_3.7 { # OOo 3.3 __1cEcppuLOWeakObjectbAdisposeWeakConnectionPoint6M_v_; __1cDcomDsunEstarDunoTWeakReferenceHelper2G6Mrkn0DJReference4n0DKXInterface____r4_; __1cDcomDsunEstarDunoTWeakReferenceHelperFclear6M_v_; + __1cEcppubHcreateOneInstanceComponentFactory6FpFrknDcomDsunEstarDunoJReference4n0ERXComponentContext____n0EJReference4n0EKXInterface___rknDrtlIOUString_rkn0EISequence4n0K___pnQ_rtl_ModuleCount__n0EJReference4n0DElangXXSingleComponentFactory____; } UDK_3.6; diff --git a/cppuhelper/source/factory.cxx b/cppuhelper/source/factory.cxx index b1d473c061af..96faf2272231 100644 --- a/cppuhelper/source/factory.cxx +++ b/cppuhelper/source/factory.cxx @@ -1124,6 +1124,17 @@ Reference< lang::XSingleComponentFactory > SAL_CALL createSingleComponentFactory Reference< XMultiServiceFactory >(), rImplementationName, 0, fptr, &rServiceNames, pModCount, sal_False ); } +Reference< lang::XSingleComponentFactory > SAL_CALL createOneInstanceComponentFactory( + ComponentFactoryFunc fptr, + OUString const & rImplementationName, + Sequence< OUString > const & rServiceNames, + rtl_ModuleCount * pModCount) + SAL_THROW( () ) +{ + return new OFactoryComponentHelper( + Reference< XMultiServiceFactory >(), rImplementationName, 0, fptr, &rServiceNames, pModCount, sal_True ); +} + } diff --git a/cppuhelper/source/gcc3.map b/cppuhelper/source/gcc3.map index 099373b2e220..59ab83e34e82 100644 --- a/cppuhelper/source/gcc3.map +++ b/cppuhelper/source/gcc3.map @@ -379,5 +379,6 @@ UDK_3.6 { # OOo 3.3 _ZN4cppu11OWeakObject26disposeWeakConnectionPointEv; _ZN3com3sun4star3uno19WeakReferenceHelperaSERKNS2_9ReferenceINS2_10XInterfaceEEE; _ZN3com3sun4star3uno19WeakReferenceHelper5clearEv; + _ZN4cppu33createOneInstanceComponentFactoryEPFN3com3sun4star3uno9ReferenceINS3_10XInterfaceEEERKNS4_INS3_17XComponentContextEEEERKN3rtl8OUStringERKNS3_8SequenceISE_EEP16_rtl_ModuleCount; } UDK_3.5; diff --git a/cppuhelper/source/gcc3os2.map b/cppuhelper/source/gcc3os2.map index 6aada0273d59..681a076cee79 100644 --- a/cppuhelper/source/gcc3os2.map +++ b/cppuhelper/source/gcc3os2.map @@ -373,4 +373,5 @@ UDK_3.5 { # OOo 3.0 global: _ZN4cppu18OPropertySetHelperC1ERNS_19OBroadcastHelperVarINS_34OMultiTypeInterfaceContainerHelperEN3com3sun4star3uno4TypeEEEPNS_22IEventNotificationHookEb; _ZN4cppu18OPropertySetHelperC2ERNS_19OBroadcastHelperVarINS_34OMultiTypeInterfaceContainerHelperEN3com3sun4star3uno4TypeEEEPNS_22IEventNotificationHookEb; + _ZN4cppu28createOneInstanceComponentFactoryEPFN3com3sun4star3uno9ReferenceINS3_10XInterfaceEEERKNS4_INS3_17XComponentContextEEEERKN3rtl8OUStringERKNS3_8SequenceISE_EEP16_rtl_ModuleCount; } UDK_3.4; diff --git a/cppuhelper/source/msvc_win32_intel.map b/cppuhelper/source/msvc_win32_intel.map index 6bc10cb175c2..6d5a491ab925 100644 --- a/cppuhelper/source/msvc_win32_intel.map +++ b/cppuhelper/source/msvc_win32_intel.map @@ -276,4 +276,5 @@ UDK_3.6 { # OOo 3.3 global: ?disposeWeakConnectionPoint@OWeakObject@cppu@@IAEXXZ; ?clear@WeakReferenceHelper@uno@star@sun@com@@QAAXXZ; + ?createOneInstanceComponentFactory@cppu@@YA?AV?$Reference@VXSingleComponentFactory@lang@star@sun@com@@@uno@star@sun@com@@P6A?AV?$Reference@VXInterface@uno@star@sun@com@@@3456@ABV?$Reference@VXComponentContext@uno@star@sun@com@@@3456@@ZABVOUString@rtl@@ABV?$Sequence@VOUString@rtl@@@3456@PAU_rtl_ModuleCount@@@Z; } UDK_3.5; diff --git a/idlc/source/preproc/cpp.h b/idlc/source/preproc/cpp.h index 24d30222b5a1..4b8645b2d34e 100644 --- a/idlc/source/preproc/cpp.h +++ b/idlc/source/preproc/cpp.h @@ -40,11 +40,8 @@ #define NULL 0 #endif -#ifndef __alpha typedef unsigned char uchar; -#endif - enum toktype { END, UNCLASS, NAME, NUMBER, STRING, CCON, NL, WS, DSHARP, diff --git a/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java b/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java index 997b9d1c76ee..455e3aab6502 100644 --- a/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java +++ b/jurt/com/sun/star/lib/connections/pipe/PipeConnection.java @@ -58,30 +58,8 @@ public class PipeConnection implements XConnection, XConnectionBroadcaster { static public final boolean DEBUG = false; static { - // preload shared libraries whichs import lips are linked to jpipe - if ( System.getProperty( "os.name" ).startsWith( "Windows" ) ) - { - try { - NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "msvcr71"); - } catch (Throwable e){} // loading twice would fail - - try { - NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "msvcr70"); - } catch (Throwable e){} // loading twice would fail - - try { - NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "uwinapi"); - } catch (Throwable e){} // loading twice would fail - - try { - NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "sal3"); - } catch (Throwable e){} // loading twice would fail - } - // load shared library for JNI code - try { - NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "jpipe"); - } catch (Throwable e){} // loading twice would fail + NativeLibraryLoader.loadLibrary(PipeConnection.class.getClassLoader(), "jpipe"); } protected String _aDescription; diff --git a/jurt/prj/build.lst b/jurt/prj/build.lst index f3d498b8cdd6..9b9b722bc3ae 100644 --- a/jurt/prj/build.lst +++ b/jurt/prj/build.lst @@ -15,4 +15,5 @@ ju jurt\com\sun\star\comp\connections nmake - all ju_con ju_co_loader NULL ju jurt\com\sun\star\comp\servicemanager nmake - all ju_servman NULL ju jurt\com\sun\star\comp\urlresolver nmake - all ju_urlres ju_co_loader NULL ju jurt\source\pipe nmake - all ju_src_pipe NULL +ju jurt\source\pipe\wrapper nmake - w ju_src_pipe_wrapper NULL ju jurt\util nmake - all ju_ut ju_brid_jrm ju_co_bfactr ju_con ju_con_sock ju_con_pipe ju_cssl_uno ju_env_java ju_prot_urp ju_servman ju_urlres ju_src_pipe ju_libutil ju_uno NULL diff --git a/jurt/prj/d.lst b/jurt/prj/d.lst index 5223fe2fe5ee..848435f61138 100644 --- a/jurt/prj/d.lst +++ b/jurt/prj/d.lst @@ -1,5 +1,6 @@ ..\%__SRC%\class\jurt.jar %_DEST%\bin%_EXT%\jurt.jar -..\%__SRC%\bin\jpipe*.dll %_DEST%\bin%_EXT%\jpipe*.dll +..\%__SRC%\bin\jpipe.dll %_DEST%\bin%_EXT%\jpipe.dll +..\%__SRC%\bin\jpipx.dll %_DEST%\bin%_EXT%\jpipx.dll ..\%__SRC%\lib\libjpipe*.so %_DEST%\lib%_EXT%\libjpipe*.so ..\%__SRC%\lib\libjpipe*.dylib %_DEST%\lib%_EXT%\libjpipe*.dylib diff --git a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c index 255da24c2f86..4d0a5b357604 100644 --- a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c +++ b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c @@ -25,10 +25,20 @@ * ************************************************************************/ +#include "jni.h" #include "osl/security.h" #include <osl/pipe.h> -#include "com_sun_star_lib_connections_pipe_PipeConnection.h" +/* On Windows, jpipe.dll must not have dependencies on any other URE DLLs, as + Java System.LoadLibrary could otherwise not load it. Therefore, on Windows, + this code goes into a jpipx.dll that the jpipe.dll wrapper loads with + LoadLibraryEx(LOAD_WITH_ALTERED_SEARCH_PATH). The function names in this + wrapped code are truncated from the long JNICALL names, as JNICALL causes + some "@N" with different numeric values for N (and probably different across + 32 and 64 bit) to be added to the symbol names, which the calls to + GetProcAddress in wrapper/wrapper.c would otheriwse have to take into + account. +*/ /*****************************************************************************/ /* exception macros */ @@ -100,7 +110,12 @@ static rtl_uString * jstring2ustring(JNIEnv * env, jstring jstr) * Method: connect * Signature: (Lcom/sun/star/beans/NativeService;)V */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI +SAL_DLLPUBLIC_EXPORT void +#if defined WNT +PipeConnection_create +#else +JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI +#endif (JNIEnv * env, jobject obj_this, jstring name) { enum { @@ -234,7 +249,12 @@ JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_cre * Method: closeJNI * Signature: ()V */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI +SAL_DLLPUBLIC_EXPORT void +#if defined WNT +PipeConnection_close +#else +JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI +#endif (JNIEnv * env, jobject obj_this) { enum { @@ -315,7 +335,12 @@ JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_clo * Method: readJNI * Signature: ([[BI)I */ -JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI +SAL_DLLPUBLIC_EXPORT jint +#if defined WNT +PipeConnection_read +#else +JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI +#endif (JNIEnv * env, jobject obj_this, jobjectArray buffer, jint len) { enum { @@ -430,7 +455,12 @@ JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_rea * Method: writeJNI * Signature: ([B)V */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI +SAL_DLLPUBLIC_EXPORT void +#if defined WNT +PipeConnection_write +#else +JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI +#endif (JNIEnv * env, jobject obj_this, jbyteArray buffer) { enum { @@ -522,7 +552,12 @@ JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_wri * Method: flushJNI * Signature: ()V */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI +SAL_DLLPUBLIC_EXPORT void +#if defined WNT +PipeConnection_flush +#else +JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI +#endif (JNIEnv * env, jobject obj_this) { (void) env; /* not used */ diff --git a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h b/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h deleted file mode 100644 index a21e8f979348..000000000000 --- a/jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h +++ /dev/null @@ -1,53 +0,0 @@ -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include <jni.h> -/* Header for class com_sun_star_connections_pipe_PipeConnection */ - -#ifndef _Included_com_sun_star_lib_connections_pipe_PipeConnection_h -#define _Included_com_sun_star_lib_connections_pipe_PipeConnection_h -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: com_sun_star_lib_connections_pipe_PipeConnection - * Method: connect - * Signature: (Ljava/lang/String;)V - */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI - (JNIEnv *, jobject, jstring); - -/* - * Class: com_sun_star_lib_connections_pipe_PipeConnection - * Method: readJNI - * Signature: ([[BI)I - */ -JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI - (JNIEnv *, jobject, jobjectArray, jint); - -/* - * Class: com_sun_star_lib_connections_pipe_PipeConnection - * Method: writeJNI - * Signature: ([B)V - */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI - (JNIEnv *, jobject, jbyteArray); - -/* - * Class: com_sun_star_lib_connections_pipe_PipeConnection - * Method: flushJNI - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI - (JNIEnv *, jobject); - -/* - * Class: com_sun_star_lib_connections_pipe_PipeConnection - * Method: closeJNI - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI - (JNIEnv *, jobject); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/jurt/source/pipe/jpipe.dxp b/jurt/source/pipe/jpipe.dxp deleted file mode 100644 index e07ea907470f..000000000000 --- a/jurt/source/pipe/jpipe.dxp +++ /dev/null @@ -1,5 +0,0 @@ -Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI -Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI -Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI -Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI -Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI diff --git a/jurt/source/pipe/makefile.mk b/jurt/source/pipe/makefile.mk index e56ece77f5c1..5be6f1ebfd10 100644 --- a/jurt/source/pipe/makefile.mk +++ b/jurt/source/pipe/makefile.mk @@ -1,39 +1,57 @@ -PRJ=..$/.. - -PRJNAME=jurt -TARGET=jpipe -ENABLE_EXCEPTIONS=TRUE - -#? -NO_DEFAULT_STL=TRUE -NO_BSYMBOLIC=TRUE -USE_DEFFILE=TRUE - -# --- Settings ----------------------------------------------------- - -.INCLUDE : settings.mk - -.IF "$(SOLAR_JAVA)"=="" -nojava: - @echo "Not building jurt because Java is disabled" -.ENDIF - -# --- Files -------------------------------------------------------- - -SLOFILES = \ - $(SLO)$/com_sun_star_lib_connections_pipe_PipeConnection.obj - -SHL1TARGET=$(TARGET) -SHL1LIBS=$(SLB)$/$(TARGET).lib -SHL1STDLIBS=$(SALLIB) -SHL1DEF=$(MISC)$/$(SHL1TARGET).def -SHL1RPATH=URELIB - -DEF1NAME=$(SHL1TARGET) -DEF1EXPORTFILE=$(TARGET).dxp -DEF1DES=jurtpipe - -# --- Targets ------------------------------------------------------ - -.INCLUDE : target.mk - +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#***********************************************************************/ + +PRJ = ../.. +PRJNAME = jurt +TARGET = jpipe + +NO_DEFAULT_STL = TRUE +VISIBILITY_HIDDEN = TRUE + +.INCLUDE: settings.mk + +.IF "$(OS)" == "WNT" +SHL1TARGET = jpipx +.ELSE +SHL1TARGET = jpipe +.END + +SHL1CODETYPE = C +SHL1IMPLIB = i$(SHL1TARGET) +SHL1OBJS = $(SLO)/com_sun_star_lib_connections_pipe_PipeConnection.obj +SHL1RPATH = URELIB +SHL1STDLIBS = $(SALLIB) +SHL1USE_EXPORTS = name +DEF1NAME = $(SHL1TARGET) + +SLOFILES = $(SHL1OBJS) + +.IF "$(SOLAR_JAVA)" == "" +nothing .PHONY : +.END + +.INCLUDE: target.mk diff --git a/cppu/test/EnvDcp/makefile.mk b/jurt/source/pipe/wrapper/makefile.mk index cc0db62e93fe..88a3b160da2e 100644 --- a/cppu/test/EnvDcp/makefile.mk +++ b/jurt/source/pipe/wrapper/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# +# # Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite @@ -23,24 +23,30 @@ # <http://www.openoffice.org/license.html> # for a copy of the LGPLv3 License. # -#************************************************************************* - -PRJ := ..$/.. -PRJNAME := cppu -TARGET := EnvDcp.test - +#***********************************************************************/ -ENABLE_EXCEPTIONS := TRUE -NO_BSYMBOLIC := TRUE -USE_DEFFILE := TRUE +PRJ = ../../.. +PRJNAME = jurt +TARGET = wrapper +NO_DEFAULT_STL = TRUE +UWINAPILIB = +VISIBILITY_HIDDEN = TRUE -.INCLUDE : settings.mk +.INCLUDE: settings.mk +SHL1CODETYPE = C +SHL1IMPLIB = i$(SHL1TARGET) +SHL1OBJS = $(SLO)/wrapper.obj +SHL1RPATH = URELIB +SHL1TARGET = jpipe +SHL1USE_EXPORTS = name +DEF1NAME = $(SHL1TARGET) -APP1TARGET := $(TARGET) -APP1OBJS := $(OBJ)$/EnvDcp.test.obj -APP1STDLIBS := $(ObjectFactory_LIB) $(CPPULIB) $(SALLIB) +SLOFILES = $(SHL1OBJS) +.IF "$(SOLAR_JAVA)" == "" +nothing .PHONY : +.END -.INCLUDE : target.mk +.INCLUDE: target.mk diff --git a/jurt/source/pipe/wrapper/wrapper.c b/jurt/source/pipe/wrapper/wrapper.c new file mode 100644 index 000000000000..5ef40f009191 --- /dev/null +++ b/jurt/source/pipe/wrapper/wrapper.c @@ -0,0 +1,99 @@ +/************************************************************************* +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ + +#include "sal/config.h" + +#include <stddef.h> + +#include <Windows.h> + +#include "jni.h" +#include "sal/types.h" + +static HMODULE module; + +static FARPROC getFunction(char const * name) { + return GetProcAddress(module, name); +} + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { + (void) lpvReserved; + if (fdwReason == DLL_PROCESS_ATTACH) { + wchar_t path[32767]; + DWORD size; + size = GetModuleFileNameW(hinstDLL, path, 32767); + if (size == 0) { + return FALSE; + } + path[size - 5] = L'x'; /* ...\jpipe.dll -> ...\jpipx.dll */ + module = LoadLibraryExW(path, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); + if (module == NULL) { + return FALSE; + } + } + return TRUE; +} + +SAL_DLLPUBLIC_EXPORT void JNICALL +Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI( + JNIEnv * env, jobject obj_this, jstring name) +{ + (*(void (*)(JNIEnv *, jobject, jstring)) + getFunction("PipeConnection_create"))(env, obj_this, name); +} + +SAL_DLLPUBLIC_EXPORT void JNICALL +Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI( + JNIEnv * env, jobject obj_this) +{ + (*(void (*)(JNIEnv *, jobject)) + getFunction("PipeConnection_close"))(env, obj_this); +} + +SAL_DLLPUBLIC_EXPORT jint JNICALL +Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI( + JNIEnv * env, jobject obj_this, jobjectArray buffer, jint len) +{ + return (*(jint (*)(JNIEnv *, jobject, jobjectArray, jint)) + getFunction("PipeConnection_read"))(env, obj_this, buffer, len); +} + +SAL_DLLPUBLIC_EXPORT void JNICALL +Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI( + JNIEnv * env, jobject obj_this, jbyteArray buffer) +{ + (*(void (*)(JNIEnv *, jobject, jbyteArray)) + getFunction("PipeConnection_write"))(env, obj_this, buffer); +} + +SAL_DLLPUBLIC_EXPORT void JNICALL +Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI( + JNIEnv * env, jobject obj_this) +{ + (*(void (*)(JNIEnv *, jobject)) + getFunction("PipeConnection_flush"))(env, obj_this); +} diff --git a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx index 1647a1d9359b..3302fe42e90c 100644 --- a/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx +++ b/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx @@ -69,9 +69,11 @@ namespace jfw_plugin #define JFW_PLUGIN_ARCH "m68k" #elif defined HPPA #define JFW_PLUGIN_ARCH "parisc" -#else // SPARC, INTEL, POWERPC, MIPS, ARM, IA64, M68K, HPPA +#elif defined AXP +#define JFW_PLUGIN_ARCH "alpha" +#else // SPARC, INTEL, POWERPC, MIPS, ARM, IA64, M68K, HPPA, ALPHA #error unknown plattform -#endif // SPARC, INTEL, POWERPC, MIPS, ARM, IA64, M68K, HPPA +#endif // SPARC, INTEL, POWERPC, MIPS, ARM, IA64, M68K, HPPA, ALPHA class MalformedVersionException diff --git a/offapi/com/sun/star/accessibility/AccessibleRelation.idl b/offapi/com/sun/star/accessibility/AccessibleRelation.idl index 2c4aadd314d4..8df475e9fa0e 100644 --- a/offapi/com/sun/star/accessibility/AccessibleRelation.idl +++ b/offapi/com/sun/star/accessibility/AccessibleRelation.idl @@ -50,7 +50,7 @@ published struct AccessibleRelation the whole relation is regarded as invalid. The content of the targetSet is then undefined.</p> - @see AccessibleRelationType. + @see AccessibleRelationType */ short RelationType; diff --git a/offapi/com/sun/star/accessibility/AccessibleRole.idl b/offapi/com/sun/star/accessibility/AccessibleRole.idl index 7231db672c07..5fe65d04ec42 100644 --- a/offapi/com/sun/star/accessibility/AccessibleRole.idl +++ b/offapi/com/sun/star/accessibility/AccessibleRole.idl @@ -686,6 +686,33 @@ published constants AccessibleRole @since OOo 3.0 */ const short TREE_TABLE = 80; + + /** Comment role + + <p>An object which represents a comment.</p> + + <p>A comment is anchored at a certain content position in the document and + annotates this document content position or a certain text range of the document content. + In the OpenDocument file format a comment is known as an annotation.</p> + + <p>See also <const>COMMENT_END</const>.</p> + + @since OOo 3.2 + */ + const short COMMENT = 81; + + /** Comment end role + + <p>An invisible object which represents the end position of a text range which + is annotated by a comment - see <const>COMMENT</const>.</p> + + <p>This object and the corresponding object representing the comment shall be + in relation of type <const>MEMBER_OF</const>.</p> + + @since OOo 3.2 + */ + const short COMMENT_END = 82; + }; }; }; }; }; diff --git a/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl b/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl index 56f5305d10f2..db69a6b5d842 100644 --- a/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl +++ b/offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl @@ -38,6 +38,7 @@ //============================================================================= /** If you do not want to implement the <type>XGridColumnModel</type> yourself, use this service. + @since OOo 3.3.0 */ service DefaultGridColumnModel { diff --git a/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl b/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl index e823e451249c..c487afc79b49 100644 --- a/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl +++ b/offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl @@ -38,6 +38,8 @@ //============================================================================= /** If you do not want to implement the <type>XGridDataModel</type> yourself, use this service. + + @since OOo 3.3.0 */ service DefaultGridDataModel { diff --git a/offapi/com/sun/star/awt/grid/GridColumn.idl b/offapi/com/sun/star/awt/grid/GridColumn.idl index a38d6cafd903..a87aef84f7d3 100644 --- a/offapi/com/sun/star/awt/grid/GridColumn.idl +++ b/offapi/com/sun/star/awt/grid/GridColumn.idl @@ -38,6 +38,8 @@ //============================================================================= /** Represents a column as used by the <type>DefaultGridColumnModel</type> + + @since OOo 3.3.0 */ service GridColumn { diff --git a/offapi/com/sun/star/awt/grid/GridColumnEvent.idl b/offapi/com/sun/star/awt/grid/GridColumnEvent.idl index dfc6905d1148..caab721185a5 100644 --- a/offapi/com/sun/star/awt/grid/GridColumnEvent.idl +++ b/offapi/com/sun/star/awt/grid/GridColumnEvent.idl @@ -31,24 +31,14 @@ #include <com/sun/star/lang/EventObject.idl> #endif -#ifndef __com_sun_star_awt_grid_XGridColumn_idl__ -#include <com/sun/star/awt/grid/XGridColumn.idl> -#endif - //============================================================================= module com { module sun { module star { module awt { module grid { //============================================================================= +/** An event used by a <type>XGridColumn</type> to notify changes in the column. -/** An event used by a <type>XGridColumnModel</type> to notify changes in the column - model to the <type>XGridControl</type>. - You usually need to fill this event only if you implement the <type>XGridColumnModel</type> - yourself. - - @see XGridColumnModel - @see XGridControl - @see XGridColumnListener + @since OOo 3.3.0 */ struct GridColumnEvent: com::sun::star::lang::EventObject { @@ -63,9 +53,6 @@ struct GridColumnEvent: com::sun::star::lang::EventObject /** Contains the index of the changed column**/ long index; - - /** Contains the changed column**/ - XGridColumn column; //------------------------------------------------------------------------- }; diff --git a/offapi/com/sun/star/awt/grid/GridDataEvent.idl b/offapi/com/sun/star/awt/grid/GridDataEvent.idl index 30d87a3f1c46..1e0afb610f16 100644 --- a/offapi/com/sun/star/awt/grid/GridDataEvent.idl +++ b/offapi/com/sun/star/awt/grid/GridDataEvent.idl @@ -27,10 +27,7 @@ #ifndef __com_sun_star_awt_grid_GridDataEvent_idl__ #define __com_sun_star_awt_grid_GridDataEvent_idl__ -#ifndef __com_sun_star_lang_EventObject_idl__ #include <com/sun/star/lang/EventObject.idl> -#endif - //============================================================================= @@ -46,6 +43,8 @@ module com { module sun { module star { module awt { module grid { @see XGridDataModel @see XGridControl @see XGridDataListener + + @sonce OOo 3.3.0 */ struct GridDataEvent: com::sun::star::lang::EventObject { @@ -67,7 +66,7 @@ struct GridDataEvent: com::sun::star::lang::EventObject string headerName; /** Contains the changed row**/ - sequence<string> rowData; + sequence<any> rowData; }; diff --git a/cppu/test/ObjectFactory/CppObject.hxx b/offapi/com/sun/star/awt/grid/GridInvalidDataException.idl index f8f5786daa31..af1f90dfdc8b 100644 --- a/cppu/test/ObjectFactory/CppObject.hxx +++ b/offapi/com/sun/star/awt/grid/GridInvalidDataException.idl @@ -2,10 +2,13 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * + * $RCSfile: GridInvalidDataException.idl,v $ + * $Revision: 1.0 $ + * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -24,39 +27,32 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ +#ifndef __com_sun_star_awt_grid_GridInvalidDataException_idl__ +#define __com_sun_star_awt_grid_GridInvalidDataException_idl__ -#ifndef INCLUDED_CppObject_hxx -#define INCLUDED_CppObject_hxx - +#ifndef __com_sun_star_uno_RuntimeException_idl__ +#include <com/sun/star/uno/RuntimeException.idl> +#endif -#include "com/sun/star/uno/XComponentContext.hpp" +//============================================================================= -#include "callee.hxx" +module com { module sun { module star { module awt { module grid { -namespace cssu = ::com::sun::star::uno; +//============================================================================= +/** Exception is thrown to indicate that set data is invalid, e.g. type of data is unknown + or data count doesn't match with column count. -class CppObject: public cssu::XInterface + @since OOo 3.3.0 + */ +exception GridInvalidDataException : com::sun::star::uno::RuntimeException { -public: - static cssu::XInterface * s_create (Callee * pCallee); - static void s_release(cssu::XInterface * pXInterface); - static void s_call (cssu::XInterface * pXInterface); - - virtual void SAL_CALL acquire() throw (); - virtual void SAL_CALL release() throw (); - virtual cssu::Any SAL_CALL queryInterface(cssu::Type const & rType ) throw (cssu::RuntimeException); - -protected: - oslInterlockedCount m_nRef; - - explicit CppObject(Callee * pCallee) SAL_THROW((cssu::RuntimeException)); - virtual ~CppObject(void) SAL_THROW((cssu::RuntimeException)); - - Callee * m_pCallee; }; +//============================================================================= + +}; }; }; }; }; #endif diff --git a/cppu/test/ObjectFactory/callee.hxx b/offapi/com/sun/star/awt/grid/GridInvalidModelException.idl index beb31d4f4dd9..9d96daf624bb 100644 --- a/cppu/test/ObjectFactory/callee.hxx +++ b/offapi/com/sun/star/awt/grid/GridInvalidModelException.idl @@ -2,10 +2,13 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * + * $RCSfile: GridInvalidModelException.idl,v $ + * $Revision: 1.0 $ + * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -24,16 +27,31 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ +#ifndef __com_sun_star_awt_grid_GridInvalidModelException_idl__ +#define __com_sun_star_awt_grid_GridInvalidModelException_idl__ + +#ifndef __com_sun_star_uno_RuntimeException_idl__ +#include <com/sun/star/uno/RuntimeException.idl> +#endif + + +//============================================================================= + +module com { module sun { module star { module awt { module grid { + +//============================================================================= -#ifndef INCLUDED_callee_hxx -#define INCLUDED_callee_hxx +/** Exception is thrown when data or column model isn't set. + @since OOo 3.3.0 + */ +exception GridInvalidModelException : com::sun::star::uno::RuntimeException +{ -#include <rtl/ustring.hxx> +}; +//============================================================================= -extern "C" { -typedef void Callee(rtl_uString * pMethod_name); -} +}; }; }; }; }; #endif diff --git a/offapi/com/sun/star/awt/grid/GridSelectionEvent.idl b/offapi/com/sun/star/awt/grid/GridSelectionEvent.idl index 2475e59b5b26..e9b87c2fe7ed 100644 --- a/offapi/com/sun/star/awt/grid/GridSelectionEvent.idl +++ b/offapi/com/sun/star/awt/grid/GridSelectionEvent.idl @@ -50,14 +50,17 @@ struct GridSelectionEvent: com::sun::star::lang::EventObject { //------------------------------------------------------------------------- - /** Contains the x coordinate of the selected cell**/ - long x; + /** the selected row*/ + long Row; - /** Contains the y coordinate of the selected cell**/ - long y; + /** the selected column*/ + long Column; + + /**number of selected rows, if multiple rows selected*/ + long Range; /** Contains the action <type>SelectionEventType</types> that was performed **/ - SelectionEventType action; + SelectionEventType Action; }; diff --git a/offapi/com/sun/star/awt/grid/SelectionEventType.idl b/offapi/com/sun/star/awt/grid/SelectionEventType.idl index 8096ceceeb13..c7ee61498cc3 100644 --- a/offapi/com/sun/star/awt/grid/SelectionEventType.idl +++ b/offapi/com/sun/star/awt/grid/SelectionEventType.idl @@ -49,7 +49,13 @@ enum SelectionEventType /** This value indicates that a selection was removed from the grid control */ - REMOVE + REMOVE, + + //------------------------------------------------------------------------- + + /** This value indicates that a selection was changed + */ + CHANGE }; diff --git a/offapi/com/sun/star/awt/grid/UnoControlGrid.idl b/offapi/com/sun/star/awt/grid/UnoControlGrid.idl index 7de3eda02231..542c27085dcb 100644 --- a/offapi/com/sun/star/awt/grid/UnoControlGrid.idl +++ b/offapi/com/sun/star/awt/grid/UnoControlGrid.idl @@ -66,6 +66,7 @@ The <type>XGridSelection</type> interface provides a bunch of methods to set and get selection for the grid control. </p> + @since OOo 3.3.0 */ service UnoControlGrid { diff --git a/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl b/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl index bcb28af294b8..7eea49624045 100644 --- a/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl +++ b/offapi/com/sun/star/awt/grid/UnoControlGridModel.idl @@ -37,6 +37,12 @@ #include <com/sun/star/view/SelectionType.idl> +#include <com/sun/star/awt/FontDescriptor.idl> + +#include <com/sun/star/style/VerticalAlignment.idl> + +#include <com/sun/star/util/Color.idl> + //============================================================================= module com { module sun { module star { module awt { module grid { @@ -44,6 +50,8 @@ module com { module sun { module star { module awt { module grid { //============================================================================= /** specifies the standard model of a <type>UnoControlGridModel</type>. + + @since OOo 3.3.0 */ service UnoControlGridModel { @@ -84,11 +92,68 @@ service UnoControlGridModel */ [property] boolean VScroll; + /** Specifies that the control can be reached with the TAB key. + */ + [property] boolean Tabstop; + /** Specifies the selection mode that is enabled for this grid control. <p>The default value is <member scope="com::sun::star::view">SelectionType::SINGLE</member></p> */ [property] ::com::sun::star::view::SelectionType SelectionModel; + /** Specifies the background color of rows. If color for even rows is set, then specifies + the color of odd rows. Default value is white. + */ + [property] ::com::sun::star::util::Color RowBackgroundColor; + + /** Specifies the background color of even rows. Default value is white. + */ + [property] ::com::sun::star::util::Color EvenRowBackgroundColor; + + /** Specifies the background color of header. Default value is white. + */ + [property] ::com::sun::star::util::Color HeaderBackgroundColor; + + /** Specifies the text color. Default value is black. + */ + [property] ::com::sun::star::util::Color TextColor; + + /** Specifies the line color. Default value is white. + */ + [property] ::com::sun::star::util::Color LineColor; + + /** specifies the vertical alignment of the content in the control. + + <pre> + TOP + MIDDLE + BOTTOM + </pre> + */ + [property] com::sun::star::style::VerticalAlignment VerticalAlign; + + /** specifies the font attributes of the text in the control. + */ + [property] com::sun::star::awt::FontDescriptor FontDescriptor; + + /** specifies the <type scope="com::sun::star::text">FontEmphasis</type> + value of the text in the control. + */ + [property] short FontEmphasisMark; + + /** specifies the <type scope="com::sun::star::text">FontRelief</type> + value of the text in the control. + */ + [property] short FontRelief; + + /** specifies the help text of the control. + */ + [property] string HelpText; + + /** specifies the help URL of the control. + */ + [property] string HelpURL; + }; //============================================================================= diff --git a/offapi/com/sun/star/awt/grid/XGridCell.idl b/offapi/com/sun/star/awt/grid/XGridCell.idl index b64c40a3dce4..08f3cfd1b2d5 100644 --- a/offapi/com/sun/star/awt/grid/XGridCell.idl +++ b/offapi/com/sun/star/awt/grid/XGridCell.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module awt { module grid { //============================================================================= -interface XGridCell: com::sun::star::uno::XInterface +interface XGridCell { [attribute] string Value; diff --git a/offapi/com/sun/star/awt/grid/XGridCellRenderer.idl b/offapi/com/sun/star/awt/grid/XGridCellRenderer.idl index 825acd4af43a..7f9fa28c3307 100644 --- a/offapi/com/sun/star/awt/grid/XGridCellRenderer.idl +++ b/offapi/com/sun/star/awt/grid/XGridCellRenderer.idl @@ -37,10 +37,9 @@ module com { module sun { module star { module awt { module grid { //============================================================================= -/** gives access to the items of a list box and makes it possible to - register item and action event listeners. +/** renderer for cells */ -interface XGridCellRenderer: com::sun::star::uno::XInterface +interface XGridCellRenderer { //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/awt/grid/XGridColumn.idl b/offapi/com/sun/star/awt/grid/XGridColumn.idl index 9c9981959ed3..d217ff5d4ac6 100644 --- a/offapi/com/sun/star/awt/grid/XGridColumn.idl +++ b/offapi/com/sun/star/awt/grid/XGridColumn.idl @@ -30,6 +30,9 @@ #ifndef __com_sun_star_uno_XInterface_idl__ #include <com/sun/star/uno/XInterface.idl> #endif +#include <com/sun/star/style/HorizontalAlignment.idl> +#include <com/sun/star/awt/grid/XGridColumnListener.idl> + //============================================================================= @@ -38,28 +41,67 @@ module com { module sun { module star { module awt { module grid { //============================================================================= /** The <type>XGridColumn</types> defines the properties and behavior of a column in a grid control + @since OOo 3.3.0 */ -interface XGridColumn: com::sun::star::uno::XInterface +interface XGridColumn { /** Specifies the an idendifier of the colomn.**/ [attribute] any Identifier; /** Specifies the default column witdth. **/ [attribute] long ColumnWidth; - /* + + /** Specifies the preferred column witdth. **/ [attribute] long PreferredWidth; + /** Specifies the min column witdth. **/ [attribute] long MinWidth; + /** Specifies the max column witdth. **/ [attribute] long MaxWidth; - [attribute] boolean Resizable; - */ + /** Specifies whether column has fixed size or not. **/ + [attribute] boolean Resizeable; + + /** Specifies the horizontal alignment of the content in the control. + + <pre> + LEFT + CENTER + RIGHT + </pre> + */ + [attribute] ::com::sun::star::style::HorizontalAlignment HorizontalAlign; /** A title is displayed in the colum header row if <method>UnoControlGridModel::ShowRowHeader</method> is set to <true/>**/ [attribute] string Title; + /** Adds a listener for the <type>GridColumnEvent</type> posted after the grid changes. + @param Listener + the listener to add. + */ + [oneway] void addColumnListener( [in] XGridColumnListener listener); + //------------------------------------------------------------------------- + + /** Removes a listener previously added with <method>addColumnListener()</method>. + @param Listener + the listener to remove. + */ + [oneway] void removeColumnListener( [in] XGridColumnListener listener); + + /**Updates changed column widths, when column widths are being resized. + @param name + can be PrefWidth or ColWidth, depending on which was changed + @param width + the new column width + */ + void updateColumn( [in] string name, [in] long width); + /**Sets column index + @param index + index, which is the index of the column in the column array of the column model + */ + void setIndex( [in] long index ); }; //============================================================================= diff --git a/offapi/com/sun/star/awt/grid/XGridColumnListener.idl b/offapi/com/sun/star/awt/grid/XGridColumnListener.idl index a9a0e50a34ed..8a2d044f33d5 100644 --- a/offapi/com/sun/star/awt/grid/XGridColumnListener.idl +++ b/offapi/com/sun/star/awt/grid/XGridColumnListener.idl @@ -46,18 +46,20 @@ module com { module sun { module star { module awt { module grid { <p>Usually you must not implement this interface yourself, but you must notify it correctly if you implement the <type>XGridColumnModel</type> yourself</p>. + + @since OOo 3.3.0 */ -interface XGridColumnListener: com::sun::star::uno::XInterface +interface XGridColumnListener { - /** - Invoked after a column was added to the column model. - */ - void columnAdded( [in] GridColumnEvent event ); - - /** - Invoked after a column was removed from the column model. - */ - void columnRemoved( [in] GridColumnEvent event ); + // /** + // Invoked after a column was added to the column model. + //*/ + //void columnAdded( [in] GridColumnEvent event ); + // + // /** + // Invoked after a column was removed from the column model. + //*/ + //void columnRemoved( [in] GridColumnEvent event ); /** Invoked after a column was modified. diff --git a/offapi/com/sun/star/awt/grid/XGridColumnModel.idl b/offapi/com/sun/star/awt/grid/XGridColumnModel.idl index 51f290fcef0e..86e77680cd95 100644 --- a/offapi/com/sun/star/awt/grid/XGridColumnModel.idl +++ b/offapi/com/sun/star/awt/grid/XGridColumnModel.idl @@ -30,6 +30,7 @@ #include <com/sun/star/uno/XInterface.idl> #include <com/sun/star/awt/grid/XGridColumn.idl> + #include <com/sun/star/awt/grid/XGridColumnListener.idl> //============================================================================= @@ -42,12 +43,18 @@ module com { module sun { module star { module awt { module grid { retrieve the column structure that is displayed in the actual control. If you do not need your own model implementation, you can also use the <type>DefaultGridColumnModel</type>. + + @since OOo 3.3.0 */ -interface XGridColumnModel: com::sun::star::uno::XInterface +interface XGridColumnModel { - /** Specifies whether column selection is allowed + ///** Specifies whether column selection is allowed + //*/ + //[attribute] boolean ColumnSelectionAllowed; + + /**Specifies the height of column header. */ - [attribute] boolean ColumnSelectionAllowed; + [attribute] long ColumnHeaderHeight; /** Returns the number of columns. @returns @@ -81,29 +88,28 @@ interface XGridColumnModel: com::sun::star::uno::XInterface /** Returns a specific column. @param index - the position of the reuquested column. + the position of the requested column. @returns the requested column. */ XGridColumn getColumn( [in] long index); - /* - long getTotalColumnWidth(); + /** Sets default columns to the column model. + @param elements + the number of default columns that should be set. */ + void setDefaultColumns([in] long elements); - /** Adds a listener for the <type>GridColumnEvent</type> posted after the grid changes. - @param Listener - the listener to add. + /**Creates new XGridColumn with the settings of other column. To be used if the columns which are added to + the column model have the same settings. + @param column + the column, which is already created */ - [oneway] void addColumnListener( [in] XGridColumnListener listener); - - //------------------------------------------------------------------------- + XGridColumn copyColumn( [in] XGridColumn column ); - /** Removes a listener previously added with <method>addColumnListener()</method>. - @param Listener - the listener to remove. + /* + long getTotalColumnWidth(); */ - [oneway] void removeColumnListener( [in] XGridColumnListener listener); }; //============================================================================= diff --git a/offapi/com/sun/star/awt/grid/XGridControl.idl b/offapi/com/sun/star/awt/grid/XGridControl.idl index 05c49aa1669d..5019a571663b 100644 --- a/offapi/com/sun/star/awt/grid/XGridControl.idl +++ b/offapi/com/sun/star/awt/grid/XGridControl.idl @@ -41,30 +41,25 @@ module com { module sun { module star { module awt { module grid { /** An interface to a control that displays a tabular data. @see UnoControlGrid + + @since OOo 3.3.0 */ interface XGridControl: XGridSelection { - /** Specifies the <type>XGridColumnModel</type> of the control. - */ - [attribute] XGridColumnModel ColumnModel; - - /** Specifies the <type>XGridDataModel</type> of the control. - */ - [attribute] XGridDataModel DataModel; - - /** Converting */ long getItemIndexAtPoint( [in] long x, [in] long y); - /** registers a listener for mouse events. - */ - //[oneway] void addMouseListener( [in] com::sun::star::awt::XMouseListener listener ); - - /** unregisters a listener for mouse events. - */ - //[oneway] void removeMouseListener( [in] com::sun::star::awt::XMouseListener listener ); + /** Sets tooltip for row + @param textForTooltip + text, which will be shown as tooltip. + If only cell content should be displayed, leave sequence empty. + @param columnsForTooltip + column numbers, which define the cell content that should be shown in the tooltip. + If only text should be shown, leave this sequence empty. + */ + void setToolTip( [in] sequence< string > textForTooltip, [in] sequence< long > columnsForTooltip); }; diff --git a/offapi/com/sun/star/awt/grid/XGridControlListener.idl b/offapi/com/sun/star/awt/grid/XGridControlListener.idl index ac703e8516ee..6f4fdf68ccd4 100644 --- a/offapi/com/sun/star/awt/grid/XGridControlListener.idl +++ b/offapi/com/sun/star/awt/grid/XGridControlListener.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module awt { module grid { //============================================================================= -interface XGridControlListener: com::sun::star::uno::XInterface +interface XGridControlListener { }; diff --git a/offapi/com/sun/star/awt/grid/XGridDataListener.idl b/offapi/com/sun/star/awt/grid/XGridDataListener.idl index cee808a178f2..d6d0d930b331 100644 --- a/offapi/com/sun/star/awt/grid/XGridDataListener.idl +++ b/offapi/com/sun/star/awt/grid/XGridDataListener.idl @@ -46,6 +46,8 @@ module com { module sun { module star { module awt { module grid { <p>Usually you must not implement this interface yourself, but you must notify it correctly if you implement the <type>XGridDataModel</type> yourself</p>. + + @since OOo 3.3.0 */ interface XGridDataListener: com::sun::star::lang::XEventListener { diff --git a/offapi/com/sun/star/awt/grid/XGridDataModel.idl b/offapi/com/sun/star/awt/grid/XGridDataModel.idl index f41841cf8039..5cc4085807e1 100644 --- a/offapi/com/sun/star/awt/grid/XGridDataModel.idl +++ b/offapi/com/sun/star/awt/grid/XGridDataModel.idl @@ -1,5 +1,6 @@ /************************************************************************* * + * $Revision: 1.8 $ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. @@ -41,6 +42,8 @@ module com { module sun { module star { module awt { module grid { retrieve the content data that is displayed in the actual control. If you do not need your own model implementation, you can also use the <type>DefaultGridDataModel</type>. + + @since OOo 3.3.0 */ interface XGridDataModel: ::com::sun::star::lang::XComponent { @@ -54,7 +57,11 @@ interface XGridDataModel: ::com::sun::star::lang::XComponent /** Returns the content of each row. */ - [attribute,readonly] sequence< sequence< string > > Data; + [attribute,readonly] sequence< sequence< any > > Data; + + /**Specifies the width of row header. + */ + [attribute] long RowHeaderWidth; /** Returns the number of rows in in the model. @returns @@ -69,7 +76,7 @@ interface XGridDataModel: ::com::sun::star::lang::XComponent @param data the content of the row. */ - void addRow( [in] string headername, [in] sequence< string > data ); + void addRow( [in] string headername, [in] sequence< any > data ); /** Removes a row from the model. @@ -82,6 +89,26 @@ interface XGridDataModel: ::com::sun::star::lang::XComponent */ void removeAll(); + /**Updates the content of a given cell. + @param row + the row index + @param column + the column index + @param value + the new value of the cell. + */ + void updateCell([in] long row, [in] long column, [in] any value ); + + /**Updates the content of a given row. + @param row + the row index + @param columns + column indexes of the cells, which should be updated + @param value + the new values of the cells. + */ + void updateRow([in] long row, [in] sequence< long > columns, [in] sequence< any > values); + //------------------------------------------------------------------------- /** Adds a listener for the <type>GridDataEvent</type> posted after the grid changes. diff --git a/offapi/com/sun/star/awt/grid/XGridSelection.idl b/offapi/com/sun/star/awt/grid/XGridSelection.idl index ecb760cb3277..5049426018b0 100644 --- a/offapi/com/sun/star/awt/grid/XGridSelection.idl +++ b/offapi/com/sun/star/awt/grid/XGridSelection.idl @@ -39,7 +39,7 @@ module com { module sun { module star { module awt { module grid { /** This interfaces provides access to the selection of row for <type>UnoControlGrid</type>. */ -interface XGridSelection: com::sun::star::uno::XInterface +interface XGridSelection { /** Returns the lowest index of the selection. @returns @@ -53,21 +53,25 @@ interface XGridSelection: com::sun::star::uno::XInterface */ long getMaxSelectionIndex(); - /** Adds a selection intervall. - @param start - the start row index. - @param length - the number of rows to be selected. + /** Selects all rows. */ - [oneway] void insertIndexIntervall( [in] long start, [in] long length); + [oneway] void selectAllRows(); - /** Removes a selection intervall. - @param start - the start row index. - @param length - the number of rows to be selected. + /** Selects multiple rows. Previous selections will be removed. + @param rangeOfRows + array of rows indexes, which will be selected. */ - [oneway] void removeIndexIntervall( [in] long start, [in] long length); + [oneway] void selectRows( [in] sequence< long > rangeOfRows); + + /** Deselects all selected rows. + */ + [oneway] void deselectAllRows(); + + /** Deselects selected rows. Selected rows, which aren't in the range remain selected. + @param rangeOfRows + array of rows indexes, which will be deselected. + */ + [oneway] void deselectRows( [in] sequence< long > rangeOfRows); /** Returns the indicies of all selected rows. @returns @@ -90,17 +94,17 @@ interface XGridSelection: com::sun::star::uno::XInterface boolean isSelectedIndex( [in] long index); /** Marks a row as selected. - @param + @param index the index of a row. */ - [oneway] void selectRow( [in] long y); + [oneway] void selectRow( [in] long index); /* [oneway] void selectColumn( [in] long x); */ /** Adds a listener for the <type>GridSelectionEvent</type> posted after the grid changes. - @param Listener + @param listener the listener to add. */ [oneway] void addSelectionListener( [in] XGridSelectionListener listener); @@ -108,7 +112,7 @@ interface XGridSelection: com::sun::star::uno::XInterface //------------------------------------------------------------------------- /** Removes a listener previously added with <method>addSelectionListener()</method>. - @param Listener + @param listener the listener to remove. */ [oneway] void removeSelectionListener( [in] XGridSelectionListener listener); diff --git a/offapi/com/sun/star/awt/grid/makefile.mk b/offapi/com/sun/star/awt/grid/makefile.mk index 3cfe6d83b3ba..02c159f8ffec 100644 --- a/offapi/com/sun/star/awt/grid/makefile.mk +++ b/offapi/com/sun/star/awt/grid/makefile.mk @@ -57,7 +57,9 @@ IDLFILES=\ ScrollBarMode.idl\ XGridControl.idl\ UnoControlGrid.idl\ - UnoControlGridModel.idl + UnoControlGridModel.idl\ + GridInvalidDataException.idl\ + GridInvalidModelException.idl # ------------------------------------------------------------------ .INCLUDE : target.mk diff --git a/offapi/com/sun/star/chart/Diagram.idl b/offapi/com/sun/star/chart/Diagram.idl index 0d8ced17f3ef..b57fc88f3804 100644 --- a/offapi/com/sun/star/chart/Diagram.idl +++ b/offapi/com/sun/star/chart/Diagram.idl @@ -31,6 +31,14 @@ #include <com/sun/star/chart/XDiagram.idl> #endif +#ifndef __com_sun_star_chart_XDiagramPositioning_idl__ +#include <com/sun/star/chart/XDiagramPositioning.idl> +#endif + +#ifndef __com_sun_star_chart_XSecondAxisTitleSupplier_idl__ +#include <com/sun/star/chart/XSecondAxisTitleSupplier.idl> +#endif + #ifndef __com_sun_star_beans_XPropertySet_idl__ #include <com/sun/star/beans/XPropertySet.idl> #endif @@ -64,6 +72,17 @@ published service Diagram interface com::sun::star::chart::XDiagram; + /** Provides access to the titles of the secondary X axis and Y axis. + + @since OOo 3.0 + */ + [optional] interface com::sun::star::chart::XSecondAxisTitleSupplier; + + /** + @since OOo 3.3 + */ + [optional] interface com::sun::star::chart::XDiagramPositioning; + //------------------------------------------------------------------------- /** If this property is <TRUE/> the position is calculated by the application automatically. diff --git a/offapi/com/sun/star/chart/XDiagramPositioning.idl b/offapi/com/sun/star/chart/XDiagramPositioning.idl new file mode 100644 index 000000000000..f64bbef4b641 --- /dev/null +++ b/offapi/com/sun/star/chart/XDiagramPositioning.idl @@ -0,0 +1,107 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: XDiagramPositioning.idl,v $ + * $Revision: 1.1 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_chart_XDiagramPositioning_idl__ +#define __com_sun_star_chart_XDiagramPositioning_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif +#ifndef __com_sun_star_awt_Rectangle_idl__ +#include <com/sun/star/awt/Rectangle.idl> +#endif + +//============================================================================= + + module com { module sun { module star { module chart { + +//============================================================================= + +/** allow for different positioning options for a diagram + + @see Diagram + */ +interface XDiagramPositioning : com::sun::star::uno::XInterface +{ + /** the diagram will be placed automtically + */ + void setAutomaticDiagramPositioning(); + + /** @returns whether the diagram is placed automtically + */ + boolean isAutomaticDiagramPositioning(); + + /** place the inner diagram part excluding any axes, labels and titles + @param PositionRect + specifies the position and size in 100/th mm + */ + void setDiagramPositionExcludingAxes( [in] com::sun::star::awt::Rectangle PositionRect ); + + /** @returns true in case the diagram position was set with method setDiagramPositionExcludingAxes + */ + boolean isExcludingDiagramPositioning(); + + /** @returns the position rectangle of the inner diagram part excluding any axes, labels and titles. + Position and size are given in 100/th mm. + It might be necessary to calculate the positioning so this method can be expensive and the result may depend on different other settings. + */ + com::sun::star::awt::Rectangle calculateDiagramPositionExcludingAxes(); + + + /** place the outer diagram part including the axes and axes labels, but excluding the axes titles. + @param PositionRect + specifies the position and size in 100/th mm + */ + void setDiagramPositionIncludingAxes( [in] com::sun::star::awt::Rectangle PositionRect ); + + /** @returns the position rectangle of the diagram including the axes and axes labels, but excluding the axes titles. + Position and size are given in 100/th mm. + It might be necessary to calculate the positioning so this method can be expensive and the result may depend on different other settings. + */ + com::sun::star::awt::Rectangle calculateDiagramPositionIncludingAxes(); + + /** place the diagram including the axes, axes labels and axes titles. + For the placement the current axis titles are taken into account, so the titles must be initialized properly before this method is called. + @param PositionRect + specifies the position and size in 100/th mm + */ + void setDiagramPositionIncludingAxesAndAxisTitles( [in] com::sun::star::awt::Rectangle PositionRect ); + + /** @returns the position rectangle of the diagram including the axes, axes labels and axes titles. + Position and size are given in 100/th mm. + It might be necessary to calculate the positioning so this method can be expensive and the result may depend on different other settings. + */ + com::sun::star::awt::Rectangle calculateDiagramPositionIncludingAxesAndAxisTitles(); +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/offapi/com/sun/star/chart/makefile.mk b/offapi/com/sun/star/chart/makefile.mk index 2c0b93256b3b..fdbf07173c5e 100644 --- a/offapi/com/sun/star/chart/makefile.mk +++ b/offapi/com/sun/star/chart/makefile.mk @@ -105,6 +105,7 @@ IDLFILES=\ XChartDocument.idl\ XComplexDescriptionAccess.idl\ XDiagram.idl\ + XDiagramPositioning.idl\ XStatisticDisplay.idl\ XTwoAxisXSupplier.idl\ XTwoAxisYSupplier.idl\ diff --git a/offapi/com/sun/star/chart2/Diagram.idl b/offapi/com/sun/star/chart2/Diagram.idl index a048b91a2347..2ca0e1ade86d 100644 --- a/offapi/com/sun/star/chart2/Diagram.idl +++ b/offapi/com/sun/star/chart2/Diagram.idl @@ -77,6 +77,10 @@ service Diagram */ [property] ::com::sun::star::layout::RelativeSize RelativeSize; + /** The attributes RelativePosition and RelativeSize should be used for the inner coordinate region without axis labels and without data labels. + */ + [optional, property] boolean PosSizeExcludeLabels; + /** Sort data points by x values for rendering */ [optional, property] boolean SortByXValues; diff --git a/offapi/com/sun/star/configuration/Update.idl b/offapi/com/sun/star/configuration/Update.idl new file mode 100644 index 000000000000..790a4bb40235 --- /dev/null +++ b/offapi/com/sun/star/configuration/Update.idl @@ -0,0 +1,45 @@ +/************************************************************************* +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ + +#ifndef __com_sun_star_configuration_Update_idl__ +#define __com_sun_star_configuration_Update_idl__ + +#include "com/sun/star/configuration/XUpdate.idl" + +module com { module sun { module star { module configuration { + +/* Provides access to internal update features of the configuration provider. + + <p>This singleton is unpublished and unstable.</p> + + @since OOo 3.3.0 +*/ +singleton Update: XUpdate; + +}; }; }; }; + +#endif diff --git a/offapi/com/sun/star/configuration/XUpdate.idl b/offapi/com/sun/star/configuration/XUpdate.idl new file mode 100644 index 000000000000..7514cbcb1b7f --- /dev/null +++ b/offapi/com/sun/star/configuration/XUpdate.idl @@ -0,0 +1,51 @@ +/************************************************************************* +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ + +#ifndef __com_sun_star_configuration_XUpdate_idl__ +#define __com_sun_star_configuration_XUpdate_idl__ + +#include "com/sun/star/uno/XInterface.idl" + +module com { module sun { module star { module configuration { + +/* Provides access to internal update features of the configuration provider. + + <p>This interface is unpublished and unstable.</p> + + @since OOo 3.3.0 +*/ +interface XUpdate { + void insertExtensionXcsFile([in] boolean shared, [in] string fileUri); + void insertExtensionXcuFile([in] boolean shared, [in] string fileUri); + void insertModificationXcuFile( + [in] string fileUri, [in] sequence< string > includedPaths, + [in] sequence< string > excludedPaths); +}; + +}; }; }; }; + +#endif diff --git a/offapi/com/sun/star/configuration/makefile.mk b/offapi/com/sun/star/configuration/makefile.mk index 0dc3a42df9ab..00525e9ba355 100644 --- a/offapi/com/sun/star/configuration/makefile.mk +++ b/offapi/com/sun/star/configuration/makefile.mk @@ -65,6 +65,8 @@ IDLFILES=\ PropertyHierarchy.idl\ XTemplateContainer.idl\ XTemplateInstance.idl\ + Update.idl \ + XUpdate.idl # ------------------------------------------------------------------ diff --git a/offapi/com/sun/star/document/DocumentProperties.idl b/offapi/com/sun/star/document/DocumentProperties.idl index c8e0ee9ca493..5b00f6c9a8e2 100755 --- a/offapi/com/sun/star/document/DocumentProperties.idl +++ b/offapi/com/sun/star/document/DocumentProperties.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module document { @see XDocumentProperties @see XDocumentPropertiesSupplier */ -service DocumentProperties : XDocumentProperties +published service DocumentProperties : XDocumentProperties { /** constructs default-initialized instance */ diff --git a/offapi/com/sun/star/document/MediaDescriptor.idl b/offapi/com/sun/star/document/MediaDescriptor.idl index 72690a45eccd..89a3141a443d 100644 --- a/offapi/com/sun/star/document/MediaDescriptor.idl +++ b/offapi/com/sun/star/document/MediaDescriptor.idl @@ -51,6 +51,10 @@ #include <com/sun/star/task/XStatusIndicator.idl> #endif +#ifndef __com_sun_star_frame_XFrame_idl__ +#include <com/sun/star/frame/XFrame.idl> +#endif + //============================================================================= module com { module sun { module star { module document { @@ -594,6 +598,11 @@ published service MediaDescriptor @since OOo 3.0 */ [optional,property] string ViewControllerName; + //------------------------------------------------------------------------- + + /** specifies the frame containing the document. May be empty. + */ + [optional,property] com::sun::star::frame::XFrame Frame; }; //============================================================================= diff --git a/offapi/com/sun/star/document/OfficeDocument.idl b/offapi/com/sun/star/document/OfficeDocument.idl index 98d3b09e39e3..4a3418e4da64 100644 --- a/offapi/com/sun/star/document/OfficeDocument.idl +++ b/offapi/com/sun/star/document/OfficeDocument.idl @@ -71,6 +71,10 @@ #include <com/sun/star/document/XEmbeddedScripts.idl> #endif +#ifndef __com_sun_star_document_XDocumentPropertiesSupplier_idl__ +#include <com/sun/star/document/XDocumentPropertiesSupplier.idl> +#endif + //============================================================================= module com { module sun { module star { module document { @@ -158,6 +162,8 @@ published service OfficeDocument Instead of the <type>StandaloneDocumentInfo</type> service the <type>DocumentInfo</type> will be available on an already opened document only. </p> + + @deprecated Use <type>XDocumentPropertiesSupplier</type> instead. */ [optional] interface XDocumentInfoSupplier; @@ -180,6 +186,13 @@ published service OfficeDocument [optional] interface XEmbeddedScripts; //------------------------------------------------------------------------- + /** access to the <type>DocumentProperties</type>. + + @since OOo 3.0 + */ + [optional] interface XDocumentPropertiesSupplier; + + //------------------------------------------------------------------------- /** controls the focus behaviour of the form controls in the document <p> diff --git a/offapi/com/sun/star/document/XDocumentProperties.idl b/offapi/com/sun/star/document/XDocumentProperties.idl index 943fbd586f8f..8a3b2c1843aa 100755 --- a/offapi/com/sun/star/document/XDocumentProperties.idl +++ b/offapi/com/sun/star/document/XDocumentProperties.idl @@ -88,7 +88,7 @@ module com { module sun { module star { module document { for getting access to an instance from a loaded document @see DocumentProperties for a service that implements this interface */ -interface XDocumentProperties +published interface XDocumentProperties { //------------------------------------------------------------------------- /** contains the initial author of the document. @@ -352,8 +352,6 @@ interface XDocumentProperties if thrown when trying to open a stream in the given storage @throws com::sun::star::io::IOException if thrown when trying to open a stream in the given storage - @throws com::sun::star::uno::Exception - in various unspecified circumstances */ void loadFromStorage( [in] com::sun::star::embed::XStorage Storage, @@ -361,15 +359,10 @@ interface XDocumentProperties raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::io::WrongFormatException, com::sun::star::lang::WrappedTargetException, - com::sun::star::io::IOException, - com::sun::star::uno::Exception ); + com::sun::star::io::IOException ); //------------------------------------------------------------------------- /** loads document properties from an ODF package or an OLE container. - <p> - For compatibility reasons this method also supports the import from - former StarOffice binary file formats. - </p> @param URL the URL of the source document @@ -389,16 +382,13 @@ interface XDocumentProperties if thrown when trying to open a stream in the given storage @throws com::sun::star::io::IOException if thrown when trying to open a stream in the given storage - @throws com::sun::star::uno::Exception - in various unspecified circumstances */ void loadFromMedium( [in] string URL, [in] sequence < com::sun::star::beans::PropertyValue > Medium ) raises( com::sun::star::io::WrongFormatException, com::sun::star::lang::WrappedTargetException, - com::sun::star::io::IOException, - com::sun::star::uno::Exception ); + com::sun::star::io::IOException ); //------------------------------------------------------------------------- /** stores document properties to an ODF package. @@ -428,23 +418,16 @@ interface XDocumentProperties if thrown when trying to open a stream in the given storage @throws com::sun::star::io::IOException if thrown when writing to the storage - @throws com::sun::star::uno::Exception - in various unspecified circumstances */ void storeToStorage( [in] com::sun::star::embed::XStorage Storage, [in] sequence < com::sun::star::beans::PropertyValue > Medium ) raises( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::WrappedTargetException, - com::sun::star::io::IOException, - com::sun::star::uno::Exception ); + com::sun::star::io::IOException ); //------------------------------------------------------------------------- /** stores document properties to an ODF package or an OLE container. - <p> - For compatibility reasons this method also supports the export to former - StarOffice binary file formats. - </p> @param URL the URL of the target document @@ -462,15 +445,12 @@ interface XDocumentProperties if thrown when trying to open a stream in the given storage @throws com::sun::star::io::IOException if thrown when writing to the storage - @throws com::sun::star::uno::Exception - in various unspecified circumstances */ void storeToMedium( [in] string URL, [in] sequence < com::sun::star::beans::PropertyValue > Medium ) raises( com::sun::star::lang::WrappedTargetException, - com::sun::star::io::IOException, - com::sun::star::uno::Exception ); + com::sun::star::io::IOException ); }; //============================================================================= diff --git a/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl b/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl index 52fa61aa5f12..811513d7a026 100644 --- a/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl +++ b/offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl @@ -52,7 +52,7 @@ module com { module sun { module star { module document { @see XDocumentProperties @see DocumentProperties */ -interface XDocumentPropertiesSupplier +published interface XDocumentPropertiesSupplier { //------------------------------------------------------------------------- /** provides the document properties object. diff --git a/offapi/com/sun/star/drawing/framework/XResourceFactory.idl b/offapi/com/sun/star/drawing/framework/XResourceFactory.idl index 5e0286128999..4bb8b09bc8ad 100644 --- a/offapi/com/sun/star/drawing/framework/XResourceFactory.idl +++ b/offapi/com/sun/star/drawing/framework/XResourceFactory.idl @@ -31,6 +31,12 @@ #ifndef __com_sun_star_uno_XInterface_idl__ #include <com/sun/star/uno/XInterface.idl> #endif +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif +#ifndef __com_sun_star_lang_WrappedTargetException_idl__ +#include <com/sun/star/lang/WrappedTargetException.idl> +#endif module com { module sun { module star { module drawing { module framework { @@ -65,7 +71,10 @@ interface XResourceFactory when the given URL is not supported by the factory. */ XResource createResource ( - [in] XResourceId xResourceId); + [in] XResourceId xResourceId) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException + ); /** Call this method to tell a factory that the given resource is no longer in use. The factory can decide whether to destroy the diff --git a/offapi/com/sun/star/drawing/framework/XView.idl b/offapi/com/sun/star/drawing/framework/XView.idl index 8e07eb27f0f6..c773cd903a00 100644 --- a/offapi/com/sun/star/drawing/framework/XView.idl +++ b/offapi/com/sun/star/drawing/framework/XView.idl @@ -45,8 +45,6 @@ module com { module sun { module star { module drawing { module framework { view is. It just needs to identify view objects and a typesafe way to reference them.</p> <p>The URL prefix of views is <code>private:resource/view</code></p> - @see XViewController - @see XViewFactory */ interface XView { diff --git a/offapi/com/sun/star/embed/Actions.idl b/offapi/com/sun/star/embed/Actions.idl index a65766a4ed79..48ad78eb0ab2 100644 --- a/offapi/com/sun/star/embed/Actions.idl +++ b/offapi/com/sun/star/embed/Actions.idl @@ -35,7 +35,7 @@ module com { module sun { module star { module embed { /** This constant set contains possible actions that could be approved by <type>ActionsApproval</type> implementation. */ -constants Actions +published constants Actions { //------------------------------------------------------------------------ /** "Prevent Close" - throws veto excetion if target object is going to diff --git a/offapi/com/sun/star/embed/Aspects.idl b/offapi/com/sun/star/embed/Aspects.idl index 3b0d13ba50c8..28431b60f87e 100644 --- a/offapi/com/sun/star/embed/Aspects.idl +++ b/offapi/com/sun/star/embed/Aspects.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module embed { @see XEmbeddedObject */ -constants Aspects +published constants Aspects { // MS OLE aspects diff --git a/offapi/com/sun/star/embed/BaseStorage.idl b/offapi/com/sun/star/embed/BaseStorage.idl index 776e9b992cbe..81df39792b75 100644 --- a/offapi/com/sun/star/embed/BaseStorage.idl +++ b/offapi/com/sun/star/embed/BaseStorage.idl @@ -44,7 +44,7 @@ //============================================================================ /** This is a service that allows to get access to a storage hierarchy. */ -service BaseStorage +published service BaseStorage { // ----------------------------------------------------------------------- /** This is a general interface representing storage functionality. diff --git a/offapi/com/sun/star/embed/DocumentCloser.idl b/offapi/com/sun/star/embed/DocumentCloser.idl index 89c020c8caa6..9b0eaf617527 100644 --- a/offapi/com/sun/star/embed/DocumentCloser.idl +++ b/offapi/com/sun/star/embed/DocumentCloser.idl @@ -65,7 +65,7 @@ module com { module sun { module star { module embed { from the container system window. </p> */ -service DocumentCloser : com::sun::star::lang::XComponent +published service DocumentCloser : com::sun::star::lang::XComponent { /** is used to initialize the object on it's creation. diff --git a/offapi/com/sun/star/embed/ElementModes.idl b/offapi/com/sun/star/embed/ElementModes.idl index d579c7f67be3..314036fd45ec 100644 --- a/offapi/com/sun/star/embed/ElementModes.idl +++ b/offapi/com/sun/star/embed/ElementModes.idl @@ -43,7 +43,7 @@ module com { module sun { module star { module embed { @see <type>XStorage</type> */ -constants ElementModes +published constants ElementModes { //------------------------------------------------------------------------ /** specifies opening of an element for reading. diff --git a/offapi/com/sun/star/embed/EmbedMapUnits.idl b/offapi/com/sun/star/embed/EmbedMapUnits.idl index 7888eea876b7..ff8a3cebada5 100644 --- a/offapi/com/sun/star/embed/EmbedMapUnits.idl +++ b/offapi/com/sun/star/embed/EmbedMapUnits.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module embed { @see XVisualObject */ -constants EmbedMapUnits +published constants EmbedMapUnits { // ---------------------------------------------------------------------- /** In this type of map mode one logical point is equal to one-hundredth diff --git a/offapi/com/sun/star/embed/EmbedMisc.idl b/offapi/com/sun/star/embed/EmbedMisc.idl index 1fa8204a44b0..a1e05224b00b 100644 --- a/offapi/com/sun/star/embed/EmbedMisc.idl +++ b/offapi/com/sun/star/embed/EmbedMisc.idl @@ -47,7 +47,7 @@ module com { module sun { module star { module embed { @see XEmbeddedObject */ -constants EmbedMisc +published constants EmbedMisc { // analog of the MS OLEMISC enum diff --git a/offapi/com/sun/star/embed/EmbedStates.idl b/offapi/com/sun/star/embed/EmbedStates.idl index 3f63bec2e607..df94cfa045a5 100644 --- a/offapi/com/sun/star/embed/EmbedStates.idl +++ b/offapi/com/sun/star/embed/EmbedStates.idl @@ -36,7 +36,7 @@ module com { module sun { module star { module embed { /** This constant set contains possible states for <type>EmbeddedObject</type>. */ -constants EmbedStates +published constants EmbedStates { //------------------------------------------------------------------------ /** "Loaded" - the persistent representation of the object is loaded in diff --git a/offapi/com/sun/star/embed/EmbedUpdateModes.idl b/offapi/com/sun/star/embed/EmbedUpdateModes.idl index 17213598d92a..9060aa965909 100644 --- a/offapi/com/sun/star/embed/EmbedUpdateModes.idl +++ b/offapi/com/sun/star/embed/EmbedUpdateModes.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module embed { @see XEmbeddedObject */ -constants EmbedUpdateModes +published constants EmbedUpdateModes { // ----------------------------------------------------------------------- /** An object representation should be updated as often as possible. diff --git a/offapi/com/sun/star/embed/EmbedVerbs.idl b/offapi/com/sun/star/embed/EmbedVerbs.idl index cc92013b83d5..5d34fb1e8153 100644 --- a/offapi/com/sun/star/embed/EmbedVerbs.idl +++ b/offapi/com/sun/star/embed/EmbedVerbs.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module embed { @see XEmbeddedObject */ -constants EmbedVerbs +published constants EmbedVerbs { //------------------------------------------------------------------------ /** lets the object do default activation, as by doubleclick. diff --git a/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl index 733db10e61b1..5a47c8f8fafc 100644 --- a/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl +++ b/offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl @@ -71,7 +71,7 @@ module com { module sun { module star { module embed { @see com::sun::star::beans::PropertyValue */ -service EmbeddedObjectDescriptor +published service EmbeddedObjectDescriptor { //------------------------------------------------------------------------ /** lets the graphical representation of embedded document be stored. diff --git a/offapi/com/sun/star/embed/EntryInitModes.idl b/offapi/com/sun/star/embed/EntryInitModes.idl index 2517670dacf9..ae67192d323a 100644 --- a/offapi/com/sun/star/embed/EntryInitModes.idl +++ b/offapi/com/sun/star/embed/EntryInitModes.idl @@ -38,7 +38,7 @@ module com { module sun { module star { module embed { @see XEmbedPersist */ -constants EntryInitModes +published constants EntryInitModes { // ----------------------------------------------------------------------- /** In case object persistance is created based on existing entry, diff --git a/offapi/com/sun/star/embed/FileSystemStorage.idl b/offapi/com/sun/star/embed/FileSystemStorage.idl index 76d07e3f9aeb..2b4d7d456751 100644 --- a/offapi/com/sun/star/embed/FileSystemStorage.idl +++ b/offapi/com/sun/star/embed/FileSystemStorage.idl @@ -40,7 +40,7 @@ /** This is a service that allows to get access to a file system folder using storage hierarchy. */ -service FileSystemStorage +published service FileSystemStorage { // ----------------------------------------------------------------------- /** This service describes the base functionality of storages. diff --git a/offapi/com/sun/star/embed/FileSystemStorageFactory.idl b/offapi/com/sun/star/embed/FileSystemStorageFactory.idl index 30f7f1fa15db..d27541d703ef 100644 --- a/offapi/com/sun/star/embed/FileSystemStorageFactory.idl +++ b/offapi/com/sun/star/embed/FileSystemStorageFactory.idl @@ -42,7 +42,7 @@ create a <type>FileSystemStorage</type> based on URL. The URL must point to a folder. */ -service FileSystemStorageFactory +published service FileSystemStorageFactory { // ---------------------------------------------------------------------- /** A storage can be created through this interface. diff --git a/offapi/com/sun/star/embed/InsertedObjectInfo.idl b/offapi/com/sun/star/embed/InsertedObjectInfo.idl index a07529ee34cc..dedfabb75a8f 100644 --- a/offapi/com/sun/star/embed/InsertedObjectInfo.idl +++ b/offapi/com/sun/star/embed/InsertedObjectInfo.idl @@ -43,7 +43,7 @@ /** is intended to provide result of creation of an embedded object by dialog. */ -struct InsertedObjectInfo +published struct InsertedObjectInfo { //------------------------------------------------------------------------- /** The new created embedded object. diff --git a/offapi/com/sun/star/embed/InstanceLocker.idl b/offapi/com/sun/star/embed/InstanceLocker.idl index 15716cc4fceb..3258dc3b9365 100644 --- a/offapi/com/sun/star/embed/InstanceLocker.idl +++ b/offapi/com/sun/star/embed/InstanceLocker.idl @@ -57,7 +57,7 @@ module com { module sun { module star { module embed { the listener throw related veto exception until the service is disposed. </p> */ -service InstanceLocker : com::sun::star::lang::XComponent +published service InstanceLocker : com::sun::star::lang::XComponent { /** is used to initialize the object on it's creation. diff --git a/offapi/com/sun/star/embed/InvalidStorageException.idl b/offapi/com/sun/star/embed/InvalidStorageException.idl index a8eeb067d237..f4eabfb8908e 100644 --- a/offapi/com/sun/star/embed/InvalidStorageException.idl +++ b/offapi/com/sun/star/embed/InvalidStorageException.idl @@ -44,7 +44,7 @@ For example in case it is broken one. </p> */ -exception InvalidStorageException: com::sun::star::io::IOException +published exception InvalidStorageException: com::sun::star::io::IOException { }; diff --git a/offapi/com/sun/star/embed/LinkageMisuseException.idl b/offapi/com/sun/star/embed/LinkageMisuseException.idl index 769938f9ccba..fec43851a373 100644 --- a/offapi/com/sun/star/embed/LinkageMisuseException.idl +++ b/offapi/com/sun/star/embed/LinkageMisuseException.idl @@ -44,7 +44,7 @@ Or if embedded object is misused as a linked object. </p> */ -exception LinkageMisuseException: com::sun::star::uno::Exception +published exception LinkageMisuseException: com::sun::star::uno::Exception { }; diff --git a/offapi/com/sun/star/embed/NeedsRunningStateException.idl b/offapi/com/sun/star/embed/NeedsRunningStateException.idl index 4c5149e36454..8853049ab64f 100644 --- a/offapi/com/sun/star/embed/NeedsRunningStateException.idl +++ b/offapi/com/sun/star/embed/NeedsRunningStateException.idl @@ -47,7 +47,7 @@ addition to the loaded state. Other states and possible verbs can be detected only after object is switched to running state. */ -exception NeedsRunningStateException: WrongStateException +published exception NeedsRunningStateException: WrongStateException { }; diff --git a/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl b/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl index 9262e9f0ee31..c5f8e5935b46 100644 --- a/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl +++ b/offapi/com/sun/star/embed/NoVisualAreaSizeException.idl @@ -41,7 +41,7 @@ /** This exception can be thrown in case the object can not provide own visual area currently. */ -exception NoVisualAreaSizeException: com::sun::star::uno::Exception +published exception NoVisualAreaSizeException: com::sun::star::uno::Exception { }; diff --git a/offapi/com/sun/star/embed/OLESimpleStorage.idl b/offapi/com/sun/star/embed/OLESimpleStorage.idl index d83078dfb315..8aa4630acd6b 100644 --- a/offapi/com/sun/star/embed/OLESimpleStorage.idl +++ b/offapi/com/sun/star/embed/OLESimpleStorage.idl @@ -45,7 +45,7 @@ module com { module sun { module star { module embed { /** This service provides a simple functionality to allow read/write the storages in OLE storage format. */ -service OLESimpleStorage: XOLESimpleStorage +published service OLESimpleStorage: XOLESimpleStorage { // CONSTRUCTORS ---------------------------------------------------------- /** is used to initialize the object on it's creation. diff --git a/offapi/com/sun/star/embed/ObjectSaveVetoException.idl b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl index cd75d9c0eb94..3d0252e912fe 100644 --- a/offapi/com/sun/star/embed/ObjectSaveVetoException.idl +++ b/offapi/com/sun/star/embed/ObjectSaveVetoException.idl @@ -43,7 +43,7 @@ @see XEmbeddedClient */ -exception ObjectSaveVetoException: com::sun::star::uno::Exception +published exception ObjectSaveVetoException: com::sun::star::uno::Exception { }; diff --git a/offapi/com/sun/star/embed/StateChangeInProgressException.idl b/offapi/com/sun/star/embed/StateChangeInProgressException.idl index fe6e50f221b9..648e839383ba 100644 --- a/offapi/com/sun/star/embed/StateChangeInProgressException.idl +++ b/offapi/com/sun/star/embed/StateChangeInProgressException.idl @@ -42,7 +42,7 @@ to call requested functionality currently because the object is changing state. */ -exception StateChangeInProgressException: com::sun::star::embed::WrongStateException +published exception StateChangeInProgressException: com::sun::star::embed::WrongStateException { //------------------------------------------------------------------------ /** contains the target state the object tries to reach currently. diff --git a/offapi/com/sun/star/embed/Storage.idl b/offapi/com/sun/star/embed/Storage.idl index 93709d335b2b..d34d736cf5cb 100644 --- a/offapi/com/sun/star/embed/Storage.idl +++ b/offapi/com/sun/star/embed/Storage.idl @@ -75,7 +75,7 @@ of a parent storage. </p> */ -service Storage +published service Storage { // ----------------------------------------------------------------------- /** This service describes the base functionality of storages. diff --git a/offapi/com/sun/star/embed/StorageFactory.idl b/offapi/com/sun/star/embed/StorageFactory.idl index 0f653069f07e..4b4b40d01a4c 100644 --- a/offapi/com/sun/star/embed/StorageFactory.idl +++ b/offapi/com/sun/star/embed/StorageFactory.idl @@ -41,7 +41,7 @@ /** The <type>StorageFactory</type> is a service that allows to create a storage based on either stream or URL. */ -service StorageFactory +published service StorageFactory { // ---------------------------------------------------------------------- /** A storage can be created through this interface. @@ -82,13 +82,22 @@ service StorageFactory <dt>parameter 3</dt> <dd> - allowes to provide + this paramenter represents + <type scope="com::sun::star::uno">Any</type> + containing a sequence of + <type scope="com::sun::star::beans">PropertyValue</type>.<br> + The parameter can contain entries from <type scope="com::sun::star::document">MediaDescryptor</type> - to the storage so some parts can be used for + to transport some document info during the storage initialization, it can be for example <type scope="com::sun::star::task">XInteractionHandler</type> implementation, password for the storage and repair - package flag. + package flag.<br> + Additionaly the parameter might contain property with the name + "StorageFormat" that can take values from + <type scope="com::sun::star::embed">StorageFormats</type>. + If the property is not provided a storage of package format + is created. </dd> </dl> diff --git a/cppu/test/EnvStack_tester/EnvStack.tester.hxx b/offapi/com/sun/star/embed/StorageFormats.idl index 1500ffe4723f..128fb1190b15 100644 --- a/cppu/test/EnvStack_tester/EnvStack.tester.hxx +++ b/offapi/com/sun/star/embed/StorageFormats.idl @@ -24,38 +24,42 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ +#ifndef __com_sun_star_embed_StorageFormats_idl__ +#define __com_sun_star_embed_StorageFormats_idl__ -#ifndef INCLUDED_cppu_test_EnvStack_tester_hxx -#define INCLUDED_cppu_test_EnvStack_tester_hxx -#include "uno/environment.hxx" +//============================================================================ +module com { module sun { module star { module embed { -#ifdef CPPU_test_EnvStack_tester_IMPL -# define CPPU_test_EnvStack_tester_EXPORT SAL_DLLPUBLIC_EXPORT +//============================================================================ +/** The constant set contains IDs of formats that are supported by + <type>StorageFactory</type>. -#elif defined(CPPU_test_EnvStack_Test_LIB) -# define CPPU_test_EnvStack_tester_EXPORT extern + @see <type>StorageFactory</type> + @since OOo 3.3 +*/ +published constants StorageFormats +{ + //------------------------------------------------------------------------ + /** specifies package format + */ + const long PACKAGE = 1; -#elif defined(__GNUC__) && defined(HAVE_GCC_VISIBILITY_FEATURE) -# define CPPU_test_EnvStack_tester_EXPORT extern __attribute__ ((weak)) + //------------------------------------------------------------------------ + /** specifies zip format + */ + const long ZIP = 2; -#elif defined(__SUNPRO_CC) -# define CPPU_test_EnvStack_tester_EXPORT extern - extern rtl::OUString g_commentStack; - extern com::sun::star::uno::Environment g_env; + //------------------------------------------------------------------------ + /** specifies Office Open XML format + */ + const long OFOPXML = 3; +}; -# pragma weak g_commentStack -# pragma weak g_env +//============================================================================ -#else -# define CPPU_test_EnvStack_tester_EXPORT SAL_DLLPUBLIC_IMPORT +}; }; }; }; #endif -CPPU_test_EnvStack_tester_EXPORT rtl::OUString g_commentStack; -CPPU_test_EnvStack_tester_EXPORT com::sun::star::uno::Environment g_env; - - - -#endif diff --git a/offapi/com/sun/star/embed/StorageStream.idl b/offapi/com/sun/star/embed/StorageStream.idl index eb08391619dd..1fb6733605f0 100644 --- a/offapi/com/sun/star/embed/StorageStream.idl +++ b/offapi/com/sun/star/embed/StorageStream.idl @@ -64,7 +64,7 @@ of the stream can exist. </p> */ -service StorageStream +published service StorageStream { // ----------------------------------------------------------------------- /** allows to get access to <type scope="com::sun::star::io">XInputStream</type> diff --git a/offapi/com/sun/star/embed/StorageWrappedTargetException.idl b/offapi/com/sun/star/embed/StorageWrappedTargetException.idl index 038d2fb9194f..aed449eb90a1 100644 --- a/offapi/com/sun/star/embed/StorageWrappedTargetException.idl +++ b/offapi/com/sun/star/embed/StorageWrappedTargetException.idl @@ -41,7 +41,7 @@ /** This exception can wrap an exception thrown during <type>XStorage</type> methods execution. */ -exception StorageWrappedTargetException: com::sun::star::lang::WrappedTargetException +published exception StorageWrappedTargetException: com::sun::star::lang::WrappedTargetException { }; diff --git a/offapi/com/sun/star/embed/UnreachableStateException.idl b/offapi/com/sun/star/embed/UnreachableStateException.idl index e0347b7894e5..be53beda3bc3 100644 --- a/offapi/com/sun/star/embed/UnreachableStateException.idl +++ b/offapi/com/sun/star/embed/UnreachableStateException.idl @@ -40,7 +40,7 @@ /** This exception can be thrown in case specified state can not be reached. */ -exception UnreachableStateException: com::sun::star::uno::Exception +published exception UnreachableStateException: com::sun::star::uno::Exception { // ----------------------------------------------------------------------- /** The current state of the object. diff --git a/offapi/com/sun/star/embed/UseBackupException.idl b/offapi/com/sun/star/embed/UseBackupException.idl index 34c19b6b59ec..e7d74d30f52c 100644 --- a/offapi/com/sun/star/embed/UseBackupException.idl +++ b/offapi/com/sun/star/embed/UseBackupException.idl @@ -51,7 +51,7 @@ internally, and can be used as a temporary storage usually used. </p> */ -exception UseBackupException: com::sun::star::io::IOException +published exception UseBackupException: com::sun::star::io::IOException { /** The URL of the temporary file the storage is based on now. */ diff --git a/offapi/com/sun/star/embed/VerbAttributes.idl b/offapi/com/sun/star/embed/VerbAttributes.idl index f8ee208831c5..742e782eb5c9 100644 --- a/offapi/com/sun/star/embed/VerbAttributes.idl +++ b/offapi/com/sun/star/embed/VerbAttributes.idl @@ -37,7 +37,7 @@ module com { module sun { module star { module embed { @see VerbDescriptor */ -constants VerbAttributes +published constants VerbAttributes { // ----------------------------------------------------------------------- /** Execution of the verb with this attribute must not modify the diff --git a/offapi/com/sun/star/embed/VerbDescriptor.idl b/offapi/com/sun/star/embed/VerbDescriptor.idl index c286e1ef23d0..f213c5969952 100644 --- a/offapi/com/sun/star/embed/VerbDescriptor.idl +++ b/offapi/com/sun/star/embed/VerbDescriptor.idl @@ -36,7 +36,7 @@ /** describes a verb. */ -struct VerbDescriptor +published struct VerbDescriptor { //------------------------------------------------------------------------ /** specifies the id of the verb. diff --git a/offapi/com/sun/star/embed/VisualRepresentation.idl b/offapi/com/sun/star/embed/VisualRepresentation.idl index d41c9acfbe3f..8d07575008bb 100644 --- a/offapi/com/sun/star/embed/VisualRepresentation.idl +++ b/offapi/com/sun/star/embed/VisualRepresentation.idl @@ -39,7 +39,7 @@ /** can contain a graphical representation in an arbitrary format. */ -struct VisualRepresentation +published struct VisualRepresentation { //------------------------------------------------------------------------- /** The format of the visual representation. diff --git a/offapi/com/sun/star/embed/WrongStateException.idl b/offapi/com/sun/star/embed/WrongStateException.idl index f7a2a31d9058..809389c3a1fa 100644 --- a/offapi/com/sun/star/embed/WrongStateException.idl +++ b/offapi/com/sun/star/embed/WrongStateException.idl @@ -41,7 +41,7 @@ /** This exception can be thrown in case the object's state does not allow to call requested functionality. */ -exception WrongStateException: com::sun::star::uno::Exception +published exception WrongStateException: com::sun::star::uno::Exception { }; diff --git a/offapi/com/sun/star/embed/XActionsApproval.idl b/offapi/com/sun/star/embed/XActionsApproval.idl index 904ae103101a..d3b64367a97b 100644 --- a/offapi/com/sun/star/embed/XActionsApproval.idl +++ b/offapi/com/sun/star/embed/XActionsApproval.idl @@ -44,7 +44,7 @@ possible actions must be documented in documentation of the object. </p> */ -interface XActionsApproval: com::sun::star::uno::XInterface +published interface XActionsApproval: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** requests an approval for the specified action. diff --git a/offapi/com/sun/star/embed/XClassifiedObject.idl b/offapi/com/sun/star/embed/XClassifiedObject.idl index 37ca9249cb30..2cde70fa8566 100644 --- a/offapi/com/sun/star/embed/XClassifiedObject.idl +++ b/offapi/com/sun/star/embed/XClassifiedObject.idl @@ -43,7 +43,7 @@ //============================================================================ /** represents common functionality for embedded objects */ -interface XClassifiedObject: com::sun::star::uno::XInterface +published interface XClassifiedObject: com::sun::star::uno::XInterface { // ----------------------------------------------------------------------- /** retrieves class ID of the object. diff --git a/offapi/com/sun/star/embed/XCommonEmbedPersist.idl b/offapi/com/sun/star/embed/XCommonEmbedPersist.idl index 2f07ce1e3015..8b82c44965e0 100644 --- a/offapi/com/sun/star/embed/XCommonEmbedPersist.idl +++ b/offapi/com/sun/star/embed/XCommonEmbedPersist.idl @@ -59,7 +59,7 @@ /** specifies common implementation for embedded objects and links persistence. */ -interface XCommonEmbedPersist: com::sun::star::uno::XInterface +published interface XCommonEmbedPersist: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** lets the object or the link store itself. diff --git a/offapi/com/sun/star/embed/XComponentSupplier.idl b/offapi/com/sun/star/embed/XComponentSupplier.idl index de1044bd2901..548b5aa24510 100644 --- a/offapi/com/sun/star/embed/XComponentSupplier.idl +++ b/offapi/com/sun/star/embed/XComponentSupplier.idl @@ -38,7 +38,7 @@ //============================================================================= /** provides access to a component. */ -interface XComponentSupplier: com::sun::star::uno::XInterface +published interface XComponentSupplier: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** allows to get access to a component. diff --git a/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl index b0e3c68b512c..45f3aef06cd6 100644 --- a/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl +++ b/offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl @@ -67,7 +67,7 @@ an embedded object based on system clipboard. </p> */ -interface XEmbedObjectClipboardCreator: com::sun::star::uno::XInterface +published interface XEmbedObjectClipboardCreator: com::sun::star::uno::XInterface { // ----------------------------------------------------------------------- /** creates a new object and initializes it from the system clipboard. diff --git a/offapi/com/sun/star/embed/XEmbedObjectCreator.idl b/offapi/com/sun/star/embed/XEmbedObjectCreator.idl index 09227bd26aa0..a214851922ad 100644 --- a/offapi/com/sun/star/embed/XEmbedObjectCreator.idl +++ b/offapi/com/sun/star/embed/XEmbedObjectCreator.idl @@ -63,7 +63,7 @@ an embedded object. </p> */ -interface XEmbedObjectCreator: com::sun::star::uno::XInterface +published interface XEmbedObjectCreator: com::sun::star::uno::XInterface { // ----------------------------------------------------------------------- /** creates a new object and initializes it as a new one. diff --git a/offapi/com/sun/star/embed/XEmbedObjectFactory.idl b/offapi/com/sun/star/embed/XEmbedObjectFactory.idl index f5b73f1d3dc3..67a355054c48 100644 --- a/offapi/com/sun/star/embed/XEmbedObjectFactory.idl +++ b/offapi/com/sun/star/embed/XEmbedObjectFactory.idl @@ -61,7 +61,7 @@ This interface provides user with full control over object creation. </p> */ -interface XEmbedObjectFactory: com::sun::star::uno::XInterface +published interface XEmbedObjectFactory: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** creates a new object and transport parameters for persistent diff --git a/offapi/com/sun/star/embed/XEmbedPersist.idl b/offapi/com/sun/star/embed/XEmbedPersist.idl index 6eaf57c21a18..73f807188ba6 100644 --- a/offapi/com/sun/star/embed/XEmbedPersist.idl +++ b/offapi/com/sun/star/embed/XEmbedPersist.idl @@ -67,7 +67,7 @@ representation. </p> */ -interface XEmbedPersist: XCommonEmbedPersist +published interface XEmbedPersist: XCommonEmbedPersist { //------------------------------------------------------------------------ /** provides object with a parent storage and a name for object's entry. diff --git a/offapi/com/sun/star/embed/XEmbeddedClient.idl b/offapi/com/sun/star/embed/XEmbeddedClient.idl index 1704f719287a..f361ea2d8653 100644 --- a/offapi/com/sun/star/embed/XEmbeddedClient.idl +++ b/offapi/com/sun/star/embed/XEmbeddedClient.idl @@ -52,7 +52,7 @@ //============================================================================ /** represents common functionality for embedded clients. */ -interface XEmbeddedClient: XComponentSupplier +published interface XEmbeddedClient: XComponentSupplier { //------------------------------------------------------------------------ /** asks client to let the object store itself. diff --git a/offapi/com/sun/star/embed/XEmbeddedObject.idl b/offapi/com/sun/star/embed/XEmbeddedObject.idl index 37de00b0221f..e0368736279f 100644 --- a/offapi/com/sun/star/embed/XEmbeddedObject.idl +++ b/offapi/com/sun/star/embed/XEmbeddedObject.idl @@ -92,7 +92,7 @@ //============================================================================ /** represents common functionality for embedded objects. */ -interface XEmbeddedObject +published interface XEmbeddedObject { // INTERFACES // diff --git a/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl b/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl index 1bcb03110a3b..9a71b99e871b 100644 --- a/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl +++ b/offapi/com/sun/star/embed/XEncryptionProtectedSource.idl @@ -42,7 +42,7 @@ //============================================================================ /** This interface allows to set a password for an object. */ -interface XEncryptionProtectedSource: com::sun::star::uno::XInterface +published interface XEncryptionProtectedSource: com::sun::star::uno::XInterface { // ----------------------------------------------------------------------- /** sets a password for the object. diff --git a/offapi/com/sun/star/embed/XExtendedStorageStream.idl b/offapi/com/sun/star/embed/XExtendedStorageStream.idl index e061c74c7337..397358db57ec 100644 --- a/offapi/com/sun/star/embed/XExtendedStorageStream.idl +++ b/offapi/com/sun/star/embed/XExtendedStorageStream.idl @@ -63,7 +63,7 @@ /** This interface allows access to an extended storage stream that might be transacted. */ -interface XExtendedStorageStream +published interface XExtendedStorageStream { // INTERFACES // diff --git a/offapi/com/sun/star/embed/XHatchWindow.idl b/offapi/com/sun/star/embed/XHatchWindow.idl index 735a556ab0f5..33733958f6cd 100644 --- a/offapi/com/sun/star/embed/XHatchWindow.idl +++ b/offapi/com/sun/star/embed/XHatchWindow.idl @@ -56,7 +56,7 @@ Thus the window can not resize/move itself. </p> */ -interface XHatchWindow: com::sun::star::lang::XComponent +published interface XHatchWindow: com::sun::star::lang::XComponent { //------------------------------------------------------------------------ /** sets the object that will control resizing/moving, if the object is diff --git a/offapi/com/sun/star/embed/XHatchWindowController.idl b/offapi/com/sun/star/embed/XHatchWindowController.idl index d4158db605fc..7ec2e0c5a5bb 100644 --- a/offapi/com/sun/star/embed/XHatchWindowController.idl +++ b/offapi/com/sun/star/embed/XHatchWindowController.idl @@ -49,7 +49,7 @@ rectangle size. </p> */ -interface XHatchWindowController: com::sun::star::uno::XInterface +published interface XHatchWindowController: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** requests window owner to resize/move the window. diff --git a/offapi/com/sun/star/embed/XHatchWindowFactory.idl b/offapi/com/sun/star/embed/XHatchWindowFactory.idl index 5f6ebf5d5998..79d8db04832d 100644 --- a/offapi/com/sun/star/embed/XHatchWindowFactory.idl +++ b/offapi/com/sun/star/embed/XHatchWindowFactory.idl @@ -55,7 +55,7 @@ /** creates a hatch window implementation. */ -interface XHatchWindowFactory: com::sun::star::uno::XInterface +published interface XHatchWindowFactory: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** creates a new hatch window instance. diff --git a/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl b/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl index d3a05b0b9de5..1f2cdcf132f9 100644 --- a/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl +++ b/offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl @@ -95,7 +95,7 @@ opened ( it is locked by hierarchical access ). </p> */ -interface XHierarchicalStorageAccess +published interface XHierarchicalStorageAccess { // METHODS // diff --git a/offapi/com/sun/star/embed/XInplaceObject.idl b/offapi/com/sun/star/embed/XInplaceObject.idl index 53462a78fe88..3ca6bdf359fb 100644 --- a/offapi/com/sun/star/embed/XInplaceObject.idl +++ b/offapi/com/sun/star/embed/XInplaceObject.idl @@ -52,7 +52,7 @@ //============================================================================ /** represents common functionality for inplace embedded objects. */ -interface XInplaceObject: com::sun::star::uno::XInterface +published interface XInplaceObject: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** sets the visible part of the inplace object. diff --git a/offapi/com/sun/star/embed/XInsertObjectDialog.idl b/offapi/com/sun/star/embed/XInsertObjectDialog.idl index 84ee0816ea8d..7b98a1c767a2 100644 --- a/offapi/com/sun/star/embed/XInsertObjectDialog.idl +++ b/offapi/com/sun/star/embed/XInsertObjectDialog.idl @@ -62,7 +62,7 @@ //============================================================================= /** allows to create and initialize a new embedded object using GUI dialog. */ -interface XInsertObjectDialog: com::sun::star::uno::XInterface +published interface XInsertObjectDialog: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** creates a new object using GUI dialog. diff --git a/offapi/com/sun/star/embed/XLinkCreator.idl b/offapi/com/sun/star/embed/XLinkCreator.idl index 676d112848c9..be4bbe613288 100644 --- a/offapi/com/sun/star/embed/XLinkCreator.idl +++ b/offapi/com/sun/star/embed/XLinkCreator.idl @@ -62,7 +62,7 @@ it will be detected. </p> */ -interface XLinkCreator: com::sun::star::uno::XInterface +published interface XLinkCreator: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** creates a new object based on diff --git a/offapi/com/sun/star/embed/XLinkFactory.idl b/offapi/com/sun/star/embed/XLinkFactory.idl index 73cd218d35ca..cd77fbfe0dbb 100644 --- a/offapi/com/sun/star/embed/XLinkFactory.idl +++ b/offapi/com/sun/star/embed/XLinkFactory.idl @@ -58,7 +58,7 @@ //============================================================================ /** allows to create and initialize a new link of specified type. */ -interface XLinkFactory: com::sun::star::uno::XInterface +published interface XLinkFactory: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** creates a new link and transport parameters for persistent diff --git a/offapi/com/sun/star/embed/XLinkageSupport.idl b/offapi/com/sun/star/embed/XLinkageSupport.idl index eb321989d182..a4a53c36e7a8 100644 --- a/offapi/com/sun/star/embed/XLinkageSupport.idl +++ b/offapi/com/sun/star/embed/XLinkageSupport.idl @@ -54,7 +54,7 @@ //============================================================================ /** specifies an additional implementation for linked embedded object support. */ -interface XLinkageSupport: XCommonEmbedPersist +published interface XLinkageSupport: XCommonEmbedPersist { //------------------------------------------------------------------------ /** breaks the link and provides the object with a parent storage and a diff --git a/offapi/com/sun/star/embed/XOLESimpleStorage.idl b/offapi/com/sun/star/embed/XOLESimpleStorage.idl index 9f8b19573953..ac39370e8a8f 100644 --- a/offapi/com/sun/star/embed/XOLESimpleStorage.idl +++ b/offapi/com/sun/star/embed/XOLESimpleStorage.idl @@ -58,7 +58,7 @@ module com { module sun { module star { module embed { subcomponents are either OLE storages themself or streams. </p> */ -interface XOLESimpleStorage +published interface XOLESimpleStorage { //INTERFACES // diff --git a/offapi/com/sun/star/embed/XOptimizedStorage.idl b/offapi/com/sun/star/embed/XOptimizedStorage.idl index e43a63bb6586..d51371fadfbb 100644 --- a/offapi/com/sun/star/embed/XOptimizedStorage.idl +++ b/offapi/com/sun/star/embed/XOptimizedStorage.idl @@ -97,7 +97,7 @@ time and will be depricated soon! Another solution will be introduced as final one. */ -interface XOptimizedStorage +published interface XOptimizedStorage { // ----------------------------------------------------------------------- /** allows to insert a raw stream representing nonencrypted stream with diff --git a/offapi/com/sun/star/embed/XPackageStructureCreator.idl b/offapi/com/sun/star/embed/XPackageStructureCreator.idl index 193232cdfdc1..c76d4c787cc7 100644 --- a/offapi/com/sun/star/embed/XPackageStructureCreator.idl +++ b/offapi/com/sun/star/embed/XPackageStructureCreator.idl @@ -42,7 +42,7 @@ //============================================================================= /** allows to convert file system folder tree in to a package. */ -interface XPackageStructureCreator: com::sun::star::uno::XInterface +published interface XPackageStructureCreator: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** converts file system folder tree in to a package. diff --git a/offapi/com/sun/star/embed/XPersistanceHolder.idl b/offapi/com/sun/star/embed/XPersistanceHolder.idl index f6d171218549..5528fe62e143 100644 --- a/offapi/com/sun/star/embed/XPersistanceHolder.idl +++ b/offapi/com/sun/star/embed/XPersistanceHolder.idl @@ -46,7 +46,7 @@ //============================================================================= /** allows to disconnect an object from its persistence. */ -interface XPersistanceHolder: com::sun::star::uno::XInterface +published interface XPersistanceHolder: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** disconnects the object from the persistance. diff --git a/offapi/com/sun/star/embed/XRelationshipAccess.idl b/offapi/com/sun/star/embed/XRelationshipAccess.idl index 8a527df38a4d..3c934caf1f33 100644 --- a/offapi/com/sun/star/embed/XRelationshipAccess.idl +++ b/offapi/com/sun/star/embed/XRelationshipAccess.idl @@ -62,7 +62,7 @@ this tag is used as a uniqued identified of an entry. </p> */ -interface XRelationshipAccess : ::com::sun::star::uno::XInterface +published interface XRelationshipAccess : ::com::sun::star::uno::XInterface { // ----------------------------------------------------------------------- /** allows to detect whether there is an entry with specified value of diff --git a/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl b/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl index e50c54c182ff..91a47e8f6288 100644 --- a/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl +++ b/offapi/com/sun/star/embed/XStateChangeBroadcaster.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module embed { /** broadcasts message in case embedded object object changes it's state. */ -interface XStateChangeBroadcaster: com::sun::star::uno::XInterface +published interface XStateChangeBroadcaster: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** adds the specified listener to receive events about states change diff --git a/offapi/com/sun/star/embed/XStateChangeListener.idl b/offapi/com/sun/star/embed/XStateChangeListener.idl index 13bde974ceaf..3c552de33222 100644 --- a/offapi/com/sun/star/embed/XStateChangeListener.idl +++ b/offapi/com/sun/star/embed/XStateChangeListener.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module embed { /** makes it possible to receive events when an embedded object changes it's state. */ -interface XStateChangeListener: com::sun::star::lang::XEventListener +published interface XStateChangeListener: com::sun::star::lang::XEventListener { //------------------------------------------------------------------------ /** is called just before the object changes state. diff --git a/offapi/com/sun/star/embed/XStorage.idl b/offapi/com/sun/star/embed/XStorage.idl index a03190caddab..0a98cfa3e8eb 100644 --- a/offapi/com/sun/star/embed/XStorage.idl +++ b/offapi/com/sun/star/embed/XStorage.idl @@ -91,7 +91,7 @@ //============================================================================ /** This interface represents main storage functionality. */ -interface XStorage +published interface XStorage { // INTERFACES // diff --git a/offapi/com/sun/star/embed/XStorageRawAccess.idl b/offapi/com/sun/star/embed/XStorageRawAccess.idl index 64031325f628..b70b2e3c1235 100644 --- a/offapi/com/sun/star/embed/XStorageRawAccess.idl +++ b/offapi/com/sun/star/embed/XStorageRawAccess.idl @@ -79,7 +79,7 @@ //============================================================================ /** This interface represents main storage functionality. */ -interface XStorageRawAccess +published interface XStorageRawAccess { // ----------------------------------------------------------------------- /** allows to get a plain raw stream representing a package stream. diff --git a/offapi/com/sun/star/embed/XTransactedObject.idl b/offapi/com/sun/star/embed/XTransactedObject.idl index afefd0f2d2c5..80f86187a7c6 100644 --- a/offapi/com/sun/star/embed/XTransactedObject.idl +++ b/offapi/com/sun/star/embed/XTransactedObject.idl @@ -46,7 +46,7 @@ //============================================================================ /** allows transacted access to an object. */ -interface XTransactedObject: com::sun::star::uno::XInterface +published interface XTransactedObject: com::sun::star::uno::XInterface { // ----------------------------------------------------------------------- /** commits the changes made for object. diff --git a/offapi/com/sun/star/embed/XTransactionBroadcaster.idl b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl index 66e62538f083..fb5b7d2acc06 100644 --- a/offapi/com/sun/star/embed/XTransactionBroadcaster.idl +++ b/offapi/com/sun/star/embed/XTransactionBroadcaster.idl @@ -44,7 +44,7 @@ module com { module sun { module star { module embed { /** broadcasts messege in case transacted object is commited or reverted. */ -interface XTransactionBroadcaster: com::sun::star::uno::XInterface +published interface XTransactionBroadcaster: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** adds the specified listener to receive events about commits and diff --git a/offapi/com/sun/star/embed/XTransactionListener.idl b/offapi/com/sun/star/embed/XTransactionListener.idl index acfa889386ca..89e80956cf11 100644 --- a/offapi/com/sun/star/embed/XTransactionListener.idl +++ b/offapi/com/sun/star/embed/XTransactionListener.idl @@ -48,7 +48,7 @@ module com { module sun { module star { module embed { /** makes it possible to receive events when a transacted object is commited or reverted. */ -interface XTransactionListener: com::sun::star::lang::XEventListener +published interface XTransactionListener: com::sun::star::lang::XEventListener { //------------------------------------------------------------------------ /** is called just before the object is commited. diff --git a/offapi/com/sun/star/embed/XTransferableSupplier.idl b/offapi/com/sun/star/embed/XTransferableSupplier.idl index 76034df05231..d22c6fb27769 100644 --- a/offapi/com/sun/star/embed/XTransferableSupplier.idl +++ b/offapi/com/sun/star/embed/XTransferableSupplier.idl @@ -40,7 +40,7 @@ <type scope="com::sun::star::datatransfer">XTransferable</type> implementation from the object. */ -interface XTransferableSupplier: com::sun::star::uno::XInterface +published interface XTransferableSupplier: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** allows to get access to diff --git a/offapi/com/sun/star/embed/XVisualObject.idl b/offapi/com/sun/star/embed/XVisualObject.idl index 62430e41778a..bed94da4fa7d 100644 --- a/offapi/com/sun/star/embed/XVisualObject.idl +++ b/offapi/com/sun/star/embed/XVisualObject.idl @@ -55,7 +55,7 @@ //============================================================================= /** represents common visualisation functionality for embedded objects. */ -interface XVisualObject: ::com::sun::star::uno::XInterface +published interface XVisualObject: ::com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** sets the size of object's visual area. diff --git a/offapi/com/sun/star/embed/XWindowSupplier.idl b/offapi/com/sun/star/embed/XWindowSupplier.idl index 3ff344ab60d9..e878a65d21d2 100644 --- a/offapi/com/sun/star/embed/XWindowSupplier.idl +++ b/offapi/com/sun/star/embed/XWindowSupplier.idl @@ -38,7 +38,7 @@ //============================================================================ /** provides access to a vcl window implementation. */ -interface XWindowSupplier: com::sun::star::uno::XInterface +published interface XWindowSupplier: com::sun::star::uno::XInterface { //------------------------------------------------------------------------ /** allows to get access to a vcl window implementation. diff --git a/offapi/com/sun/star/embed/makefile.mk b/offapi/com/sun/star/embed/makefile.mk index 404f14ceab1c..349017452ef3 100644 --- a/offapi/com/sun/star/embed/makefile.mk +++ b/offapi/com/sun/star/embed/makefile.mk @@ -57,6 +57,7 @@ IDLFILES=\ Storage.idl\ StorageStream.idl\ StorageFactory.idl\ + StorageFormats.idl\ VerbAttributes.idl\ VisualRepresentation.idl\ VerbDescriptor.idl\ diff --git a/offapi/com/sun/star/i18n/TransliterationModulesExtra.idl b/offapi/com/sun/star/i18n/TransliterationModulesExtra.idl new file mode 100644 index 000000000000..17cd0d6a7ba6 --- /dev/null +++ b/offapi/com/sun/star/i18n/TransliterationModulesExtra.idl @@ -0,0 +1,76 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: TransliterationModulesExtra.idl,v $ + * $Revision: 1.0 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_i18n_TransliterationModulesExtra_idl__ +#define __com_sun_star_i18n_TransliterationModulesExtra_idl__ + +//============================================================================= + +module com { module sun { module star { module i18n { + +//============================================================================= + +/** Extra transliteration module enumeration to use with + <member>XTransliteration::loadModule()</member> + + The values used in this group need to be different from the ones in + <type>TransliterationModules</type> and <type>TransliterationModulesNew</type>! + */ + + +// using a constant group instead of enum leaves room for additional values later on... +constants TransliterationModulesExtra +{ + /** The first character of the sentence is put in upper case + */ + const short SENTENCE_CASE = 200; + + //------------------------------------------------------------------------- + + /** The first character of the word is put in upper case. + * This one is part + */ + const short TITLE_CASE = 201; + + //------------------------------------------------------------------------- + + /** All characters of the word are to change their case from small letters + * to capital letters and vice versa. + */ + const short TOGGLE_CASE = 202; + + //------------------------------------------------------------------------- + + const long END_OF_MODULE = 0; +}; + +//============================================================================= +}; }; }; }; + +#endif diff --git a/offapi/com/sun/star/i18n/makefile.mk b/offapi/com/sun/star/i18n/makefile.mk index 71907e42c6d9..7d861fa1436d 100644 --- a/offapi/com/sun/star/i18n/makefile.mk +++ b/offapi/com/sun/star/i18n/makefile.mk @@ -94,6 +94,7 @@ IDLFILES=\ Transliteration.idl \ TransliterationModules.idl \ TransliterationModulesNew.idl \ + TransliterationModulesExtra.idl \ TransliterationType.idl \ UnicodeScript.idl \ UnicodeType.idl \ diff --git a/offapi/com/sun/star/packages/NoEncryptionException.idl b/offapi/com/sun/star/packages/NoEncryptionException.idl index 5d057c91cc8f..cffecf7bd637 100644 --- a/offapi/com/sun/star/packages/NoEncryptionException.idl +++ b/offapi/com/sun/star/packages/NoEncryptionException.idl @@ -41,7 +41,7 @@ // DocMerge from xml: exception com::sun::star::packages::NoEncryptionException /** This exception can be thrown in case object is not encrypted one as expected. */ -exception NoEncryptionException: com::sun::star::uno::Exception +published exception NoEncryptionException: com::sun::star::uno::Exception { }; diff --git a/offapi/com/sun/star/packages/NoRawFormatException.idl b/offapi/com/sun/star/packages/NoRawFormatException.idl index 111b8fdcc90c..a2730b41da62 100644 --- a/offapi/com/sun/star/packages/NoRawFormatException.idl +++ b/offapi/com/sun/star/packages/NoRawFormatException.idl @@ -42,7 +42,7 @@ /** This exception can be thrown in case provided stream is not a raw stream representing encrypted package stream. */ -exception NoRawFormatException: com::sun::star::io::IOException +published exception NoRawFormatException: com::sun::star::io::IOException { }; diff --git a/offapi/com/sun/star/packages/WrongPasswordException.idl b/offapi/com/sun/star/packages/WrongPasswordException.idl index 2e014e310dfb..954e0bd68afc 100644 --- a/offapi/com/sun/star/packages/WrongPasswordException.idl +++ b/offapi/com/sun/star/packages/WrongPasswordException.idl @@ -41,7 +41,7 @@ // DocMerge from xml: exception com::sun::star::packages::WrongPasswordException /** This exception can be thrown in case wrong password was provided. */ -exception WrongPasswordException: com::sun::star::uno::Exception +published exception WrongPasswordException: com::sun::star::uno::Exception { }; diff --git a/offapi/com/sun/star/rdf/XDocumentRepository.idl b/offapi/com/sun/star/rdf/XDocumentRepository.idl index ee42faf0c51c..215fd89fa954 100644 --- a/offapi/com/sun/star/rdf/XDocumentRepository.idl +++ b/offapi/com/sun/star/rdf/XDocumentRepository.idl @@ -28,6 +28,10 @@ #ifndef __com_sun_star_rdf_XDocumentRepository_idl__ #define __com_sun_star_rdf_XDocumentRepository_idl__ +#ifndef __com_sun_star_beans_Pair_idl__ +#include <com/sun/star/beans/Pair.idl> +#endif + #ifndef __com_sun_star_rdf_XMetadatable_idl__ #include <com/sun/star/rdf/XMetadatable.idl> #endif @@ -84,13 +88,6 @@ interface XDocumentRepository : XRepository <code>Subject Predicate XLiteral(RDFaContent^^RDFaDatatype)</code> </li> </ul> - Further, add the following RDF statement to the same unspecified - named graph: - <ul> - <li> - <code>Subject rdfs:label XLiteral(Object->getText())</code> - </li> - </ul> </li> </ol> </p> @@ -172,13 +169,13 @@ interface XDocumentRepository : XRepository <li>if the element has no RDFa meta-data attributes: the empty sequence.</li> <li>if the element has RDFa meta-data attributes: - and no <code>rdfa:content</code> attached: - a sequence with the RDFa-statements corresponding to the - attributes</li> - <li>if the element has RDFa meta-data attributes, - and also <code>rdfa:content</code> attached: - a sequence with the RDFa-statements corresponding to the - attributes, including the RDFa-labels-statement</li> + <ul> + <li>a sequence with the RDFa-statements corresponding to the + attributes.</li> + <li>a flag indicating whether there is a xhtml:content + attribute.</li> + </ul> + </li> </ul> @throws com::sun::star::lang::IllegalArgumentException @@ -190,7 +187,8 @@ interface XDocumentRepository : XRepository @see Statement */ - sequence<Statement> getStatementRDFa([in] XMetadatable Element) + com::sun::star::beans::Pair< sequence<Statement>, boolean > + getStatementRDFa([in] XMetadatable Element) raises( com::sun::star::lang::IllegalArgumentException, RepositoryException ); diff --git a/offapi/com/sun/star/script/ModuleInfo.idl b/offapi/com/sun/star/script/ModuleInfo.idl new file mode 100644 index 000000000000..158ba387be6b --- /dev/null +++ b/offapi/com/sun/star/script/ModuleInfo.idl @@ -0,0 +1,55 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: ModuleInfo.idl,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: rt $ $Date: 2006/05/05 10:14:46 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef __com_sun_star_script_ModuleInfo_idl__ +#define __com_sun_star_script_ModuleInfo_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif + +//============================================================================= +module com { module sun { module star { module script { +struct ModuleInfo +{ + com::sun::star::uno::XInterface ModuleObject; + long ModuleType; +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/offapi/com/sun/star/script/ModuleType.idl b/offapi/com/sun/star/script/ModuleType.idl new file mode 100644 index 000000000000..a9bde042fa5a --- /dev/null +++ b/offapi/com/sun/star/script/ModuleType.idl @@ -0,0 +1,72 @@ +/************************************************************************* + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: ModuleType.idl,v $ + * + * $Revision: 1.2 $ + * + * last change: $Author: rt $ $Date: 2006/05/05 10:14:46 $ + * + * The Contents of this file are made available subject to + * the terms of GNU Lesser General Public License Version 2.1. + * + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2005 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + ************************************************************************/ + +#ifndef __com_sun_star_script_ModuleType_idl__ +#define __com_sun_star_script_ModuleType_idl__ + +//============================================================================= + +module com { module sun { module star { module script { + +published constants ModuleType +{ + // ------------------------------------------------------------------------ + + const long UNKNOWN = 0; + + // ------------------------------------------------------------------------ + + const long NORMAL = 1; + + // ------------------------------------------------------------------------ + + const long CLASS = 2; + + // ------------------------------------------------------------------------ + + const long FORM = 3; + + // ------------------------------------------------------------------------ + + const long DOCUMENT = 4; + + // ------------------------------------------------------------------------ +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/cppu/test/ObjectFactory/ObjectFactory.hxx b/offapi/com/sun/star/script/XVBACompat.idl index 768c4c430f9c..09da54eb27cd 100644 --- a/cppu/test/ObjectFactory/ObjectFactory.hxx +++ b/offapi/com/sun/star/script/XVBACompat.idl @@ -2,10 +2,13 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * + * $RCSfile: XLibraryContainer.idl,v $ + * $Revision: 1.4 $ + * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -24,25 +27,23 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ +#ifndef __com_sun_star_script_XVBACompat_idl__ +#define __com_sun_star_script_XVBACompat_idl__ -#ifndef INCLUDED_ObjectFactory_hxx -#define INCLUDED_ObjectFactory_hxx - - -#include "callee.hxx" - - -#ifdef CPPU_test_ObjectFactory_IMPL -# define CPPU_test_ObjectFactory_EXPORT SAL_DLLPUBLIC_EXPORT - -#else -# define CPPU_test_ObjectFactory_EXPORT SAL_DLLPUBLIC_IMPORT - +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> #endif +//============================================================================= + +module com { module sun { module star { module script { -CPPU_test_ObjectFactory_EXPORT void * createObject(rtl::OUString const & envDcp, Callee * pCallee); -CPPU_test_ObjectFactory_EXPORT void callObject (rtl::OUString const & envDcp, void *); +interface XVBACompat: com::sun::star::uno::XInterface +{ +//============================================================================= + [attribute ] boolean VBACompatModeOn; +}; }; }; }; +}; #endif diff --git a/offapi/com/sun/star/script/XVBAModuleInfo.idl b/offapi/com/sun/star/script/XVBAModuleInfo.idl new file mode 100644 index 000000000000..f9c4e64223c3 --- /dev/null +++ b/offapi/com/sun/star/script/XVBAModuleInfo.idl @@ -0,0 +1,73 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: XLibraryContainer.idl,v $ + * $Revision: 1.4 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_script_XVBACompat_idl__ +#define __com_sun_star_script_XVBACompat_idl__ + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif +#ifndef __com_sun_star_script_ModuleInfo_idl__ +#include <com/sun/star/script/ModuleInfo.idl> +#endif +#ifndef __com_sun_star_lang_IllegalArgumentException_idl__ +#include <com/sun/star/lang/IllegalArgumentException.idl> +#endif +#ifndef __com_sun_star_container_ElementExistException_idl__ +#include <com/sun/star/container/ElementExistException.idl> +#endif +#ifndef __com_sun_star_lang_WrappedTargetException_idl__ +#include <com/sun/star/lang/WrappedTargetException.idl> +#endif +#ifndef __com_sun_star_container_NoSuchElementException_idl__ +#include <com/sun/star/container/NoSuchElementException.idl> +#endif + +//============================================================================= + +module com { module sun { module star { module script { + +interface XVBAModuleInfo: com::sun::star::uno::XInterface +{ + + com::sun::star::script::ModuleInfo getModuleInfo( [in] string ModuleName ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); + boolean hasModuleInfo( [in] string ModuleName ); + void insertModuleInfo( [in] string ModuleName, + [in] com::sun::star::script::ModuleInfo ModuleInfo ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::container::ElementExistException, + com::sun::star::lang::WrappedTargetException ); + void removeModuleInfo( [in] string ModuleName ) + raises( com::sun::star::container::NoSuchElementException, + com::sun::star::lang::WrappedTargetException ); +}; }; }; }; +}; +#endif diff --git a/offapi/com/sun/star/script/makefile.mk b/offapi/com/sun/star/script/makefile.mk index 579174390ec4..b694a753f7d7 100644 --- a/offapi/com/sun/star/script/makefile.mk +++ b/offapi/com/sun/star/script/makefile.mk @@ -48,6 +48,10 @@ IDLFILES=\ XPersistentLibraryContainer.idl\ XStorageBasedLibraryContainer.idl\ ModuleSizeExceededRequest.idl\ + XVBACompat.idl\ + XVBAModuleInfo.idl\ + ModuleInfo.idl\ + ModuleType.idl\ # ------------------------------------------------------------------ diff --git a/offapi/com/sun/star/sdb/DataAccessDescriptor.idl b/offapi/com/sun/star/sdb/DataAccessDescriptor.idl index 955962578837..10f9432b498b 100644 --- a/offapi/com/sun/star/sdb/DataAccessDescriptor.idl +++ b/offapi/com/sun/star/sdb/DataAccessDescriptor.idl @@ -49,7 +49,7 @@ module com { module sun { module star { module sdb { /** descriptor for accessing basic data access objects. <p>Various components interacting with the database access world require to specify (or provide themself) an object - such as a query, a table, a result set, a connection to a data source, a column within a table, and so on.</br> + such as a query, a table, a result set, a connection to a data source, a column within a table, and so on.<br/> All of these objects are usually not specified with a single property, but with a set of properties, and for various objects, various (but not always different) properties are needed.<br/> The <code>DataAccessDescriptor</code> describes the super set of the properties for the most common @@ -199,7 +199,7 @@ published service DataAccessDescriptor has access to an already existent result set, it can pass it along for reusage. This is encouraged to increase performance.</p> - <p>The object will at least support the <type scope="com::sun::star::sdbc">ResultSet</type>.</p> + <p>The object will at least support the <type scope="com::sun::star::sdbc">ResultSet</type> service.</p> <p>Note that any superservices of <type scope="com::sun::star::sdbc">ResultSet</type> are also allowed. Especially, this member can denote an instance of the diff --git a/offapi/com/sun/star/sdb/RowSet.idl b/offapi/com/sun/star/sdb/RowSet.idl index 8292523cc4e2..d52b6cf0cc39 100644 --- a/offapi/com/sun/star/sdb/RowSet.idl +++ b/offapi/com/sun/star/sdb/RowSet.idl @@ -70,6 +70,7 @@ published interface XParametersSupplier; to approve the actions and to react on them. @see com::sun::star::sdb::RowChangeAction @see com::sun::star::sdb::RowChangeEvent + @see com::sun::star::sdb::RowsChangeEvent </p> <h3>Notifications</h3> @@ -97,7 +98,8 @@ published interface XParametersSupplier; <tr><td valign="top"><em>operation done</em></td> <td valign="top">When the operation is done, you get a notification about this. It may be a <member scope="com::sun::star::sdbc">XRowSetListener::cursorMoved</member> or a - <member scope="com::sun::star::sdbc">XRowSetListener::rowChanged</member> call. + <member scope="com::sun::star::sdbc">XRowSetListener::rowChanged</member> call or a + <member>XRowsChangeListener::rowsChanged</member> call. </td> </tr> <tr><td valign="top"><em>row state</em></td> @@ -121,39 +123,40 @@ published interface XParametersSupplier; <tr><td/><td><strong>approveCursorMove</strong></td><td><strong>approveRowChange</strong></td> <td><strong>column values</strong></td> <td><strong>cursorMoved</strong></td><td><strong>rowChanged</strong></td> + <td><strong>rowsChanged</strong></td> <td><strong>IsModified</strong></td><td><strong>IsNew</strong></td> <td><strong>RowCount</strong></td><td><strong>IsRowCountFinal</strong></td> </tr> <tr><td><type scope="com::sun::star::sdbc">XResultSet</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> - <tr><td align="right"><em>next</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td> - <tr><td align="right"><em>beforeFirst</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> - <tr><td align="right"><em>afterLast</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>first</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>last</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>absolute</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>relative</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>previous</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>refreshRow</em></td><td/><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> - <tr><td align="right"><em>cancelRowUpdates</em></td><td/><td/><td align="center">X</td><td/><td/><td align="center">X</td><td/><td/><td/></tr> + <tr><td align="right"><em>next</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td> + <tr><td align="right"><em>beforeFirst</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> + <tr><td align="right"><em>afterLast</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>first</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>last</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>absolute</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>relative</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>previous</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>refreshRow</em></td><td/><td/><td align="center">X</td><td/><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> + <tr><td align="right"><em>cancelRowUpdates</em></td><td/><td/><td align="center">X</td><td/><td/><td/><td align="center">X</td><td/><td/><td/></tr> <tr><td><type scope="com::sun::star::sdbc">XResultSetUpdate</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> - <tr><td align="right"><em>insertRow</em></td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>updateRow</em></td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td/></tr> - <tr><td align="right"><em>deleteRow</em></td><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>moveToInsertRow</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td></tr> - <tr><td align="right"><em>moveToCurrentRow</em></td><td align="center">X</td><td/><td/><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> + <tr><td align="right"><em>insertRow</em></td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>updateRow</em></td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td/><td/><td/></tr> + <tr><td align="right"><em>deleteRow</em></td><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>moveToInsertRow</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td/><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>moveToCurrentRow</em></td><td align="center">X</td><td/><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> <tr><td><type scope="com::sun::star::sdbcx">XDeleteRows</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> - <tr><td align="right"><em>deleteRows</em></td><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>deleteRows</em></td><td/><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> <tr><td><type scope="com::sun::star::sdbcx">XRowLocate</type></td><td/><td/><td/><td/><td/><td/><td/><td/></tr> - <tr><td align="right"><em>moveToBookmark</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> - <tr><td align="right"><em>moveRelativeToBookmark</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> + <tr><td align="right"><em>moveToBookmark</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td/><td/></tr> + <tr><td align="right"><em>moveRelativeToBookmark</em></td><td align="center">X</td><td/><td align="center">X</td><td align="center">X</td><td/><td/><td align="center">X</td><td align="center">X</td><td align="center">X</td><td align="center">X</td></tr> </tr> </table> diff --git a/cppu/test/ObjectFactory/UnoObject.hxx b/offapi/com/sun/star/sdb/RowsChangeEvent.idl index e2d9fba5aa6b..90bb50f4bf84 100644 --- a/cppu/test/ObjectFactory/UnoObject.hxx +++ b/offapi/com/sun/star/sdb/RowsChangeEvent.idl @@ -2,10 +2,13 @@ * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * Copyright 2000, 2010 Oracle and/or its affiliates. + * Copyright 2008 by Sun Microsystems, Inc. * * OpenOffice.org - a multi-platform office productivity suite * + * $RCSfile: RowsChangeEvent.idl,v $ + * $Revision: 1.9 $ + * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify @@ -24,20 +27,26 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ +#ifndef __com_sun_star_sdb_RowsChangeEvent_idl__ +#define __com_sun_star_sdb_RowsChangeEvent_idl__ -#ifndef INCLUDED_UnoObject_hxx -#define INCLUDED_UnoObject_hxx +#include <com/sun/star/sdb/RowChangeEvent.idl> + module com { module sun { module star { module sdb { -#include "rtl/ustring.hxx" -#include "uno/dispatcher.h" -#include "callee.hxx" +/** indicates which rows have changed and the type of change action on the row set. + */ +struct RowsChangeEvent: com::sun::star::sdb::RowChangeEvent +{ + sequence< any > Bookmarks; +}; -uno_Interface * UnoObject_create (Callee * pCallee); -void UnoObject_release(uno_Interface * pUnoI); -void UnoObject_call (uno_Interface * pUnoI); +//============================================================================= +}; }; }; }; +/*=========================================================================== +===========================================================================*/ #endif diff --git a/offapi/com/sun/star/sdb/XRowsChangeBroadcaster.idl b/offapi/com/sun/star/sdb/XRowsChangeBroadcaster.idl new file mode 100644 index 000000000000..feb8191c44d9 --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowsChangeBroadcaster.idl @@ -0,0 +1,66 @@ +/************************************************************************* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2008 by Sun Microsystems, Inc. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* $RCSfile: code,v $ +* +* $Revision: 1.3 $ +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +************************************************************************/ + +#ifndef __com_sun_star_sdb_XRowsChangeBroadcaster_idl__ +#define __com_sun_star_sdb_XRowsChangeBroadcaster_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +//============================================================================= + +module com { module sun { module star { module sdb { + +interface XRowsChangeListener; + +//============================================================================= + +/** broadcasts changes in the <code>RowSet</code> supplied by a component + + @see XRowSetSupplier + @see XRowsChangeListener + @since OOo 3.3 + */ +interface XRowsChangeBroadcaster +{ + /** adds a listener to be notified when the <code>RowSet</code> supplied by the component changes. + */ + void addRowsChangeListener( [in] XRowsChangeListener listener ); + + /** removes a previously added listener. + */ + void removeRowsChangeListener( [in] XRowsChangeListener listener ); +}; + +//============================================================================= + +}; }; }; }; + +//============================================================================= + +#endif diff --git a/offapi/com/sun/star/sdb/XRowsChangeListener.idl b/offapi/com/sun/star/sdb/XRowsChangeListener.idl new file mode 100644 index 000000000000..995636e95e3f --- /dev/null +++ b/offapi/com/sun/star/sdb/XRowsChangeListener.idl @@ -0,0 +1,60 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: XRowsChangeListener.idl,v $ + * $Revision: 1.11 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef __com_sun_star_sdb_XRowsChangeListener_idl__ +#define __com_sun_star_sdb_XRowsChangeListener_idl__ + +#ifndef __com_sun_star_lang_XEventListener_idl__ +#include <com/sun/star/lang/XEventListener.idl> +#endif +#include <com/sun/star/sdb/RowsChangeEvent.idl> + + module com { module sun { module star { module sdb { + + +/** is used for receiving "rowsChanged" events + posted by, for example, a rowset. + */ +interface XRowsChangeListener: com::sun::star::lang::XEventListener +{ + + /** is called when rows are inserted, updated, or deleted. + @param event + contains information about the event + */ + [oneway] void rowsChanged([in]com::sun::star::sdb::RowsChangeEvent event); +}; + +//============================================================================= + +}; }; }; }; + +/*=========================================================================== +===========================================================================*/ +#endif diff --git a/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl b/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl index c0abad38710e..96041b71e86b 100644 --- a/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl +++ b/offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl @@ -219,6 +219,36 @@ interface XSingleSelectQueryAnalyzer : com::sun::star::uno::XInterface */ string getQueryWithSubstitution() raises (com::sun::star::sdbc::SQLException); + + /** sets a new query for the composer, which may be expanded by filters, group by, having + and sort criteria. + @param Command + is the command which should be executed, the type of command depends + on the CommandType. + + <p>In case of a <member>CommandType</member> of <member>CommandType::COMMAND</member>, + means in case the <member>Command</member> specifies an SQL statement, the inherited + <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member> + becomes relevant:<br/> + It then can be to used to specify whether the SQL statement should be analyzed on the + client side before sending it to the database server.<br/> + The default value for <member scope="com::sun::star::sdbc">RowSet::EscapeProcessing</member> + is <TRUE/>. By switching it to <FALSE/>, you can pass backend-specific SQL statements, + which are not standard SQL, to your database.</p> + + @see com::sun::star::sdb::CommandType + @see com::sun::star::sdbc::RowSet::EscapeProcessing + @param CommandType + is the type of the command. + @see com::sun::star::sdb::CommandType + @throws com::sun::star::sdbc::SQLException + if a database access error occurs + or the statement isn't a single select statement + or the statement isn't valid + or the statement can not be parsed. + */ + void setCommand([in] string Command ,[in] long CommandType) + raises (com::sun::star::sdbc::SQLException); }; //============================================================================= diff --git a/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl b/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl index b659b367320f..ad609262ecbe 100644 --- a/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl +++ b/offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl @@ -96,14 +96,16 @@ interface XSingleSelectQueryComposer: XSingleSelectQueryAnalyzer The value property must be supported by the <type scope="com::sun::star::sdb">DataColumn</type>. @param column the column which is used to create a filter - @paran andCriteria + @param andCriteria If <TRUE/> the filter condition will be appended as an AND condition, otherwise the new filter condition will be appended as OR criteria. E.g. (xx AND bb AND cc) OR newCriteria + @param filterOperator + The operator used, is defined by <type scope="com::sun::star::sdb">SQLFilterOperator</type>. @throws com::sun::star::sdbc::SQLException if a database access error occurs. */ - void appendFilterByColumn([in] com::sun::star::beans::XPropertySet column,[in] boolean andCriteria) + void appendFilterByColumn([in] com::sun::star::beans::XPropertySet column,[in] boolean andCriteria,[in] long filterOperator) raises (com::sun::star::sdbc::SQLException); //------------------------------------------------------------------------- @@ -170,14 +172,16 @@ interface XSingleSelectQueryComposer: XSingleSelectQueryAnalyzer providing the name and the value for the filter. @param column the column which is used to create a filter - @paran andCriteria + @param andCriteria If <TRUE/> the filter condition will be appended as an AND condition, otherwise the new filter condition will be appended as OR criteria. E.g. (xx AND bb AND cc) OR newCriteria + @param filterOperator + The operator used, is defined by <type scope="com::sun::star::sdb">SQLFilterOperator</type>. @throws com::sun::star::sdbc::SQLException if a database access error occurs. */ - void appendHavingClauseByColumn([in] com::sun::star::beans::XPropertySet column,[in] boolean andCriteria) + void appendHavingClauseByColumn([in] com::sun::star::beans::XPropertySet column,[in] boolean andCriteria,[in] long filterOperator) raises (com::sun::star::sdbc::SQLException); //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/sdb/makefile.mk b/offapi/com/sun/star/sdb/makefile.mk index 975bf03e7712..f095f338bcd4 100644 --- a/offapi/com/sun/star/sdb/makefile.mk +++ b/offapi/com/sun/star/sdb/makefile.mk @@ -90,6 +90,7 @@ IDLFILES=\ ResultSet.idl \ RowChangeAction.idl \ RowChangeEvent.idl \ + RowsChangeEvent.idl \ RowSet.idl \ RowSetVetoException.idl \ SingleSelectQueryAnalyzer.idl \ @@ -128,6 +129,8 @@ IDLFILES=\ XRowSetApproveListener.idl \ XRowSetChangeBroadcaster.idl \ XRowSetChangeListener.idl \ + XRowsChangeBroadcaster.idl \ + XRowsChangeListener.idl \ XRowSetSupplier.idl \ XSingleSelectQueryAnalyzer.idl \ XSingleSelectQueryComposer.idl \ diff --git a/offapi/com/sun/star/sdbc/XGeneratedResultSet.idl b/offapi/com/sun/star/sdbc/XGeneratedResultSet.idl index 194eb6ffeec4..edc6e4ab7c81 100644 --- a/offapi/com/sun/star/sdbc/XGeneratedResultSet.idl +++ b/offapi/com/sun/star/sdbc/XGeneratedResultSet.idl @@ -41,9 +41,9 @@ /** provides a result set which gives access to automatically generated values after a new row was inserted. - The relative order of columns in the result set returned by getGeneratedValues must be the same as the relative order - of the same columns as returned when executing a "SELECT * FROM table". This ensures that clients of this interface - can reliably fetch the column values. + <p>The relative order of columns in the result set returned by <member>getGeneratedValues</member> must be the same + as the relative order of the same columns as returned when executing a "SELECT * FROM table". This ensures that + clients of this interface can reliably fetch the column values.</p> @see com::sun::star::sdbc::Statement @see com::sun::star::sdbc::PreparedStatement diff --git a/offapi/com/sun/star/sdbc/XRowSetListener.idl b/offapi/com/sun/star/sdbc/XRowSetListener.idl index 0bb778e458dc..d4aba4ab71ac 100644 --- a/offapi/com/sun/star/sdbc/XRowSetListener.idl +++ b/offapi/com/sun/star/sdbc/XRowSetListener.idl @@ -50,6 +50,8 @@ published interface XRowSetListener: com::sun::star::lang::XEventListener /** is called when a row is inserted, updated, or deleted. @param event contains information about the event + @deprecated + @see com.sun.star.sdb.XRowsChangeListener */ [oneway] void rowChanged([in]com::sun::star::lang::EventObject event); //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/sheet/XExternalDocLink.idl b/offapi/com/sun/star/sheet/XExternalDocLink.idl index 19d1f0ff08d7..1a9662dbeed7 100644 --- a/offapi/com/sun/star/sheet/XExternalDocLink.idl +++ b/offapi/com/sun/star/sheet/XExternalDocLink.idl @@ -60,9 +60,16 @@ interface XExternalDocLink @param aSheetName sheet name + @param DynamicCache specify whether or not the cache can grow when + non-cached regions are queried. If <true/>, querying a non-cached + cell in this sheet cache will allow Calc to try to access the source + document to fetch the value in first access. If <false/>, the source + document will not be accessed, and the non-cached regions are treated + as empty cells. + @return com::sun::star::sheet::XExternalSheetCache sheet cache instance */ - com::sun::star::sheet::XExternalSheetCache addSheetCache( [in] string aSheetName ); + com::sun::star::sheet::XExternalSheetCache addSheetCache( [in] string aSheetName, [in] boolean DynamicCache ); //------------------------------------------------------------------------- diff --git a/offapi/com/sun/star/text/InContentMetadata.idl b/offapi/com/sun/star/text/InContentMetadata.idl index f6aec7bbee63..5eac10714576 100755 --- a/offapi/com/sun/star/text/InContentMetadata.idl +++ b/offapi/com/sun/star/text/InContentMetadata.idl @@ -32,6 +32,10 @@ #include <com/sun/star/container/XEnumerationAccess.idl> #endif +#ifndef __com_sun_star_container_XChild_idl__ +#include <com/sun/star/container/XChild.idl> +#endif + #ifndef __com_sun_star_text_TextContent_idl__ #include <com/sun/star/text/TextContent.idl> #endif @@ -68,6 +72,12 @@ service InContentMetadata annotated range of text can be enumerated. */ interface com::sun::star::container::XEnumerationAccess; + //------------------------------------------------------------------------- + /** The <type>TextContent</type> that is the parent of this text range. + @since OOo 3.3 + */ + interface com::sun::star::container::XChild; + }; diff --git a/offapi/com/sun/star/text/TextMarkupType.idl b/offapi/com/sun/star/text/TextMarkupType.idl index d99942e0d12f..5137d47d217f 100644 --- a/offapi/com/sun/star/text/TextMarkupType.idl +++ b/offapi/com/sun/star/text/TextMarkupType.idl @@ -58,6 +58,12 @@ constants TextMarkupType /// An inivisible markup used to identify sentence boundaries. /// @since OOo 3.0.1 const long SENTENCE = 4; + + /// Markups originates from change tracking. + /// @since OOo 3.3 + const long TRACK_CHANGE_INSERTION = 5; + const long TRACK_CHANGE_DELETION = 6; + const long TRACK_CHANGE_FORMATCHANGE = 7; }; }; }; }; }; diff --git a/offapi/com/sun/star/text/TextRangeContentProperties.idl b/offapi/com/sun/star/text/TextRangeContentProperties.idl new file mode 100644 index 000000000000..74acb67cf9ed --- /dev/null +++ b/offapi/com/sun/star/text/TextRangeContentProperties.idl @@ -0,0 +1,133 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef __com_sun_star_text_TextRangeContentProperties_idl__ +#define __com_sun_star_text_TextRangeContentProperties_idl__ + +#ifndef __com_sun_star_table_XCell_idl__ +#include <com/sun/star/table/XCell.idl> +#endif + +#ifndef __com_sun_star_text_XTextContent_idl__ +#include <com/sun/star/text/XTextContent.idl> +#endif + +#ifndef __com_sun_star_text_XDocumentIndex_idl__ +#include <com/sun/star/text/XDocumentIndex.idl> +#endif + +#ifndef __com_sun_star_text_XTextTable_idl__ +#include <com/sun/star/text/XTextTable.idl> +#endif + +#ifndef __com_sun_star_text_XTextFrame_idl__ +#include <com/sun/star/text/XTextFrame.idl> +#endif + +#ifndef __com_sun_star_text_XTextSection_idl__ +#include <com/sun/star/text/XTextSection.idl> +#endif + +#ifndef __com_sun_star_text_XDocumentIndexMark_idl__ +#include <com/sun/star/text/XDocumentIndexMark.idl> +#endif + +#ifndef __com_sun_star_text_XFootnote_idl__ +#include <com/sun/star/text/XFootnote.idl> +#endif + + +//============================================================================= + +module com { module sun { module star { module text { + +//============================================================================= + +/** describes the structural properties to retrieve text contents. + + @since OOo 3.3 + */ +service TextRangeContentProperties +{ + //------------------------------------------------------------------------- + /** may contain a document index. */ + [optional, readonly, property] com::sun::star::text::XDocumentIndex + DocumentIndex; + + //------------------------------------------------------------------------- + /** may contain a text table. */ + [optional, readonly, property] com::sun::star::text::XTextTable + TextTable; + + //------------------------------------------------------------------------- + /** may contain a table cell. */ + [optional, readonly, property] com::sun::star::table::XCell Cell; + + //------------------------------------------------------------------------- + /** may contain a text frame. */ + [optional, readonly, property] com::sun::star::text::XTextFrame + TextFrame; + + //------------------------------------------------------------------------- + /** may contain a text section. */ + [optional, readonly, property] com::sun::star::text::XTextSection + TextSection; + + //------------------------------------------------------------------------- + /** may contain a document index mark. */ + [optional, readonly, property] com::sun::star::text::XDocumentIndexMark + DocumentIndexMark; + + //------------------------------------------------------------------------- + /** may contain a reference mark. */ + [optional, readonly, property] com::sun::star::text::XTextContent + ReferenceMark; + + //------------------------------------------------------------------------- + /** may contain a footnote. */ + [optional, readonly, property] com::sun::star::text::XFootnote Footnote; + + //------------------------------------------------------------------------- + /** may contain a endnote. */ + [optional, readonly, property] com::sun::star::text::XFootnote Endnote; + + //------------------------------------------------------------------------- + /** may contain a nested text content. + + For example, may contain an <type>InContentMetadata</type> or a + <type scope="com::sun::star::text::textfield">MetadataField</type>. + */ + [optional, readonly, property] com::sun::star::text::XTextContent + NestedTextContent; + +}; + +//============================================================================= + +}; }; }; }; + +#endif diff --git a/offapi/com/sun/star/text/makefile.mk b/offapi/com/sun/star/text/makefile.mk index 28c3d1eaece3..4e6d24746af8 100644 --- a/offapi/com/sun/star/text/makefile.mk +++ b/offapi/com/sun/star/text/makefile.mk @@ -173,6 +173,7 @@ IDLFILES=\ TextPortionEnumeration.idl\ TextRange.idl\ TextRanges.idl\ + TextRangeContentProperties.idl\ TextSection.idl\ TextSections.idl\ TextSortable.idl\ diff --git a/offapi/com/sun/star/text/textfield/MetadataField.idl b/offapi/com/sun/star/text/textfield/MetadataField.idl index 85541457aef7..d98c4be39e96 100755 --- a/offapi/com/sun/star/text/textfield/MetadataField.idl +++ b/offapi/com/sun/star/text/textfield/MetadataField.idl @@ -32,6 +32,10 @@ #include <com/sun/star/container/XEnumerationAccess.idl> #endif +#ifndef __com_sun_star_container_XChild_idl__ +#include <com/sun/star/container/XChild.idl> +#endif + #ifndef __com_sun_star_text_TextField_idl__ #include <com/sun/star/text/TextField.idl> #endif @@ -79,6 +83,13 @@ service MetadataField interface com::sun::star::container::XEnumerationAccess; //------------------------------------------------------------------------- + /** The <type scope="com::sun::star::text">TextContent</type> + that is the parent of this <type>MetadataField</type>. + @since OOo 3.3 + */ + interface com::sun::star::container::XChild; + + //------------------------------------------------------------------------- /** this is the number format for this field. @see com::sun::star::util::NumberFormatter */ diff --git a/offapi/com/sun/star/ui/UIElement.idl b/offapi/com/sun/star/ui/UIElement.idl index 890074fe24b5..580a660f734e 100644 --- a/offapi/com/sun/star/ui/UIElement.idl +++ b/offapi/com/sun/star/ui/UIElement.idl @@ -28,10 +28,6 @@ #ifndef __com_sun_star_ui_UIElement_idl__ #define __com_sun_star_ui_UIElement_idl__ -#ifndef __com_sun_star_frame_XFrame_idl__ -#include <com/sun/star/frame/XFrame.idl> -#endif - #ifndef __com_sun_star_ui_XUIElement_idl__ #include <com/sun/star/ui/XUIElement.idl> #endif @@ -40,10 +36,6 @@ #include <com/sun/star/beans/XPropertySet.idl> #endif -#ifndef __com_sun_star_ui_UIElementType_idl__ -#include <com/sun/star/ui/UIElementType.idl> -#endif - #ifndef __com_sun_star_lang_XInitialization_idl__ #include <com/sun/star/lang/XInitialization.idl> #endif @@ -97,7 +89,7 @@ service UIElement @see com::sun::star::ui::UIElementFactoryManager; @see com::sun::star::ui::UIElementFactory */ - interface ::com::sun::star::lang::XInitialization; + [optional] interface ::com::sun::star::lang::XInitialization; /** used to notify an implementation that it needs to update its visual representation. @@ -106,31 +98,11 @@ service UIElement representation. It is up to the implementation if it ignores notifications. </p> */ - interface com::sun::star::util::XUpdatable; + [optional] interface com::sun::star::util::XUpdatable; /** controls the life-time of the object. */ interface ::com::sun::star::lang::XComponent; - - /** determines the frame to which this element is bound to. - - <p> - The life time of a user interface element does not explicitly depend on the - frame itself but on the visible component attached to the frame. It is possible - to exchange the visible component of a frame and that will lead to the end of - life of all user interface elements. - */ - [readonly, property] com::sun::star::frame::XFrame Frame; - - /** a resource URL which is a unique identifier of a user interface element. - */ - [readonly, property] string ResourceURL; - - /** determines the real type of the user interface element. - - @see UIElementType - */ - [readonly, property] short Type; }; }; }; }; }; diff --git a/offapi/com/sun/star/ui/UIElementType.idl b/offapi/com/sun/star/ui/UIElementType.idl index d9cca7ed8fc5..f87d91ca6243 100644 --- a/offapi/com/sun/star/ui/UIElementType.idl +++ b/offapi/com/sun/star/ui/UIElementType.idl @@ -73,9 +73,14 @@ constants UIElementType const short PROGRESSBAR = 6; //------------------------------------------------------------------------- + /** specifies a tool panel + */ + const short TOOLPANEL = 7; + + //------------------------------------------------------------------------- /** specifies the number of constants. */ - const short COUNT = 7; + const short COUNT = 8; }; }; }; }; }; diff --git a/offapi/com/sun/star/ui/XToolPanel.idl b/offapi/com/sun/star/ui/XToolPanel.idl new file mode 100644 index 000000000000..261f4c20413d --- /dev/null +++ b/offapi/com/sun/star/ui/XToolPanel.idl @@ -0,0 +1,64 @@ +/************************************************************************* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * +************************************************************************/ + +#ifndef __com_sun_star_ui_XToolPanel_idl__ +#define __com_sun_star_ui_XToolPanel_idl__ + +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/accessibility/XAccessible.idl> + +//============================================================================= + +module com { module sun { module star { module ui { + +//============================================================================= + +/** describes the basic interface to be implemented by a tool panel + */ +interface XToolPanel +{ + /** provides access to the tool panel's main window. + + <p>It is allowed for an implementation to return <NULL/> here, but in this case some functionality, for instance + automatic positioning of the tool panel, might not be available, and must be implemented by the tool panel itself.</p> + */ + [attribute, readonly] ::com::sun::star::awt::XWindow Window; + + /** creates the root of the Accessibility object tree for the tool panel + @param ParentAccessible + the parent object in the Accessibility object tree + */ + ::com::sun::star::accessibility::XAccessible + createAccessible( [in] ::com::sun::star::accessibility::XAccessible ParentAccessible ); +}; + +//============================================================================= + +}; }; }; }; + +//============================================================================= + +#endif diff --git a/offapi/com/sun/star/ui/XUIElement.idl b/offapi/com/sun/star/ui/XUIElement.idl index 1ec3dc579cab..26536a85f29f 100644 --- a/offapi/com/sun/star/ui/XUIElement.idl +++ b/offapi/com/sun/star/ui/XUIElement.idl @@ -36,6 +36,10 @@ #include <com/sun/star/beans/XPropertySet.idl> #endif +#ifndef __com_sun_star_frame_XFrame_idl__ +#include <com/sun/star/frame/XFrame.idl> +#endif + //============================================================================= module com { module sun { module star { module ui { @@ -64,7 +68,26 @@ interface XUIElement : com::sun::star::uno::XInterface a special purpose interface which depends on the type of the user interface element. */ - com::sun::star::uno::XInterface getRealInterface(); + ::com::sun::star::uno::XInterface getRealInterface(); + + /** determines the document frame to which this element is bound to. + + <p>The life time of a user interface element does not explicitly depend on the + frame itself but on the visible component attached to the frame. It is possible + to exchange the visible component of a frame and that will lead to the end of + life of all user interface elements.</p> + */ + [readonly, attribute] ::com::sun::star::frame::XFrame Frame; + + /** a resource URL which is a unique identifier of a user interface element. + */ + [readonly, attribute] string ResourceURL; + + /** determines the type of the user interface element. + + @see UIElementType + */ + [readonly, attribute] short Type; }; }; }; }; }; diff --git a/offapi/com/sun/star/ui/XUIElementFactory.idl b/offapi/com/sun/star/ui/XUIElementFactory.idl index b1522c298752..7a86842508ac 100644 --- a/offapi/com/sun/star/ui/XUIElementFactory.idl +++ b/offapi/com/sun/star/ui/XUIElementFactory.idl @@ -97,6 +97,11 @@ interface XUIElementFactory : ::com::sun::star::uno::XInterface configuration manager. This argument is <b>mandatory</b> to have a working configurable user interface element instance. </li> + <li><b>ParentWindow</b><br/> + specifies a parent window to use for the window(s) representing + the UI element. Depending on the concrete UI element type, this parameter + might be required or ignored by an implementation. + </li> <li><b>Persistent</b><br>specifies if changes to a configurable user interface element should be persistent. This is an optional argument. The default value is <TRUE/>.</li> diff --git a/offapi/com/sun/star/ui/makefile.mk b/offapi/com/sun/star/ui/makefile.mk index 944c8ee689c8..313d74dcd9e8 100644 --- a/offapi/com/sun/star/ui/makefile.mk +++ b/offapi/com/sun/star/ui/makefile.mk @@ -84,7 +84,8 @@ IDLFILES=\ XUIElementFactory.idl \ XUIElementFactoryRegistration.idl \ XUIElementSettings.idl \ - XUIFunctionListener.idl + XUIFunctionListener.idl \ + XToolPanel.idl # ------------------------------------------------------------------ diff --git a/pyuno/zipcore/makefile.mk b/pyuno/zipcore/makefile.mk index 9e546e7d4018..06241da2bfdb 100755 --- a/pyuno/zipcore/makefile.mk +++ b/pyuno/zipcore/makefile.mk @@ -55,7 +55,7 @@ PYTHONBINARY=$(DESTROOT)$/bin$/python$(EXECPOST) .ENDIF FINDLIBFILES_TMP:=$(subst,/,$/ \ - $(shell @$(FIND) $(SOLARLIBDIR)$/python -type f| $(GREP) -v .pyc |$(GREP) -v .py\~ |$(GREP) -v .orig )) + $(shell @$(FIND) $(SOLARLIBDIR)$/python -type f| $(GREP) -v "\.pyc" |$(GREP) -v "\.py~" |$(GREP) -v .orig | $(GREP) -v _failed)) FINDLIBFILES=$(subst,$(SOLARLIBDIR)$/python, $(FINDLIBFILES_TMP)) FILES=\ diff --git a/sal/osl/unx/file_volume.cxx b/sal/osl/unx/file_volume.cxx index 543acc5f71c5..cc7f61ec6a8b 100644 --- a/sal/osl/unx/file_volume.cxx +++ b/sal/osl/unx/file_volume.cxx @@ -46,6 +46,12 @@ #undef HAVE_STATFS_H #endif +#if defined(LINUX) && defined(__FreeBSD_kernel__) +#undef LINUX +#define FREEBSD 1 +#endif + + #if defined(SOLARIS) #include <sys/mnttab.h> diff --git a/sal/osl/unx/signal.c b/sal/osl/unx/signal.c index c5141fa02260..5563375d9567 100644 --- a/sal/osl/unx/signal.c +++ b/sal/osl/unx/signal.c @@ -74,10 +74,14 @@ #include "file_path_helper.h" #define ACT_IGNORE 1 -#define ACT_ABORT 2 -#define ACT_EXIT 3 -#define ACT_SYSTEM 4 -#define ACT_HIDE 5 +#define ACT_EXIT 2 +#define ACT_SYSTEM 3 +#define ACT_HIDE 4 +#ifdef SAL_ENABLE_CRASH_REPORT +# define ACT_ABORT 5 +#else +# define ACT_ABORT ACT_SYSTEM +#endif #define MAX_PATH_LEN 2048 @@ -556,7 +560,7 @@ static int ReportCrash( int Signal ) if (Signals[i].Signal == Signal && Signals[i].Action == ACT_ABORT ) { int ret; - char szShellCmd[512]; + char szShellCmd[512] = { '\0' }; char *pXMLTempName = NULL; char *pStackTempName = NULL; char *pChecksumTempName = NULL; @@ -728,68 +732,57 @@ static int ReportCrash( int Signal ) if ( checksumout ) fclose( checksumout ); -#if defined( LINUX ) - if ( pXMLTempName && pChecksumTempName && pStackTempName ) - snprintf( szShellCmd, sizeof(szShellCmd)/sizeof(szShellCmd[0]), - "crash_report -p %d -s %d -xml %s -chksum %s -stack %s%s", - getpid(), - Signal, - pXMLTempName, - pChecksumTempName, - pStackTempName, - bAutoCrashReport ? " -noui -send" : " -noui" ); -#elif defined( MACOSX ) if ( pXMLTempName && pChecksumTempName && pStackTempName ) +#endif /* INCLUDE_BACKTRACE */ { - rtl_uString *crashrep_url = NULL; - rtl_uString *crashrep_path = NULL; - rtl_String *crashrep_path_system = NULL; - - rtl_string2UString( &crashrep_url, RTL_CONSTASCII_USTRINGPARAM("$BRAND_BASE_DIR/program/crash_report.bin"), OSTRING_TO_OUSTRING_CVTFLAGS ); - rtl_bootstrap_expandMacros( &crashrep_url ); - osl_getSystemPathFromFileURL( crashrep_url, &crashrep_path ); + rtl_uString * crashrep_url = NULL; + rtl_uString * crashrep_path = NULL; + rtl_String * crashrep_path_system = NULL; + rtl_string2UString( + &crashrep_url, + RTL_CONSTASCII_USTRINGPARAM( + "$BRAND_BASE_DIR/program/crashrep"), + OSTRING_TO_OUSTRING_CVTFLAGS); + rtl_bootstrap_expandMacros(&crashrep_url); + osl_getSystemPathFromFileURL(crashrep_url, &crashrep_path); rtl_uString2String( &crashrep_path_system, - rtl_uString_getStr( crashrep_path ), - rtl_uString_getLength( crashrep_path ), + rtl_uString_getStr(crashrep_path), + rtl_uString_getLength(crashrep_path), osl_getThreadTextEncoding(), - RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR ); - - rtl_uString_release( crashrep_url ); - rtl_uString_release( crashrep_path ); - + (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR + | RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR)); + rtl_uString_release(crashrep_url); + rtl_uString_release(crashrep_path); +#if defined INCLUDE_BACKTRACE && (defined LINUX || defined MACOSX) snprintf( szShellCmd, sizeof(szShellCmd)/sizeof(szShellCmd[0]), - "%s -p %d -s %d -xml %s -chksum %s -stack %s%s", - rtl_string_getStr( crashrep_path_system ), + "%s -p %d -s %d -xml %s -chksum %s -stack %s -noui%s", + rtl_string_getStr(crashrep_path_system), getpid(), Signal, pXMLTempName, pChecksumTempName, pStackTempName, - bAutoCrashReport ? " -noui -send" : " -noui" ); - - rtl_string_release( crashrep_path_system ); - - printf( "%s\n", szShellCmd ); - } -#elif defined ( SOLARIS ) - if ( pXMLTempName && pChecksumTempName ) + bAutoCrashReport ? " -send" : "" ); +#elif defined INCLUDE_BACKTRACE && defined SOLARIS snprintf( szShellCmd, sizeof(szShellCmd)/sizeof(szShellCmd[0]), - "crash_report -p %d -s %d -xml %s -chksum %s%s", + "%s -p %d -s %d -xml %s -chksum %s -noui%s", + rtl_string_getStr(crashrep_path_system), getpid(), Signal, pXMLTempName, pChecksumTempName, - bAutoCrashReport ? " -noui -send" : " -noui" ); + bAutoCrashReport ? " -send" : "" ); +#else + snprintf( szShellCmd, sizeof(szShellCmd)/sizeof(szShellCmd[0]), + "%s -p %d -s %d -noui%s", + rtl_string_getStr(crashrep_path_system), + getpid(), Signal, bAutoCrashReport ? " -send" : "" ); #endif + rtl_string_release(crashrep_path_system); + } -#else /* defined INCLUDE BACKTRACE */ - snprintf( szShellCmd, sizeof(szShellCmd)/sizeof(szShellCmd[0]), - "crash_report -p %d -s %d%s", getpid(), Signal, bAutoCrashReport ? " -noui -send" : " -noui" ); -#endif /* defined INCLUDE BACKTRACE */ - - - ret = system( szShellCmd ); + ret = szShellCmd[0] == '\0' ? -1 : system( szShellCmd ); if ( pXMLTempName ) unlink( pXMLTempName ); diff --git a/sal/osl/unx/system.h b/sal/osl/unx/system.h index 8cb77c9b7fc8..1cb0979490c0 100644 --- a/sal/osl/unx/system.h +++ b/sal/osl/unx/system.h @@ -123,6 +123,11 @@ # define NO_PTHREAD_PRIORITY # define PTHREAD_SIGACTION pthread_sigaction #endif + +# ifndef ETIME +# define ETIME ETIMEDOUT +# endif + #endif #ifdef NETBSD diff --git a/sal/osl/unx/util.c b/sal/osl/unx/util.c index f969bfe566ec..5ba04db56021 100644 --- a/sal/osl/unx/util.c +++ b/sal/osl/unx/util.c @@ -162,7 +162,7 @@ static int osl_getHWAddr(const char *ifname, char* hard_addr) * And now, the real thing: the get address */ -#ifdef LINUX +#ifdef SIOCGIFHWADDR ret=ioctl(so, SIOCGIFHWADDR, &ifr); #else ret=ioctl(so, SIOCGIFADDR, &ifr); @@ -177,7 +177,7 @@ static int osl_getHWAddr(const char *ifname, char* hard_addr) close(so); -#ifdef LINUX +#ifdef SIOCGIFHWADDR memcpy(hard_addr,ifr.ifr_hwaddr.sa_data,8); #else memcpy(hard_addr,ifr.ifr_ifru.ifru_addr.sa_data,8); diff --git a/sal/prj/build.lst b/sal/prj/build.lst index c96c3977f725..638252ad4ee8 100644 --- a/sal/prj/build.lst +++ b/sal/prj/build.lst @@ -18,5 +18,4 @@ sa sal\cppunittester nmake - all sa_cppunittester sa_cpprt.u sa_util NULL sa sal\qa\ByteSequence nmake - all sa_qa_ByteSequence sa_cppunittester sa_util NULL sa sal\qa\OStringBuffer nmake - all sa_qa_OStringBuffer sa_cppunittester sa_util NULL sa sal\qa\osl\mutex nmake - all sa_qa_osl_mutex sa_cppunittester sa_util NULL -sa sal\qa\osl\pipe nmake - all sa_qa_osl_pipe sa_cppunittester sa_util NULL sa sal\qa\osl\profile nmake - all sa_qa_osl_profile sa_cppunittester sa_util NULL diff --git a/sal/qa/ByteSequence/ByteSequence.cxx b/sal/qa/ByteSequence/ByteSequence.cxx index 3a408edb3ef0..7c9ff2eaef94 100644 --- a/sal/qa/ByteSequence/ByteSequence.cxx +++ b/sal/qa/ByteSequence/ByteSequence.cxx @@ -1,605 +1,194 @@ /************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ +* +* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +* +* Copyright 2000, 2010 Oracle and/or its affiliates. +* +* OpenOffice.org - a multi-platform office productivity suite +* +* This file is part of OpenOffice.org. +* +* OpenOffice.org is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License version 3 +* only, as published by the Free Software Foundation. +* +* OpenOffice.org is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License version 3 for more details +* (a copy is included in the LICENSE file that accompanied this code). +* +* You should have received a copy of the GNU Lesser General Public License +* version 3 along with OpenOffice.org. If not, see +* <http://www.openoffice.org/license.html> +* for a copy of the LGPLv3 License. +* +************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_sal.hxx" -#include <Byte_Const.h> -#include <rtl/byteseq.h> - -#include <rtl/byteseq.hxx> +#include "sal/config.h" #include "cppunit/TestAssert.h" #include "cppunit/TestFixture.h" #include "cppunit/extensions/HelperMacros.h" #include "cppunit/plugin/TestPlugIn.h" +#include "rtl/byteseq.hxx" +#include "sal/types.h" -using namespace rtl; - -namespace rtl_ByteSequence -{ - -//------------------------------------------------------------------------ -// testing constructors -//------------------------------------------------------------------------ - -class ctor : public CppUnit::TestFixture - { - public: - - void ctor_001() - { - ::rtl::ByteSequence aByteSeq1; - ::rtl::ByteSequence aByteSeq2( &kTestEmptyByteSeq ); - CPPUNIT_ASSERT_MESSAGE - ( - "Creates an empty sequence", - aByteSeq1.getLength() == 0 && - aByteSeq1 == aByteSeq2 - ); - } - - void ctor_002() - { - ::rtl::ByteSequence aByteSeq; - ::rtl::ByteSequence aByteSeqtmp( aByteSeq ); - CPPUNIT_ASSERT_MESSAGE - ( - "Creates a copy of given sequence", - aByteSeq == aByteSeqtmp - ); - - } - - void ctor_003() - { - ::rtl::ByteSequence aByteSeq( &kTestByteSeq1 ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Copy constructor Creates a copy from the C-Handle ", - nNewLen == kTestSeqLen1 - ); - } - - void ctor_003_1() - { - ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Copy constructor Creates a copy from the C-Handle: reference count > 1 ", - nNewLen == kTestSeqLen2 - ); - } - - void ctor_004() - { - sal_Int8 * pElements = &kTestByte4; - sal_Int32 len = kTestByteCount1; - ::rtl::ByteSequence aByteSeq( pElements, len); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Creates a copy of given data bytes", - aByteSeq[1] == pElements[1] && - len == nNewLen - - ); - } - - void ctor_005() - { - sal_Int32 len = 50; - ::rtl::ByteSequence aByteSeq( len ); - sal_Int32 nNewLen = aByteSeq.getLength(); - sal_Bool res = sal_True; - for (sal_Int32 i=0; i<len; i++) - { - if (aByteSeq[i] != 0) - res = sal_False; - } - CPPUNIT_ASSERT_MESSAGE - ( - "Creates sequence of given length and initializes all bytes to 0", - nNewLen == len && res - - ); - } - - void ctor_006() - { - sal_Int32 len = 39; - ::rtl::ByteSequence aByteSeq( len , BYTESEQ_NODEFAULT ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Creates sequence of given length and does NOT initialize data", - nNewLen == len - - ); - } - - void ctor_007() - { - ::rtl::ByteSequence aByteSeq( &kTestByteSeq3, BYTESEQ_NOACQUIRE ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Creates a sequence from a C-Handle without acquiring the handle, thus taking over ownership", - nNewLen == kTestSeqLen3 - ); - } - - CPPUNIT_TEST_SUITE(ctor); - CPPUNIT_TEST(ctor_001); - CPPUNIT_TEST(ctor_002); - CPPUNIT_TEST(ctor_003); - CPPUNIT_TEST(ctor_003_1); - CPPUNIT_TEST(ctor_004); - CPPUNIT_TEST(ctor_005); - CPPUNIT_TEST(ctor_006); - CPPUNIT_TEST(ctor_007); - CPPUNIT_TEST_SUITE_END(); - }; - -class assign : public CppUnit::TestFixture -{ -public: - // initialise your test code values here. - void setUp() - { - } - - void tearDown() - { - } - - // insert your test code here. - void assign_001() - { - sal_Int32 len = kTestByteCount1; - sal_Int32 len2 = len - 1; - sal_Int8 * pElements = &kTestByte; - ::rtl::ByteSequence aByteSeq1( kTestByte5, len); - ::rtl::ByteSequence aByteSeq2( pElements, len2); - aByteSeq2 = aByteSeq1; - sal_Int32 nNewLen = aByteSeq2.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Assignment operator: assign longer sequence to another", - aByteSeq1 == aByteSeq2 && - nNewLen == len - ); - } - - void assign_002() - { - sal_Int32 len = kTestByteCount1 - 1 ; - ::rtl::ByteSequence aByteSeq1( len ); - sal_Int8 * pElements = &kTestByte1; - ::rtl::ByteSequence aByteSeq2( pElements, len + 1); - aByteSeq2 = aByteSeq1; - sal_Int32 nNewLen = aByteSeq2.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Assignment operator: assign shorter sequence to another", - aByteSeq1 == aByteSeq2 && - nNewLen == len - ); - } - - void assign_003() - { - sal_Int32 len = kTestByteCount1 - 1 ; - const sal_Int8 * pElements = &kTestByte2; - ::rtl::ByteSequence aByteSeq1( pElements, len + 1 ); - ::rtl::ByteSequence aByteSeq2( len, BYTESEQ_NODEFAULT ); - aByteSeq2 = aByteSeq1; - sal_Int32 nNewLen = aByteSeq2.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Assignment operator: assign sequence to another sequence having no data initialized", - aByteSeq1 == aByteSeq2 && - nNewLen == kTestByteCount1 - ); - } - - void assign_004() - { - ::rtl::ByteSequence aByteSeq1; - sal_Int32 len = kTestByteCount1 ; - const sal_Int8 * pElements = &kTestByte; - ::rtl::ByteSequence aByteSeq2( pElements, len); - aByteSeq2 = aByteSeq1; - sal_Int32 nNewLen = aByteSeq2.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Assignment operator: assign empty sequence to another not empty sequence", - aByteSeq1 == aByteSeq2 && - nNewLen == 0 - ); - } - - CPPUNIT_TEST_SUITE(assign); - CPPUNIT_TEST(assign_001); - CPPUNIT_TEST(assign_002); - CPPUNIT_TEST(assign_003); - CPPUNIT_TEST(assign_004); - CPPUNIT_TEST_SUITE_END(); -}; // class operator= - - -class equal : public CppUnit::TestFixture -{ -public: - // initialise your test code values here. - void setUp() - { - } - - void tearDown() - { - } - - // insert your test code here. - void equal_001() - { - sal_Int32 len = kTestByteCount1 ; - sal_Int8 * pElements = &kTestByte; - ::rtl::ByteSequence aByteSeq1( pElements, len-1); - ::rtl::ByteSequence aByteSeq2( pElements, len); - sal_Bool res = aByteSeq1 == aByteSeq2; - CPPUNIT_ASSERT_MESSAGE - ( - "Equality operator: compare two sequences 1", - !res - ); - } - - void equal_002() - { - sal_Int32 len = kTestByteCount1 ; - const sal_Int8 * pElements = &kTestByte; - ::rtl::ByteSequence aByteSeq1( pElements, len); - ::rtl::ByteSequence aByteSeq2( pElements, len); - sal_Bool res = aByteSeq1 == aByteSeq2; - CPPUNIT_ASSERT_MESSAGE - ( - "Equality operator: compare two sequences 2", - res - ); - } - - void equal_003() - { - sal_Int32 len = kTestByteCount1 ; - const sal_Int8 * pElements = kTestByte5; - ::rtl::ByteSequence aByteSeq1( pElements, len); - pElements = kTestByte6; - ::rtl::ByteSequence aByteSeq2( pElements, len); - sal_Bool res = aByteSeq1 == aByteSeq2; - CPPUNIT_ASSERT_MESSAGE - ( - "Equality operator: compare two sequences 2", - !res - ); - } - CPPUNIT_TEST_SUITE(equal); - CPPUNIT_TEST(equal_001); - CPPUNIT_TEST(equal_002); - CPPUNIT_TEST(equal_003); - CPPUNIT_TEST_SUITE_END(); -}; // class equal +namespace { - -class notequal : public CppUnit::TestFixture -{ +class Test: public CppUnit::TestFixture { public: - // initialise your test code values here. - void setUp() - { + void test_default() { + rtl::ByteSequence s; + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); } - void tearDown() - { + void test_size0() { + rtl::ByteSequence s(sal_Int32(0)); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); } - // insert your test code here. - void notequal_001() - { - sal_Int32 len = kTestByteCount1 ; - const sal_Int8 * pElements = &kTestByte; - ::rtl::ByteSequence aByteSeq1( pElements, len-1); - ::rtl::ByteSequence aByteSeq2( pElements, len); - sal_Bool res = aByteSeq1 != aByteSeq2; - CPPUNIT_ASSERT_MESSAGE - ( - "Equality operator: compare two sequences 1", - res - ); + void test_size5() { + rtl::ByteSequence s(5); + sal_Int8 const * p = s.getConstArray(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[0]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[1]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[2]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[3]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[4]); } - void notequal_002() - { - sal_Int32 len = kTestByteCount1 ; - const sal_Int8 * pElements = &kTestByte; - ::rtl::ByteSequence aByteSeq1( pElements, len); - ::rtl::ByteSequence aByteSeq2( pElements, len); - sal_Bool res = aByteSeq1 != aByteSeq2; - CPPUNIT_ASSERT_MESSAGE - ( - "Equality operator: compare two sequences 2", - !res - ); - } - - CPPUNIT_TEST_SUITE(notequal); - CPPUNIT_TEST(notequal_001); - CPPUNIT_TEST(notequal_002); - CPPUNIT_TEST_SUITE_END(); -}; // class notequal - - -class getArray : public CppUnit::TestFixture -{ -public: - // initialise your test code values here. - void setUp() - { - } - - void tearDown() - { - } - - // insert your test code here. - void getArray_001() - { - sal_Int32 len = kTestByteCount1 ; - sal_Int8 * pElements = &kTestByte; - ::rtl::ByteSequence aByteSeq1( pElements, len); - sal_Int8 * pArray = aByteSeq1.getArray(); - sal_Bool res = sal_True; - for (sal_Int32 i = 0; i < len; i++) - { - if (pElements[i] != pArray[i]) - res = sal_False; - } - CPPUNIT_ASSERT_MESSAGE - ( - "Gets the pointer to byte array: one element sequence", - res == sal_True - ); - } - - void getArray_002() - { - sal_Int8 * pElements = kTestByte6; - ::rtl::ByteSequence aByteSeq(pElements, 5); - sal_Int8 * pArray = aByteSeq.getArray(); - sal_Bool res = sal_True; - for (sal_Int32 i = 0; i < 5; i++) - { - if (pElements[i] != pArray[i]) - res = sal_False; - } - CPPUNIT_ASSERT_MESSAGE - ( - "Gets the pointer to byte array: more elements sequence", - res == sal_True - ); - } - - CPPUNIT_TEST_SUITE(getArray); - CPPUNIT_TEST(getArray_001); - CPPUNIT_TEST(getArray_002); - CPPUNIT_TEST_SUITE_END(); -}; // class getArray - - -class realloc : public CppUnit::TestFixture -{ -public: - // initialise your test code values here. - void setUp() - { + void test_noinit0() { + rtl::ByteSequence s(0, rtl::BYTESEQ_NODEFAULT); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); } - void tearDown() - { + void test_noinit5() { + rtl::ByteSequence s(5, rtl::BYTESEQ_NODEFAULT); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength()); } - // insert your test code here. - void realloc_001() - { - ::rtl::ByteSequence aByteSeq; - sal_Int32 nSize = 20; - aByteSeq.realloc( nSize ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Reallocates sequence to new length: empty sequence", - nNewLen == nSize - ); + void test_elem0() { + rtl::ByteSequence s(0, 0); + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), s.getLength()); } - void realloc_002() - { - //reference count > 1 - ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 ); //34 - sal_Int32 nSize = 20; - aByteSeq.realloc( nSize ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Reallocates sequence: reference count > 1 && nSize < nElements", - nNewLen == nSize - ); + void test_elem5() { + sal_Int8 const a[5] = { 0, 1, 2, 3, 4 }; + rtl::ByteSequence s(a, 5); + sal_Int8 const * p = s.getConstArray(); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s.getLength()); + CPPUNIT_ASSERT_EQUAL(sal_Int8(0), p[0]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(1), p[1]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(2), p[2]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(3), p[3]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(4), p[4]); } - void realloc_003() - { - //reference count > 1 - ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 ); //34 - sal_Int32 nSize = kTestSeqLen2 + 5; - sal_Int32 nElements = kTestSeqLen2; - aByteSeq.realloc( nSize ); - sal_Int32 nNewLen = aByteSeq.getLength(); - sal_Bool res = sal_True; - for (int i = nSize; i < nElements; i++) - { - sal_Int8 nValue = aByteSeq[i]; - if (nValue != 0) - res = sal_False; + void test_copy() { + rtl::ByteSequence s1(5); + { + rtl::ByteSequence s2(s1); + CPPUNIT_ASSERT_EQUAL(sal_Int32(5), s2.getLength()); + CPPUNIT_ASSERT_EQUAL(s1.getConstArray(), s2.getConstArray()); + CPPUNIT_ASSERT_EQUAL(s1.getHandle(), s2.getHandle()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), s1.getHandle()->nRefCount); } - CPPUNIT_ASSERT_MESSAGE - ( - "Reallocates sequence: reference count > 1 && nSize > nElements", - nNewLen == nSize - && res == sal_True - ); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s1.getHandle()->nRefCount); } - void realloc_004() - { - sal_Int8 * pElements = &kTestByte3; - sal_Int32 len = kTestByteCount3; - ::rtl::ByteSequence aByteSeq( pElements, len); - sal_Int32 nSize = kTestByteCount3 - 10 ; - aByteSeq.realloc( nSize ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Reallocates sequence: nSize < nElements", - nNewLen == nSize - ); - } - - void realloc_005() - { - sal_Int8 * pElements = kTestByte6; - sal_Int32 len = 4; - ::rtl::ByteSequence aByteSeq( pElements, len); - sal_Int32 nSize = len + 10 ; - aByteSeq.realloc( nSize ); - sal_Int32 nNewLen = aByteSeq.getLength(); - CPPUNIT_ASSERT_MESSAGE - ( - "Reallocates sequence: nSize > nElements", - nNewLen == nSize - ); + void test_fromC() { + sal_Sequence c = { 1, 1, { 0 } }; + { + rtl::ByteSequence s(&c); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s.getLength()); + CPPUNIT_ASSERT_EQUAL( + static_cast< void const * >(c.elements), + static_cast< void const * >(s.getConstArray())); + CPPUNIT_ASSERT_EQUAL(&c, s.getHandle()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), c.nRefCount); + } + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), c.nRefCount); } - CPPUNIT_TEST_SUITE(realloc); - CPPUNIT_TEST(realloc_001); - CPPUNIT_TEST(realloc_002); - CPPUNIT_TEST(realloc_003); - CPPUNIT_TEST(realloc_004); - CPPUNIT_TEST(realloc_005); - //CPPUNIT_TEST(realloc_006); + void test_noacquire() { + sal_Sequence c = { 2, 1, { 0 } }; + { + rtl::ByteSequence s(&c, rtl::BYTESEQ_NOACQUIRE); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s.getLength()); + CPPUNIT_ASSERT_EQUAL( + static_cast< void const * >(c.elements), + static_cast< void const * >(s.getConstArray())); + CPPUNIT_ASSERT_EQUAL(&c, s.getHandle()); + CPPUNIT_ASSERT_EQUAL(sal_Int32(2), c.nRefCount); + } + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), c.nRefCount); + } + + void test_getArray() { + sal_Int8 const a[5] = { 0, 1, 2, 3, 4 }; + rtl::ByteSequence s1(a, 5); + rtl::ByteSequence s2(s1); + sal_Int8 * p = s2.getArray(); + p[2] = 10; + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s1.getHandle()->nRefCount); + CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s2.getHandle()->nRefCount); + CPPUNIT_ASSERT_EQUAL(sal_Int8(2), s1.getConstArray()[2]); + CPPUNIT_ASSERT_EQUAL(sal_Int8(10), s2.getConstArray()[2]); + } + + void test_same0() { + rtl::ByteSequence s1; + rtl::ByteSequence s2; + CPPUNIT_ASSERT_EQUAL(sal_True, s1 == s2); + CPPUNIT_ASSERT_EQUAL(sal_True, s2 == s1); + CPPUNIT_ASSERT_EQUAL(sal_False, s1 != s2); + CPPUNIT_ASSERT_EQUAL(sal_False, s2 != s1); + } + + void test_diffLen() { + sal_Int8 const a[5] = { 0, 1, 2, 3, 4 }; + rtl::ByteSequence s1(a, 5); + rtl::ByteSequence s2(a, 4); + CPPUNIT_ASSERT_EQUAL(sal_False, s1 == s2); + CPPUNIT_ASSERT_EQUAL(sal_False, s2 == s1); + CPPUNIT_ASSERT_EQUAL(sal_True, s1 != s2); + CPPUNIT_ASSERT_EQUAL(sal_True, s2 != s1); + } + + void test_diffElem() { + sal_Int8 const a1[5] = { 0, 1, 2, 3, 4 }; + rtl::ByteSequence s1(a1, 5); + sal_Int8 const a2[5] = { 0, 1, 10, 3, 4 }; + rtl::ByteSequence s2(a2, 5); + CPPUNIT_ASSERT_EQUAL(sal_False, s1 == s2); + CPPUNIT_ASSERT_EQUAL(sal_False, s2 == s1); + CPPUNIT_ASSERT_EQUAL(sal_True, s1 != s2); + CPPUNIT_ASSERT_EQUAL(sal_True, s2 != s1); + } + + CPPUNIT_TEST_SUITE(Test); + CPPUNIT_TEST(test_default); + CPPUNIT_TEST(test_size0); + CPPUNIT_TEST(test_size5); + CPPUNIT_TEST(test_noinit0); + CPPUNIT_TEST(test_noinit5); + CPPUNIT_TEST(test_elem0); + CPPUNIT_TEST(test_elem5); + CPPUNIT_TEST(test_copy); + CPPUNIT_TEST(test_fromC); + CPPUNIT_TEST(test_noacquire); + CPPUNIT_TEST(test_getArray); + CPPUNIT_TEST(test_same0); + CPPUNIT_TEST(test_diffLen); + CPPUNIT_TEST(test_diffElem); CPPUNIT_TEST_SUITE_END(); -}; // class realloc - - -class getData : public CppUnit::TestFixture -{ -public: - // initialise your test code values here. - void setUp() - { - } +}; - void tearDown() - { - } - - // insert your test code here. - void getData_001() - { - sal_Int8 * pElements = kTestByte5; - ::rtl::ByteSequence aByteSeq(pElements, 4); - sal_Bool res = sal_True; - if (aByteSeq[0] != kTestByte) - res = sal_False; - - if (aByteSeq[1] != kTestByte1) - res = sal_False; - - if (aByteSeq[2] != kTestByte2) - res = sal_False; - - if (aByteSeq[3] != kTestByte3) - res = sal_False; - - CPPUNIT_ASSERT_MESSAGE - ( - "Obtains a reference to byte indexed at given position: empty sequence", - res == sal_True - ); - } - - void getData_002() - { - ::rtl::ByteSequence aByteSeq( &kTestByteSeq2 ); - sal_Int8 nValue = aByteSeq[0]; - CPPUNIT_ASSERT_MESSAGE - ( - "Obtains a reference to byte indexed at given position: reference count > 1", - nValue == kTestChar2 //not sure what is right,hehe - ); - } - - void getData_003() - { - ::rtl::ByteSequence aByteSeq( &kTestByteSeq3 ); - sal_Int8 nValue = aByteSeq[0]; - CPPUNIT_ASSERT_MESSAGE - ( - "Obtains a reference to byte indexed at given position: reference count = 1", - nValue == kTestChar3 //not sure what is right,hehe - ); - } - - CPPUNIT_TEST_SUITE(getData); - CPPUNIT_TEST(getData_001); - CPPUNIT_TEST(getData_002); - CPPUNIT_TEST(getData_003); - CPPUNIT_TEST_SUITE_END(); -}; // class getData +CPPUNIT_TEST_SUITE_REGISTRATION(Test); -// ----------------------------------------------------------------------------- -CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::ctor); -CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::assign); -CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::equal); -CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::notequal); -CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::getArray); -CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::realloc); -CPPUNIT_TEST_SUITE_REGISTRATION(rtl_ByteSequence::getData); -} // namespace ByteSequence +} CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sal/qa/ByteSequence/Byte_Const.h b/sal/qa/ByteSequence/Byte_Const.h deleted file mode 100644 index 2d167b7d673c..000000000000 --- a/sal/qa/ByteSequence/Byte_Const.h +++ /dev/null @@ -1,95 +0,0 @@ -#ifndef _BYTE_CONST_H_ -#define _BYTE_CONST_H_ - -//------------------------------------------------------------------------ -//------------------------------------------------------------------------ -#include <sal/types.h> - -//------------------------------------------------------------------------ -//------------------------------------------------------------------------ - -#ifdef __cplusplus -extern "C" -{ -#endif - -//------------------------------------------------------------------------ -//------------------------------------------------------------------------ -const sal_Int32 kTestByteCount1 = 7; -const sal_Int32 kTestByteCount2 = 0; -const sal_Int32 kTestByteCount3 = 45; -const sal_Int32 kTestByteCount4 = 100; -const sal_Int32 kTestByteCount5 = 23; -const sal_Int32 kTestByteCount6 = 90; - - -sal_Int8 kTestByte = 100; -sal_Int8 kTestByte1 = 0; -sal_Int8 kTestByte2 = 1; -sal_Int8 kTestByte3 = 2; -sal_Int8 kTestByte4 = -98; - -sal_Int8 kTestByte5[] = {kTestByte, kTestByte1, kTestByte2, kTestByte3, kTestByte4}; - -sal_Int8 kTestByte60 = 56; -sal_Int8 kTestByte61 = -1; -sal_Int8 kTestByte62 = -23; -sal_Int8 kTestByte63 = 21; -sal_Int8 kTestByte64 = -128; -sal_Int8 kTestByte65 = 127; -sal_Int8 kTestByte6[] = {kTestByte60, kTestByte61, kTestByte62, kTestByte63, kTestByte64, kTestByte65}; - -//------------------------------------------------------------------------ - -char kTestChar = 45; -char kTestChar0 = 0; - char kTestChar1 = (char)((500 & 0xff) - 256); -char kTestChar2 = 78; - char kTestChar3 = (char)(-155 & 0xff); - -sal_Int32 kTestSeqLen0 = 0; -sal_Int32 kTestSeqLen1 = 5; -sal_Int32 kTestSeqLen2 = 34; -sal_Int32 kTestSeqLen3 = 270; - -sal_Sequence kTestEmptyByteSeq = -{ - 1, /* sal_Int32 refCount; */ - kTestSeqLen0, /* sal_Int32 length; */ - { kTestChar0 } /* sal_Unicode buffer[1]; */ -}; - -sal_Sequence kTestByteSeq1 = -{ - 1, /* sal_Int32 refCount; */ - kTestSeqLen1, /* sal_Int32 length; */ - { kTestChar1 } /* sal_Unicode buffer[1]; */ -}; - -sal_Sequence kTestByteSeq2 = -{ - 3, /* sal_Int32 refCount; */ - kTestSeqLen2, /* sal_Int32 length; */ - { kTestChar2 } /* sal_Unicode buffer[1]; */ -}; - -sal_Sequence kTestByteSeq3 = -{ - 2, /* sal_Int32 refCount; */ - kTestSeqLen3, /* sal_Int32 length; */ - { kTestChar3 } /* sal_Unicode buffer[1]; */ -}; - -//------------------------------------------------------------------------ -//------------------------------------------------------------------------ - -#ifdef __cplusplus -} -#endif - -//------------------------------------------------------------------------ -//------------------------------------------------------------------------ - -#endif /* _BYTE_CONST_H_ */ - - diff --git a/sal/qa/ByteSequence/makefile.mk b/sal/qa/ByteSequence/makefile.mk index 972444ca8b57..9f7bfcfd25ce 100644 --- a/sal/qa/ByteSequence/makefile.mk +++ b/sal/qa/ByteSequence/makefile.mk @@ -1,7 +1,7 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# +# # Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite @@ -23,65 +23,33 @@ # <http://www.openoffice.org/license.html> # for a copy of the LGPLv3 License. # -#************************************************************************* +#***********************************************************************/ .IF "$(OOO_SUBSEQUENT_TESTS)" == "" nothing .PHONY: .ELSE -PRJ=..$/.. - -PRJNAME=sal -TARGET=qa_bytesequence -# this is removed at the moment because we need some enhancements -# TESTDIR=TRUE - -ENABLE_EXCEPTIONS=TRUE +PRJ = ../.. +PRJNAME = sal +TARGET = qa_ByteSequence -# --- Settings ----------------------------------------------------- +ENABLE_EXCEPTIONS = TRUE -.INCLUDE : settings.mk - -CFLAGS+= $(LFS_CFLAGS) -CXXFLAGS+= $(LFS_CFLAGS) +.INCLUDE: settings.mk CFLAGSCXX += $(CPPUNIT_CFLAGS) -#----------------------------------- OStringBuffer ----------------------------------- - -SHL1OBJS= \ - $(SLO)$/ByteSequence.obj - -SHL1TARGET= rtl_ByteSequence -SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) - -SHL1IMPLIB= i$(SHL1TARGET) -# SHL1DEF= $(MISC)$/$(SHL1TARGET).def - -DEF1NAME =$(SHL1TARGET) -SHL1VERSIONMAP = $(PRJ)$/qa$/export.map +SHL1IMPLIB = i$(SHL1TARGET) +SHL1OBJS = $(SLO)/ByteSequence.obj SHL1RPATH = NONE +SHL1STDLIBS = $(CPPUNITLIB) $(SALLIB) +SHL1TARGET = rtl_ByteSequence +SHL1VERSIONMAP = $(PRJ)/qa/export.map +DEF1NAME = $(SHL1TARGET) -# --- BEGIN -------------------------------------------------------- -SHL2OBJS= \ - $(SLO)$/rtl_old_testbyteseq.obj -SHL2TARGET= rtl_old_testbyteseq -SHL2STDLIBS= $(SALLIB) $(CPPUNITLIB) - -SHL2IMPLIB= i$(SHL2TARGET) - -DEF2NAME =$(SHL2TARGET) -SHL2VERSIONMAP = $(PRJ)$/qa$/export.map -SHL2RPATH = NONE -# END -------------------------------------------------------------- - -#------------------------------- All object files ------------------------------- -# do this here, so we get right dependencies -SLOFILES=$(SHL1OBJS) - -# --- Targets ------------------------------------------------------ +SLOFILES = $(SHL1OBJS) -.INCLUDE : target.mk -.INCLUDE : _cppunit.mk +.INCLUDE: target.mk +.INCLUDE: _cppunit.mk .END diff --git a/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx b/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx deleted file mode 100644 index 61c312162c78..000000000000 --- a/sal/qa/ByteSequence/rtl_old_testbyteseq.cxx +++ /dev/null @@ -1,134 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sal.hxx" -// LLA: -// this file is converted to use with testshl2 -// original was placed in sal/test/textenc.cxx -// ----------------------------------------------------------------------------- - -#include <stdio.h> - -#include <osl/diagnose.h> -#include <rtl/byteseq.hxx> - -using namespace ::rtl; - -#include "cppunit/TestAssert.h" -#include "cppunit/TestFixture.h" -#include "cppunit/extensions/HelperMacros.h" -#include "cppunit/plugin/TestPlugIn.h" - -namespace rtl_testbyteseq -{ - -// ----------------------------------------------------------------------------- - -class oldbyteseq : public CppUnit::TestFixture -{ -public: - void test_bytesequence_001(); - - CPPUNIT_TEST_SUITE( oldbyteseq ); - CPPUNIT_TEST( test_bytesequence_001 ); - CPPUNIT_TEST_SUITE_END( ); -}; - -// ----------------------------------------------------------------------------- - -void oldbyteseq::test_bytesequence_001() -{ - signed char a[5] = { 1 , 2 , 3 , 4 , 5 }; - - // test the c++ wrapper - { - ByteSequence seq; - OSL_ENSURE( ! seq.getLength() , "" ); - - ByteSequence seq2( a , 5 ); - - OSL_ENSURE( !( seq == seq2) , "" ); - - seq = seq2; - OSL_ENSURE( seq == seq2 , "" ); - - seq[0] = 2; - OSL_ENSURE( !(seq == seq2) , "" ); - - seq = ByteSequence( a , 5 ); - OSL_ENSURE( seq == seq2 , "" ); - - seq = ByteSequence( 5 ); // default value is 0 for each byte - OSL_ENSURE( !( seq == seq2 ) , "" ); - } - - { - sal_Sequence *pSeq = 0; - rtl_byte_sequence_construct( &pSeq , 0 ); - - // implementation dependent test. - OSL_ENSURE( pSeq->nRefCount == 2 , "invalid refcount for empty sequence" ); - - sal_Sequence *pSeq2 = 0; - rtl_byte_sequence_constructFromArray( &pSeq2 , a , 5 ); - - OSL_ENSURE( ! rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" ); - - rtl_byte_sequence_assign( &pSeq , pSeq2 ); - OSL_ENSURE( pSeq == pSeq2 , "" ); - OSL_ENSURE( rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" ); - - rtl_byte_sequence_reference2One( &pSeq ); - (( sal_Int8*) rtl_byte_sequence_getConstArray( pSeq ) )[0] = 2; - - OSL_ENSURE( ! rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" ); - - rtl_byte_sequence_constructFromArray( &pSeq , a , 5 ); - OSL_ENSURE( rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" ); - - rtl_byte_sequence_construct( &pSeq , 5 ); - OSL_ENSURE( ! rtl_byte_sequence_equals( pSeq , pSeq2 ) , "" ); - - - - rtl_byte_sequence_release( pSeq2 ); - rtl_byte_sequence_release( pSeq ); - } - - - printf( "test bytesequence OK\n" ); - -} - -} // namespace osl_test_file - -// ----------------------------------------------------------------------------- -CPPUNIT_TEST_SUITE_REGISTRATION( rtl_testbyteseq::oldbyteseq ); - -// ----------------------------------------------------------------------------- -CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sal/qa/osl/mutex/osl_Mutex.cxx b/sal/qa/osl/mutex/osl_Mutex.cxx index df0d2fe8ef6b..4b1b078785d3 100755 --- a/sal/qa/osl/mutex/osl_Mutex.cxx +++ b/sal/qa/osl/mutex/osl_Mutex.cxx @@ -838,7 +838,7 @@ protected: void SAL_CALL run( ) { // acquire the mutex - printf("# ResettableGuard" ); + printf("# ResettableGuard\n" ); ResettableMutexGuard aGuard( pMyMutex ); // release the mutex aGuard.clear( ); @@ -894,13 +894,13 @@ namespace osl_ResettableGuard { Mutex aMutex; ResetGuardThread myThread( &aMutex ); - myThread.create( ); ResettableMutexGuard myMutexGuard( aMutex ); + myThread.create( ); /// is it running? and clear done? + sal_Bool bRes = myThread.isRunning( ); myMutexGuard.clear( ); ThreadHelper::thread_sleep_tenth_sec( 1 ); - sal_Bool bRes = myThread.isRunning( ); /// if reset is not success, the release will return sal_False myMutexGuard.reset( ); diff --git a/sal/rtl/source/bootstrap.cxx b/sal/rtl/source/bootstrap.cxx index 2ac61e9aaef5..cc7d3336c2d2 100644 --- a/sal/rtl/source/bootstrap.cxx +++ b/sal/rtl/source/bootstrap.cxx @@ -281,10 +281,6 @@ static OUString & getIniFileName_Impl() fileName += OUString(RTL_CONSTASCII_USTRINGPARAM(SAL_CONFIGFILE(""))); } - OUString workDir; - osl_getProcessWorkingDir(&workDir.pData); - osl::FileBase::getAbsoluteFileURL(workDir, fileName, fileName); - static OUString theFileName; if(fileName.getLength()) theFileName = fileName; @@ -653,12 +649,8 @@ rtlBootstrapHandle SAL_CALL rtl_bootstrap_args_open ( rtl_uString * pIniName ) SAL_THROW_EXTERN_C() { - OUString workDir; OUString iniName( pIniName ); - osl_getProcessWorkingDir( &workDir.pData ); - osl::FileBase::getAbsoluteFileURL( workDir, iniName, iniName ); - // normalize path FileStatus status( FileStatusMask_FileURL ); DirectoryItem dirItem; diff --git a/sal/rtl/source/macro.hxx b/sal/rtl/source/macro.hxx index a48918668f83..3fa0fbe58f42 100644 --- a/sal/rtl/source/macro.hxx +++ b/sal/rtl/source/macro.hxx @@ -39,7 +39,11 @@ #elif defined SOLARIS #define THIS_OS "Solaris" #elif defined LINUX +#ifdef __FreeBSD_kernel__ +#define THIS_OS "kFreeBSD" +#else #define THIS_OS "Linux" +#endif #elif defined MACOSX #define THIS_OS "MacOSX" #elif defined NETBSD @@ -89,6 +93,8 @@ this is inserted for the case that the preprocessor ignores error # define THIS_ARCH "M68K" #elif defined HPPA # define THIS_ARCH "HPPA" +#elif defined AXP +# define THIS_ARCH "ALPHA" #endif #if ! defined THIS_ARCH diff --git a/sal/typesconfig/typesconfig.c b/sal/typesconfig/typesconfig.c index 8223c80a5856..708837be926b 100644 --- a/sal/typesconfig/typesconfig.c +++ b/sal/typesconfig/typesconfig.c @@ -160,7 +160,7 @@ int check( TestFunc func, Type eT, void* p ) |* Letzte Aenderung |* *************************************************************************/ -#if defined(IA64) || defined(ARM32) || defined(HPPA) +#if defined(IA64) || defined(ARM32) || defined(HPPA) || defined(AXP) int forceerror() { diff --git a/stoc/source/corereflection/criface.cxx b/stoc/source/corereflection/criface.cxx index ec325ce11db1..95d9990257f5 100644 --- a/stoc/source/corereflection/criface.cxx +++ b/stoc/source/corereflection/criface.cxx @@ -877,7 +877,8 @@ sal_Bool InterfaceIdlClassImpl::isAssignableFrom( const Reference< XIdlClass > & Uik InterfaceIdlClassImpl::getUik() throw(::com::sun::star::uno::RuntimeException) { - return *(Uik *)&getTypeDescr()->aUik; + return Uik(0, 0, 0, 0, 0); + // Uiks are deprecated and this function must not be called } //__________________________________________________________________________________________________ Sequence< Reference< XIdlMethod > > InterfaceIdlClassImpl::getMethods() diff --git a/ure/source/README b/ure/source/README index d2b4024e1e15..6e5162d8f058 100644 --- a/ure/source/README +++ b/ure/source/README @@ -141,6 +141,7 @@ Program Files\URE\bin\unsafe_uno_uno.dll [private] Program Files\URE\bin\affine_uno_uno.dll [private] Program Files\URE\bin\log_uno_uno.dll [private] Program Files\URE\bin\jpipe.dll [private] +Program Files\URE\bin\jpipx.dll [private] Program Files\URE\bin\juh.dll [private] Program Files\URE\bin\juhx.dll [private] Program Files\URE\bin\acceptor.uno.dll [private] |