xref: /trunk/main/stoc/test/language_binding.idl (revision 3508ca0d)
1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24#ifndef _TEST_LANGUAGE_BINDING_IDL_
25#define _TEST_LANGUAGE_BINDING_IDL_
26
27#include <com/sun/star/uno/XInterface.idl>
28#include <com/sun/star/lang/IllegalArgumentException.idl>
29
30module test
31{
32
33enum TestEnum
34{
35	TEST,
36	ONE,
37	TWO,
38	CHECK,
39	LOLA,
40	PALOO,
41	ZA
42};
43
44/**
45 * simple c++ types
46 */
47struct TestSimple
48{
49	boolean					   Bool;
50	char					   Char;
51	byte					   Byte;
52	short					   Short;
53	unsigned short			   UShort;
54	long					   Long;
55	unsigned long			   ULong;
56	hyper					   Hyper;
57	unsigned hyper			   UHyper;
58	float					   Float;
59	double					   Double;
60	test::TestEnum			   Enum;
61};
62/**
63 * complex c++ types
64 */
65struct TestElement : test::TestSimple
66{
67	string					   String;
68	com::sun::star::uno::XInterface   Interface;
69	any						   Any;
70};
71struct TestDataElements : test::TestElement
72{
73	sequence<test::TestElement > Sequence;
74};
75
76typedef TestDataElements TestData;
77
78/**
79 * Monster test interface to test language binding calls.
80 *
81 * @author Daniel Boelzle
82 */
83interface XLBTestBase : com::sun::star::uno::XInterface
84{
85	/**
86	 * in parameter test, tests by calls reference also (complex types)
87	 */
88	[oneway] void setValues( [in] boolean bBool, [in] char cChar, [in] byte nByte,
89							 [in] short nShort, [in] unsigned short nUShort,
90							 [in] long nLong, [in] unsigned long nULong,
91							 [in] hyper nHyper, [in] unsigned hyper nUHyper,
92							 [in] float fFloat, [in] double fDouble,
93							 [in] test::TestEnum eEnum, [in] string aString,
94							 [in] com::sun::star::uno::XInterface xInterface, [in] any aAny,
95							 [in] sequence<test::TestElement > aSequence,
96							 [in] test::TestData aStruct );
97	/**
98	 * inout parameter test
99	 */
100	test::TestData setValues2( [inout] boolean bBool, [inout] char cChar, [inout] byte nByte,
101							   [inout] short nShort, [inout] unsigned short nUShort,
102							   [inout] long nLong, [inout] unsigned long nULong,
103							   [inout] hyper nHyper, [inout] unsigned hyper nUHyper,
104							   [inout] float fFloat, [inout] double fDouble,
105							   [inout] test::TestEnum eEnum, [inout] string aString,
106							   [inout] com::sun::star::uno::XInterface xInterface, [inout] any aAny,
107							   [inout] sequence<test::TestElement > aSequence,
108							   [inout] test::TestData aStruct );
109
110	/**
111	 * out parameter test
112	 */
113	test::TestData getValues( [out] boolean bBool, [out] char cChar, [out] byte nByte,
114							  [out] short nShort, [out] unsigned short nUShort,
115							  [out] long nLong, [out] unsigned long nULong,
116							  [out] hyper nHyper, [out] unsigned hyper nUHyper,
117							  [out] float fFloat, [out] double fDouble,
118							  [out] test::TestEnum eEnum, [out] string aString,
119							  [out] com::sun::star::uno::XInterface xInterface, [out] any aAny,
120							  [out] sequence<test::TestElement > aSequence,
121							  [out] test::TestData aStruct );
122
123	[attribute] boolean					 Bool;
124	[attribute] byte					 Byte;
125	[attribute] char					 Char;
126	[attribute] short					 Short;
127	[attribute] unsigned short			 UShort;
128	[attribute] long					 Long;
129	[attribute] unsigned long			 ULong;
130	[attribute] hyper					 Hyper;
131	[attribute] unsigned hyper			 UHyper;
132	[attribute] float					 Float;
133	[attribute] double					 Double;
134	[attribute] test::TestEnum			 Enum;
135	[attribute] string					 String;
136	[attribute] com::sun::star::uno::XInterface Interface;
137	[attribute] any						 Any;
138	[attribute] sequence<test::TestElement > Sequence;
139	[attribute] test::TestData			 Struct;
140};
141
142
143/**
144 * Inherting from monster; adds raiseException().
145 *
146 * @author Daniel Boelzle
147 */
148interface XLanguageBindingTest : test::XLBTestBase
149{
150	/**
151	 * params are there only for dummy, to test if all temp out params will be released.
152	 */
153	test::TestData raiseException( [out] boolean bBool, [out] char cChar, [out] byte nByte,
154								   [out] short nShort, [out] unsigned short nUShort,
155								   [out] long nLong, [out] unsigned long nULong,
156								   [out] hyper nHyper, [out] unsigned hyper nUHyper,
157								   [out] float fFloat, [out] double fDouble,
158								   [out] test::TestEnum eEnum, [out] string aString,
159								   [out] com::sun::star::uno::XInterface xInterface, [out] any aAny,
160								   [out] sequence<test::TestElement > aSequence,
161								   [out] test::TestData aStruct )
162		raises( com::sun::star::lang::IllegalArgumentException );
163
164	/**
165	 * raises runtime exception
166	 */
167	[attribute] long					 RuntimeException;
168};
169
170}; // test
171
172
173#endif
174