1*cdf0e10cSrcweir/************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir#include "com/sun/star/lang/IllegalArgumentException.idl" 29*cdf0e10cSrcweir#include "com/sun/star/lang/XComponent.idl" 30*cdf0e10cSrcweir#include "com/sun/star/uno/XComponentContext.idl" 31*cdf0e10cSrcweir#include "com/sun/star/uno/XInterface.idl" 32*cdf0e10cSrcweir 33*cdf0e10cSrcweirmodule test { module testtools { module bridgetest { 34*cdf0e10cSrcweir 35*cdf0e10cSrcweirenum TestEnum 36*cdf0e10cSrcweir{ 37*cdf0e10cSrcweir TEST, 38*cdf0e10cSrcweir ONE, 39*cdf0e10cSrcweir TWO, 40*cdf0e10cSrcweir CHECK, 41*cdf0e10cSrcweir LOLA, 42*cdf0e10cSrcweir PALOO, 43*cdf0e10cSrcweir ZA 44*cdf0e10cSrcweir}; 45*cdf0e10cSrcweir 46*cdf0e10cSrcweirenum TestBadEnum { M = 1 }; 47*cdf0e10cSrcweir 48*cdf0e10cSrcweirstruct TestStruct 49*cdf0e10cSrcweir{ 50*cdf0e10cSrcweir long member; 51*cdf0e10cSrcweir}; 52*cdf0e10cSrcweir 53*cdf0e10cSrcweir/** 54*cdf0e10cSrcweir * simple types 55*cdf0e10cSrcweir */ 56*cdf0e10cSrcweirstruct TestSimple 57*cdf0e10cSrcweir{ 58*cdf0e10cSrcweir boolean Bool; 59*cdf0e10cSrcweir char Char; 60*cdf0e10cSrcweir byte Byte; 61*cdf0e10cSrcweir short Short; 62*cdf0e10cSrcweir unsigned short UShort; 63*cdf0e10cSrcweir long Long; 64*cdf0e10cSrcweir unsigned long ULong; 65*cdf0e10cSrcweir hyper Hyper; 66*cdf0e10cSrcweir unsigned hyper UHyper; 67*cdf0e10cSrcweir float Float; 68*cdf0e10cSrcweir double Double; 69*cdf0e10cSrcweir TestEnum Enum; 70*cdf0e10cSrcweir}; 71*cdf0e10cSrcweir/** 72*cdf0e10cSrcweir * equal to max size returned in registers on x86_64 73*cdf0e10cSrcweir */ 74*cdf0e10cSrcweirstruct SmallStruct 75*cdf0e10cSrcweir{ 76*cdf0e10cSrcweir hyper a; 77*cdf0e10cSrcweir hyper b; 78*cdf0e10cSrcweir}; 79*cdf0e10cSrcweir/** 80*cdf0e10cSrcweir * equal to max size returned in registers on ia64 81*cdf0e10cSrcweir */ 82*cdf0e10cSrcweirstruct MediumStruct 83*cdf0e10cSrcweir{ 84*cdf0e10cSrcweir hyper a; 85*cdf0e10cSrcweir hyper b; 86*cdf0e10cSrcweir hyper c; 87*cdf0e10cSrcweir hyper d; 88*cdf0e10cSrcweir}; 89*cdf0e10cSrcweir/** 90*cdf0e10cSrcweir * bigger than max size returned in registers on ia64 91*cdf0e10cSrcweir */ 92*cdf0e10cSrcweirstruct BigStruct 93*cdf0e10cSrcweir{ 94*cdf0e10cSrcweir hyper a; 95*cdf0e10cSrcweir hyper b; 96*cdf0e10cSrcweir hyper c; 97*cdf0e10cSrcweir hyper d; 98*cdf0e10cSrcweir hyper e; 99*cdf0e10cSrcweir hyper f; 100*cdf0e10cSrcweir hyper g; 101*cdf0e10cSrcweir hyper h; 102*cdf0e10cSrcweir}; 103*cdf0e10cSrcweir/** 104*cdf0e10cSrcweir * all floats, ia64 handles them specially 105*cdf0e10cSrcweir */ 106*cdf0e10cSrcweirstruct AllFloats 107*cdf0e10cSrcweir{ 108*cdf0e10cSrcweir float a; 109*cdf0e10cSrcweir float b; 110*cdf0e10cSrcweir float c; 111*cdf0e10cSrcweir float d; 112*cdf0e10cSrcweir}; 113*cdf0e10cSrcweir/** 114*cdf0e10cSrcweir * complex types adding string, inteface, any 115*cdf0e10cSrcweir */ 116*cdf0e10cSrcweirstruct TestElement : TestSimple 117*cdf0e10cSrcweir{ 118*cdf0e10cSrcweir string String; 119*cdf0e10cSrcweir com::sun::star::uno::XInterface Interface; 120*cdf0e10cSrcweir any Any; 121*cdf0e10cSrcweir}; 122*cdf0e10cSrcweir/** 123*cdf0e10cSrcweir * adding even more complexity, sequence< TestElement > 124*cdf0e10cSrcweir */ 125*cdf0e10cSrcweirstruct TestDataElements : TestElement 126*cdf0e10cSrcweir{ 127*cdf0e10cSrcweir sequence< TestElement > Sequence; 128*cdf0e10cSrcweir}; 129*cdf0e10cSrcweir 130*cdf0e10cSrcweir/** 131*cdf0e10cSrcweir * typedef used in interface 132*cdf0e10cSrcweir */ 133*cdf0e10cSrcweirtypedef TestDataElements TestData; 134*cdf0e10cSrcweir 135*cdf0e10cSrcweirstruct TestPolyStruct<T> { T member; }; 136*cdf0e10cSrcweirstruct TestPolyStruct2<T,C> { 137*cdf0e10cSrcweir T member1; 138*cdf0e10cSrcweir C member2; 139*cdf0e10cSrcweir}; 140*cdf0e10cSrcweir 141*cdf0e10cSrcweirinterface XRecursiveCall : com::sun::star::uno::XInterface 142*cdf0e10cSrcweir{ 143*cdf0e10cSrcweir /*** 144*cdf0e10cSrcweir * @param nToCall If nToCall is 0, the method returns immeadiatly. 145*cdf0e10cSrcweir * Otherwise, call the given interface with nToCall -1 146*cdf0e10cSrcweir * 147*cdf0e10cSrcweir ***/ 148*cdf0e10cSrcweir void callRecursivly( [in] XRecursiveCall xCall , [in] long nToCall ); 149*cdf0e10cSrcweir}; 150*cdf0e10cSrcweir 151*cdf0e10cSrcweirinterface XMultiBase1 { 152*cdf0e10cSrcweir [attribute] double att1; // initially 0.0 153*cdf0e10cSrcweir long fn11([in] long arg); // return 11 * arg 154*cdf0e10cSrcweir string fn12([in] string arg); // return "12" + arg 155*cdf0e10cSrcweir}; 156*cdf0e10cSrcweir 157*cdf0e10cSrcweirinterface XMultiBase2: XMultiBase1 { 158*cdf0e10cSrcweir long fn21([in] long arg); // return 21 * arg 159*cdf0e10cSrcweir string fn22([in] string arg); // return "22" + arg 160*cdf0e10cSrcweir}; 161*cdf0e10cSrcweir 162*cdf0e10cSrcweirinterface XMultiBase3 { 163*cdf0e10cSrcweir [attribute] double att3; // initially 0.0 164*cdf0e10cSrcweir long fn31([in] long arg); // return 31 * arg 165*cdf0e10cSrcweir string fn32([in] string arg); // return "32" + arg 166*cdf0e10cSrcweir long fn33(); // return 33 167*cdf0e10cSrcweir}; 168*cdf0e10cSrcweir 169*cdf0e10cSrcweirinterface XMultiBase3a: XMultiBase3 {}; 170*cdf0e10cSrcweir 171*cdf0e10cSrcweirinterface XMultiBase4 { 172*cdf0e10cSrcweir long fn41([in] long arg); // return 41 * arg 173*cdf0e10cSrcweir}; 174*cdf0e10cSrcweir 175*cdf0e10cSrcweirinterface XMultiBase5 { 176*cdf0e10cSrcweir interface XMultiBase3; 177*cdf0e10cSrcweir interface XMultiBase4; 178*cdf0e10cSrcweir interface XMultiBase1; 179*cdf0e10cSrcweir}; 180*cdf0e10cSrcweir 181*cdf0e10cSrcweirinterface XMultiBase6 { 182*cdf0e10cSrcweir interface XMultiBase2; 183*cdf0e10cSrcweir interface XMultiBase3a; 184*cdf0e10cSrcweir interface XMultiBase5; 185*cdf0e10cSrcweir long fn61([in] long arg); // return 61 * arg 186*cdf0e10cSrcweir string fn62([in] string arg); // return "62" + arg 187*cdf0e10cSrcweir}; 188*cdf0e10cSrcweir 189*cdf0e10cSrcweirinterface XMultiBase7 { 190*cdf0e10cSrcweir long fn71([in] long arg); // return 71 * arg 191*cdf0e10cSrcweir string fn72([in] string arg); // return "72" + arg 192*cdf0e10cSrcweir long fn73(); // return 73 193*cdf0e10cSrcweir}; 194*cdf0e10cSrcweir 195*cdf0e10cSrcweirinterface XMulti { 196*cdf0e10cSrcweir interface XMultiBase6; 197*cdf0e10cSrcweir interface XMultiBase7; 198*cdf0e10cSrcweir}; 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir/** 201*cdf0e10cSrcweir * Monster test interface to test bridge calls. 202*cdf0e10cSrcweir * An implementation of this object has to store given values and return whenever there 203*cdf0e10cSrcweir * is an out param or return value. 204*cdf0e10cSrcweir */ 205*cdf0e10cSrcweirinterface XBridgeTestBase : com::sun::star::uno::XInterface 206*cdf0e10cSrcweir{ 207*cdf0e10cSrcweir /** 208*cdf0e10cSrcweir * in parameter test, tests by calls reference also (complex types) 209*cdf0e10cSrcweir */ 210*cdf0e10cSrcweir [oneway] void setValues( [in] boolean bBool, [in] char cChar, [in] byte nByte, 211*cdf0e10cSrcweir [in] short nShort, [in] unsigned short nUShort, 212*cdf0e10cSrcweir [in] long nLong, [in] unsigned long nULong, 213*cdf0e10cSrcweir [in] hyper nHyper, [in] unsigned hyper nUHyper, 214*cdf0e10cSrcweir [in] float fFloat, [in] double fDouble, 215*cdf0e10cSrcweir [in] TestEnum eEnum, [in] string aString, 216*cdf0e10cSrcweir [in] com::sun::star::uno::XInterface xInterface, [in] any aAny, 217*cdf0e10cSrcweir [in] sequence< TestElement > aSequence, 218*cdf0e10cSrcweir [in] TestData aStruct ); 219*cdf0e10cSrcweir /** 220*cdf0e10cSrcweir * inout parameter test 221*cdf0e10cSrcweir * 222*cdf0e10cSrcweir * @return aStruct. The out parameter contain the values, that were previously set 223*cdf0e10cSrcweir * by setValues or (if not called before) default constructed values. 224*cdf0e10cSrcweir * 225*cdf0e10cSrcweir */ 226*cdf0e10cSrcweir TestData setValues2( [inout] boolean bBool, [inout] char cChar, [inout] byte nByte, 227*cdf0e10cSrcweir [inout] short nShort, [inout] unsigned short nUShort, 228*cdf0e10cSrcweir [inout] long nLong, [inout] unsigned long nULong, 229*cdf0e10cSrcweir [inout] hyper nHyper, [inout] unsigned hyper nUHyper, 230*cdf0e10cSrcweir [inout] float fFloat, [inout] double fDouble, 231*cdf0e10cSrcweir [inout] TestEnum eEnum, [inout] string aString, 232*cdf0e10cSrcweir [inout] com::sun::star::uno::XInterface xInterface, [inout] any aAny, 233*cdf0e10cSrcweir [inout] sequence< TestElement > aSequence, 234*cdf0e10cSrcweir [inout] TestData aStruct ); 235*cdf0e10cSrcweir 236*cdf0e10cSrcweir /** 237*cdf0e10cSrcweir * out parameter test 238*cdf0e10cSrcweir */ 239*cdf0e10cSrcweir TestData getValues( [out] boolean bBool, [out] char cChar, [out] byte nByte, 240*cdf0e10cSrcweir [out] short nShort, [out] unsigned short nUShort, 241*cdf0e10cSrcweir [out] long nLong, [out] unsigned long nULong, 242*cdf0e10cSrcweir [out] hyper nHyper, [out] unsigned hyper nUHyper, 243*cdf0e10cSrcweir [out] float fFloat, [out] double fDouble, 244*cdf0e10cSrcweir [out] TestEnum eEnum, [out] string aString, 245*cdf0e10cSrcweir [out] com::sun::star::uno::XInterface xInterface, [out] any aAny, 246*cdf0e10cSrcweir [out] sequence< TestElement > aSequence, 247*cdf0e10cSrcweir [out] TestData aStruct ); 248*cdf0e10cSrcweir 249*cdf0e10cSrcweir /** 250*cdf0e10cSrcweir * register return test 1 251*cdf0e10cSrcweir */ 252*cdf0e10cSrcweir SmallStruct echoSmallStruct( [in] SmallStruct aStruct ); 253*cdf0e10cSrcweir 254*cdf0e10cSrcweir /** 255*cdf0e10cSrcweir * register return test 2 256*cdf0e10cSrcweir */ 257*cdf0e10cSrcweir MediumStruct echoMediumStruct( [in] MediumStruct aStruct ); 258*cdf0e10cSrcweir 259*cdf0e10cSrcweir /** 260*cdf0e10cSrcweir * register return test 3 261*cdf0e10cSrcweir */ 262*cdf0e10cSrcweir BigStruct echoBigStruct( [in] BigStruct aStruct ); 263*cdf0e10cSrcweir 264*cdf0e10cSrcweir /** 265*cdf0e10cSrcweir * register return test 4 266*cdf0e10cSrcweir */ 267*cdf0e10cSrcweir AllFloats echoAllFloats( [in] AllFloats aStruct ); 268*cdf0e10cSrcweir 269*cdf0e10cSrcweir /** 270*cdf0e10cSrcweir * register return test 4 (i107182) 271*cdf0e10cSrcweir */ 272*cdf0e10cSrcweir long testPPCAlignment( [in] hyper l1, [in] hyper l2, [in] long i1, [in] hyper l3, [in] long i2 ); 273*cdf0e10cSrcweir 274*cdf0e10cSrcweir [attribute] boolean Bool; 275*cdf0e10cSrcweir [attribute] byte Byte; 276*cdf0e10cSrcweir [attribute] char Char; 277*cdf0e10cSrcweir [attribute] short Short; 278*cdf0e10cSrcweir [attribute] unsigned short UShort; 279*cdf0e10cSrcweir [attribute] long Long; 280*cdf0e10cSrcweir [attribute] unsigned long ULong; 281*cdf0e10cSrcweir [attribute] hyper Hyper; 282*cdf0e10cSrcweir [attribute] unsigned hyper UHyper; 283*cdf0e10cSrcweir [attribute] float Float; 284*cdf0e10cSrcweir [attribute] double Double; 285*cdf0e10cSrcweir [attribute] TestEnum Enum; 286*cdf0e10cSrcweir [attribute] string String; 287*cdf0e10cSrcweir [attribute] com::sun::star::uno::XInterface Interface; 288*cdf0e10cSrcweir [attribute] any Any; 289*cdf0e10cSrcweir [attribute] sequence< TestElement > Sequence; 290*cdf0e10cSrcweir [attribute] TestData Struct; 291*cdf0e10cSrcweir 292*cdf0e10cSrcweir [attribute] long RaiseAttr1 { 293*cdf0e10cSrcweir set raises (com::sun::star::lang::IllegalArgumentException); 294*cdf0e10cSrcweir }; 295*cdf0e10cSrcweir [attribute, readonly] long RaiseAttr2 { 296*cdf0e10cSrcweir get raises (com::sun::star::lang::IllegalArgumentException); 297*cdf0e10cSrcweir }; 298*cdf0e10cSrcweir 299*cdf0e10cSrcweir TestPolyStruct<boolean> transportPolyBoolean( 300*cdf0e10cSrcweir [in] TestPolyStruct<boolean> arg); 301*cdf0e10cSrcweir void transportPolyHyper([inout] TestPolyStruct<hyper> arg); 302*cdf0e10cSrcweir void transportPolySequence( 303*cdf0e10cSrcweir [in] TestPolyStruct<sequence<any> > arg1, 304*cdf0e10cSrcweir [out] TestPolyStruct<sequence<any> > arg2); 305*cdf0e10cSrcweir 306*cdf0e10cSrcweir TestPolyStruct<long> getNullPolyLong(); 307*cdf0e10cSrcweir TestPolyStruct<string> getNullPolyString(); 308*cdf0e10cSrcweir TestPolyStruct<type> getNullPolyType(); 309*cdf0e10cSrcweir TestPolyStruct<any> getNullPolyAny(); 310*cdf0e10cSrcweir TestPolyStruct<sequence<boolean> > getNullPolySequence(); 311*cdf0e10cSrcweir TestPolyStruct<TestEnum> getNullPolyEnum(); 312*cdf0e10cSrcweir TestPolyStruct<TestBadEnum> getNullPolyBadEnum(); 313*cdf0e10cSrcweir TestPolyStruct<TestStruct> getNullPolyStruct(); 314*cdf0e10cSrcweir TestPolyStruct<XBridgeTestBase> getNullPolyInterface(); 315*cdf0e10cSrcweir 316*cdf0e10cSrcweir /*** 317*cdf0e10cSrcweir * This method returns the parameter value. 318*cdf0e10cSrcweir * Method to extensivly test anys. 319*cdf0e10cSrcweir ****/ 320*cdf0e10cSrcweir any transportAny( [in] any value ); 321*cdf0e10cSrcweir 322*cdf0e10cSrcweir /*** 323*cdf0e10cSrcweir * methods to check sequence of calls. Call call() and callOneway 324*cdf0e10cSrcweir * in an arbitrary sequence. Increase the callId for every call. 325*cdf0e10cSrcweir * The testobject sets an error flag. 326*cdf0e10cSrcweir 327*cdf0e10cSrcweir @see testSequencePassed 328*cdf0e10cSrcweir ***/ 329*cdf0e10cSrcweir void call( [in] long nCallId, [in] long nWaitMUSEC ); 330*cdf0e10cSrcweir [oneway] void callOneway( [in] long nCallId, [in] long nWaitMUSEC ); 331*cdf0e10cSrcweir boolean sequenceOfCallTestPassed(); 332*cdf0e10cSrcweir 333*cdf0e10cSrcweir /**** 334*cdf0e10cSrcweir * methods to check, if threads thread identity is holded. 335*cdf0e10cSrcweir * 336*cdf0e10cSrcweir ***/ 337*cdf0e10cSrcweir void startRecursiveCall( [in] XRecursiveCall xCall , [in] long nToCall ); 338*cdf0e10cSrcweir 339*cdf0e10cSrcweir XMulti getMulti(); 340*cdf0e10cSrcweir string testMulti([in] XMulti multi); 341*cdf0e10cSrcweir}; 342*cdf0e10cSrcweir 343*cdf0e10cSrcweir 344*cdf0e10cSrcweir/** 345*cdf0e10cSrcweir * Inherting from monster; adds raiseException(), attribute raising RuntimeException. 346*cdf0e10cSrcweir */ 347*cdf0e10cSrcweirinterface XBridgeTest : XBridgeTestBase 348*cdf0e10cSrcweir{ 349*cdf0e10cSrcweir /** 350*cdf0e10cSrcweir * the exception struct returned has to be filled with given arguments. 351*cdf0e10cSrcweir * return value is for dummy. 352*cdf0e10cSrcweir */ 353*cdf0e10cSrcweir TestData raiseException( [in] short ArgumentPosition, 354*cdf0e10cSrcweir [in] string Message, 355*cdf0e10cSrcweir [in] com::sun::star::uno::XInterface Context ) 356*cdf0e10cSrcweir raises( com::sun::star::lang::IllegalArgumentException ); 357*cdf0e10cSrcweir 358*cdf0e10cSrcweir 359*cdf0e10cSrcweir /** 360*cdf0e10cSrcweir * Throws runtime exception. 361*cdf0e10cSrcweir * check remote bridges handle exceptions during oneway calls properly. 362*cdf0e10cSrcweir * Note that on client side the execption may fly or not. When it flies, it should 363*cdf0e10cSrcweir * have the proper message and context. 364*cdf0e10cSrcweir ***/ 365*cdf0e10cSrcweir [oneway] void raiseRuntimeExceptionOneway( [in] string Message, 366*cdf0e10cSrcweir [in] com::sun::star::uno::XInterface Context ); 367*cdf0e10cSrcweir 368*cdf0e10cSrcweir /** 369*cdf0e10cSrcweir * raises runtime exception; 370*cdf0e10cSrcweir * the exception struct returned has to be filled with formerly set test data. 371*cdf0e10cSrcweir */ 372*cdf0e10cSrcweir [attribute] long RuntimeException; 373*cdf0e10cSrcweir}; 374*cdf0e10cSrcweir 375*cdf0e10cSrcweir 376*cdf0e10cSrcweirexception BadConstructorArguments: com::sun::star::uno::Exception {}; 377*cdf0e10cSrcweir 378*cdf0e10cSrcweirservice Constructors: com::sun::star::uno::XInterface { 379*cdf0e10cSrcweir create1( 380*cdf0e10cSrcweir [in] boolean arg0, 381*cdf0e10cSrcweir [in] byte arg1, 382*cdf0e10cSrcweir [in] short arg2, 383*cdf0e10cSrcweir [in] unsigned short arg3, 384*cdf0e10cSrcweir [in] long arg4, 385*cdf0e10cSrcweir [in] unsigned long arg5, 386*cdf0e10cSrcweir [in] hyper arg6, 387*cdf0e10cSrcweir [in] unsigned hyper arg7, 388*cdf0e10cSrcweir [in] float arg8, 389*cdf0e10cSrcweir [in] double arg9, 390*cdf0e10cSrcweir [in] char arg10, 391*cdf0e10cSrcweir [in] string arg11, 392*cdf0e10cSrcweir [in] type arg12, 393*cdf0e10cSrcweir [in] any arg13, 394*cdf0e10cSrcweir [in] sequence< boolean > arg14, 395*cdf0e10cSrcweir [in] sequence< byte > arg15, 396*cdf0e10cSrcweir [in] sequence< short > arg16, 397*cdf0e10cSrcweir [in] sequence< unsigned short > arg17, 398*cdf0e10cSrcweir [in] sequence< long > arg18, 399*cdf0e10cSrcweir [in] sequence< unsigned long > arg19, 400*cdf0e10cSrcweir [in] sequence< hyper > arg20, 401*cdf0e10cSrcweir [in] sequence< unsigned hyper > arg21, 402*cdf0e10cSrcweir [in] sequence< float > arg22, 403*cdf0e10cSrcweir [in] sequence< double > arg23, 404*cdf0e10cSrcweir [in] sequence< char > arg24, 405*cdf0e10cSrcweir [in] sequence< string > arg25, 406*cdf0e10cSrcweir [in] sequence< type > arg26, 407*cdf0e10cSrcweir [in] sequence< any > arg27, 408*cdf0e10cSrcweir [in] sequence< sequence< boolean > > arg28, 409*cdf0e10cSrcweir [in] sequence< sequence< any > > arg29, 410*cdf0e10cSrcweir [in] sequence< TestEnum > arg30, 411*cdf0e10cSrcweir [in] sequence< TestStruct > arg31, 412*cdf0e10cSrcweir [in] sequence< TestPolyStruct< boolean > > arg32, 413*cdf0e10cSrcweir [in] sequence< TestPolyStruct< any > > arg33, 414*cdf0e10cSrcweir [in] sequence< com::sun::star::uno::XInterface > arg34, 415*cdf0e10cSrcweir [in] TestEnum arg35, 416*cdf0e10cSrcweir [in] TestStruct arg36, 417*cdf0e10cSrcweir [in] TestPolyStruct< boolean > arg37, 418*cdf0e10cSrcweir [in] TestPolyStruct< any > arg38, 419*cdf0e10cSrcweir [in] com::sun::star::uno::XInterface arg39) 420*cdf0e10cSrcweir raises (BadConstructorArguments); 421*cdf0e10cSrcweir 422*cdf0e10cSrcweir create2([in] any... args) raises (BadConstructorArguments); 423*cdf0e10cSrcweir 424*cdf0e10cSrcweir}; 425*cdf0e10cSrcweir 426*cdf0e10cSrcweirservice Constructors2: XMultiBase1 { 427*cdf0e10cSrcweir 428*cdf0e10cSrcweir create1( 429*cdf0e10cSrcweir [in] TestPolyStruct<type> arg1, 430*cdf0e10cSrcweir [in] TestPolyStruct<any> arg2, 431*cdf0e10cSrcweir [in] TestPolyStruct<boolean> arg3, 432*cdf0e10cSrcweir [in] TestPolyStruct<byte> arg4, 433*cdf0e10cSrcweir [in] TestPolyStruct<short> arg5, 434*cdf0e10cSrcweir [in] TestPolyStruct<long> arg6, 435*cdf0e10cSrcweir [in] TestPolyStruct<hyper> arg7, 436*cdf0e10cSrcweir [in] TestPolyStruct<char> arg8, 437*cdf0e10cSrcweir [in] TestPolyStruct<string> arg9, 438*cdf0e10cSrcweir [in] TestPolyStruct<float> arg10, 439*cdf0e10cSrcweir [in] TestPolyStruct<double> arg11, 440*cdf0e10cSrcweir [in] TestPolyStruct<com::sun::star::uno::XInterface> arg12, 441*cdf0e10cSrcweir [in] TestPolyStruct<com::sun::star::lang::XComponent> arg13, 442*cdf0e10cSrcweir [in] TestPolyStruct<TestEnum> arg14, 443*cdf0e10cSrcweir [in] TestPolyStruct<TestPolyStruct2<char,any> > arg15, 444*cdf0e10cSrcweir [in] TestPolyStruct<TestPolyStruct2<TestPolyStruct2<char,any>,string> > arg16, 445*cdf0e10cSrcweir [in] TestPolyStruct2<string, TestPolyStruct2<char, TestPolyStruct<any> > > arg17, 446*cdf0e10cSrcweir [in] TestPolyStruct2<TestPolyStruct2<char,any>, TestPolyStruct<char> > arg18, 447*cdf0e10cSrcweir [in] TestPolyStruct<sequence<type> > arg19, 448*cdf0e10cSrcweir [in] TestPolyStruct<sequence<any> > arg20, 449*cdf0e10cSrcweir [in] TestPolyStruct<sequence<boolean> > arg21, 450*cdf0e10cSrcweir [in] TestPolyStruct<sequence<byte> > arg22, 451*cdf0e10cSrcweir [in] TestPolyStruct<sequence<short> > arg23, 452*cdf0e10cSrcweir [in] TestPolyStruct<sequence<long> > arg24, 453*cdf0e10cSrcweir [in] TestPolyStruct<sequence<hyper> > arg25, 454*cdf0e10cSrcweir [in] TestPolyStruct<sequence<char> > arg26, 455*cdf0e10cSrcweir [in] TestPolyStruct<sequence<string> > arg27, 456*cdf0e10cSrcweir [in] TestPolyStruct<sequence<float> > arg28, 457*cdf0e10cSrcweir [in] TestPolyStruct<sequence<double> > arg29, 458*cdf0e10cSrcweir [in] TestPolyStruct<sequence<com::sun::star::uno::XInterface> > arg30, 459*cdf0e10cSrcweir [in] TestPolyStruct<sequence<com::sun::star::lang::XComponent> > arg31, 460*cdf0e10cSrcweir [in] TestPolyStruct<sequence<TestEnum> > arg32, 461*cdf0e10cSrcweir [in] TestPolyStruct<sequence<TestPolyStruct2<char, sequence<any> > > > arg33, 462*cdf0e10cSrcweir [in] TestPolyStruct<sequence<TestPolyStruct2<TestPolyStruct<char>, sequence<any> > > > arg34, 463*cdf0e10cSrcweir [in] TestPolyStruct<sequence<sequence<long> > > arg35, 464*cdf0e10cSrcweir [in] sequence<TestPolyStruct<long > > arg36, 465*cdf0e10cSrcweir [in] sequence<TestPolyStruct<TestPolyStruct2<char,any> > > arg37, 466*cdf0e10cSrcweir [in] sequence<TestPolyStruct<TestPolyStruct2<TestPolyStruct2<char,any>,string> > > arg38, 467*cdf0e10cSrcweir [in] sequence<TestPolyStruct2<string, TestPolyStruct2<char, TestPolyStruct<any> > > > arg39, 468*cdf0e10cSrcweir [in] sequence<TestPolyStruct2<TestPolyStruct2<char,any>, TestPolyStruct<char> > > arg40, 469*cdf0e10cSrcweir [in] sequence<sequence<TestPolyStruct< char > > > arg41, 470*cdf0e10cSrcweir [in] sequence<sequence<TestPolyStruct<TestPolyStruct2<char,any> > > >arg42, 471*cdf0e10cSrcweir [in] sequence<sequence<TestPolyStruct<TestPolyStruct2<TestPolyStruct2<char,any>,string> > > > arg43, 472*cdf0e10cSrcweir [in] sequence<sequence<TestPolyStruct2<string, TestPolyStruct2<char, TestPolyStruct<any> > > > > arg44, 473*cdf0e10cSrcweir [in] sequence<sequence<TestPolyStruct2<TestPolyStruct2<char,any>, TestPolyStruct<char> > > > arg45 474*cdf0e10cSrcweir ); 475*cdf0e10cSrcweir}; 476*cdf0e10cSrcweir 477*cdf0e10cSrcweirinterface XCurrentContextChecker { 478*cdf0e10cSrcweir boolean perform( 479*cdf0e10cSrcweir [in] XCurrentContextChecker other, [in] long setSteps, 480*cdf0e10cSrcweir [in] long checkSteps); 481*cdf0e10cSrcweir}; 482*cdf0e10cSrcweir 483*cdf0e10cSrcweir/** Extended tests with sequences. 484*cdf0e10cSrcweir */ 485*cdf0e10cSrcweirinterface XBridgeTest2 : XBridgeTest 486*cdf0e10cSrcweir{ 487*cdf0e10cSrcweir sequence< boolean > setSequenceBool( [in] sequence< boolean > aSeq); 488*cdf0e10cSrcweir sequence< char > setSequenceChar( [in] sequence< char > aSeq); 489*cdf0e10cSrcweir sequence< byte> setSequenceByte( [in] sequence< byte > aSeq); 490*cdf0e10cSrcweir sequence< short> setSequenceShort( [in] sequence< short > aSeq); 491*cdf0e10cSrcweir sequence< unsigned short > setSequenceUShort( [in] sequence< unsigned short > aSeq); 492*cdf0e10cSrcweir sequence< long > setSequenceLong( [in] sequence< long > aSeq); 493*cdf0e10cSrcweir sequence< unsigned long > setSequenceULong( [in] sequence< unsigned long > aSeq); 494*cdf0e10cSrcweir sequence< hyper > setSequenceHyper( [in] sequence< hyper > aSeq); 495*cdf0e10cSrcweir sequence< unsigned hyper > setSequenceUHyper( [in] sequence< unsigned hyper > aSeq); 496*cdf0e10cSrcweir sequence< float > setSequenceFloat( [in] sequence< float > aSeq); 497*cdf0e10cSrcweir sequence< double > setSequenceDouble( [in] sequence< double > aSeq); 498*cdf0e10cSrcweir sequence< TestEnum > setSequenceEnum( [in] sequence< TestEnum > aSeq); 499*cdf0e10cSrcweir sequence< string > setSequenceString( [in] sequence< string > aString); 500*cdf0e10cSrcweir sequence< com::sun::star::uno::XInterface > setSequenceXInterface( 501*cdf0e10cSrcweir [in] sequence< com::sun::star::uno::XInterface > aSeq); 502*cdf0e10cSrcweir sequence< any > setSequenceAny( [in] sequence< any > aSeq); 503*cdf0e10cSrcweir sequence< TestElement > setSequenceStruct( [in] sequence< TestElement > aSeq); 504*cdf0e10cSrcweir 505*cdf0e10cSrcweir sequence< sequence< long > > setDim2( [in] sequence< sequence< long > > aSeq); 506*cdf0e10cSrcweir sequence< sequence < sequence < long > > > setDim3( 507*cdf0e10cSrcweir [in] sequence< sequence < sequence < long > > > aSeq); 508*cdf0e10cSrcweir 509*cdf0e10cSrcweir void setSequencesInOut( [inout] sequence< boolean > aSeqBoolean, 510*cdf0e10cSrcweir [inout] sequence< char > aSeqChar, 511*cdf0e10cSrcweir [inout] sequence< byte > aSeqByte, 512*cdf0e10cSrcweir [inout] sequence< short > aSeqShort, 513*cdf0e10cSrcweir [inout] sequence< unsigned short> aSeqUShort, 514*cdf0e10cSrcweir [inout] sequence< long > aSeqLong, 515*cdf0e10cSrcweir [inout] sequence< unsigned long > aSeqULong, 516*cdf0e10cSrcweir [inout] sequence< hyper > aSeqHyper, 517*cdf0e10cSrcweir [inout] sequence< unsigned hyper > aSeqUHyper, 518*cdf0e10cSrcweir [inout] sequence< float > aSeqFloat, 519*cdf0e10cSrcweir [inout] sequence< double > aSeqDouble, 520*cdf0e10cSrcweir [inout] sequence< TestEnum > aSeqEnum, 521*cdf0e10cSrcweir [inout] sequence< string > aSeqString, 522*cdf0e10cSrcweir [inout] sequence< com::sun::star::uno::XInterface > aSeqXInterface, 523*cdf0e10cSrcweir [inout] sequence< any > aSeqAny, 524*cdf0e10cSrcweir [inout] sequence< sequence< long > > aSeqDim2, 525*cdf0e10cSrcweir [inout] sequence< sequence < sequence < long > > > aSeqDim3); 526*cdf0e10cSrcweir 527*cdf0e10cSrcweir void setSequencesOut( [out] sequence< boolean > aSeqBoolean, 528*cdf0e10cSrcweir [out] sequence< char > aSeqChar, 529*cdf0e10cSrcweir [out] sequence< byte > aSeqByte, 530*cdf0e10cSrcweir [out] sequence< short > aSeqShort, 531*cdf0e10cSrcweir [out] sequence< unsigned short> aSeqUShort, 532*cdf0e10cSrcweir [out] sequence< long > aSeqLong, 533*cdf0e10cSrcweir [out] sequence< unsigned long > aSeqULong, 534*cdf0e10cSrcweir [out] sequence< hyper > aSeqHyper, 535*cdf0e10cSrcweir [out] sequence< unsigned hyper > aSeqUHyper, 536*cdf0e10cSrcweir [out] sequence< float > aSeqFloat, 537*cdf0e10cSrcweir [out] sequence< double > aSeqDouble, 538*cdf0e10cSrcweir [out] sequence< TestEnum > aSeqEnum, 539*cdf0e10cSrcweir [out] sequence< string > aSeqString, 540*cdf0e10cSrcweir [out] sequence< com::sun::star::uno::XInterface > aSeqXInterface, 541*cdf0e10cSrcweir [out] sequence< any > aSeqAny, 542*cdf0e10cSrcweir [out] sequence< sequence< long > > aSeqDim2, 543*cdf0e10cSrcweir [out] sequence< sequence < sequence < long > > > aSeqDim3); 544*cdf0e10cSrcweir 545*cdf0e10cSrcweir void testConstructorsService( 546*cdf0e10cSrcweir [in] com::sun::star::uno::XComponentContext context) 547*cdf0e10cSrcweir raises (BadConstructorArguments); 548*cdf0e10cSrcweir 549*cdf0e10cSrcweir XCurrentContextChecker getCurrentContextChecker(); 550*cdf0e10cSrcweir}; 551*cdf0e10cSrcweir 552*cdf0e10cSrcweir}; }; }; 553