| /************************************************************** |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the 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; |
| }; |
| /** |
| * 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 ); |
| |
| [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 |