1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
// $Id
// ============================================================================
//
// = LIBRARY
// TAO/tests/Param_Test
//
// = FILENAME
// params.idl
//
// = DESCRIPTION
// This IDL description is used to test all the parameter passing modes (in,
// inout, out, and return) for a number of IDL data types. The goal is to
// verify the correctness of the generated stubs and skeletons, and the
// the marshaling engine of TAO.
//
// = AUTHORS
// Aniruddha Gokhale
//
// ============================================================================
/*
interface Coffee
{
struct Desc
{
string name;
long count;
};
readonly attribute Desc description;
};
*/
interface Param_Test
{
// Add exceptions to each
// primitive types
short test_short (in short s1,
inout short s2,
out short s3);
/*
long test_long (in long l1,
inout long l2,
out long l3);
char test_char (in char c1,
inout char c2,
out char c3);
octet test_octet (in octet o1,
inout octet o2,
out octet o3);
double test_double (in double d1,
inout double d2,
out double d3);
// object references
Coffee make_coffee (); // make an Coffee object
Coffee test_Coffee (in Coffee o1, inout Coffee o2, out Coffee o3);
// strings unbounded
string test_ubstring (in string s1,
inout string s2,
out string s3);
// strings bounded
const unsigned long STRLEN = 10;
string<STRLEN> test_bstring (in string<STRLEN> s1,
inout string<STRLEN> s2,
out string<STRLEN> s3);
// typedefed string
typedef string MYSTRING;
MYSTRING test_tstring (in MYSTRING s1,
inout MYSTRING s2,
out MYSTRING s3);
// structures (fixed size)
struct fixed_struct
{
long l;
};
fixed_struct test_fstruct (in fixed_struct s1,
inout fixed_struct s2,
out fixed_struct s3);
// structures (variable)
struct var_struct
{
Coffee o;
string s;
sequence<octet> ObjectKey;
sequence<octet> bogus;
};
var_struct test_vstruct (in var_struct s1,
inout var_struct s2,
out var_struct s3);
// arrays (fixed)
// arrays (variable)
// multidimensional arrays (fixed)
// sequences
typedef sequence<string> StrSeq;
StrSeq test_seq (in StrSeq s1,
inout StrSeq s2,
out StrSeq s3);
// more combinations to follow
union U switch (long)
{
case 0: sequence<char> cseq;
case 1: sequence<octet> oseq;
case 2: StrSeq sseq;
};
// complex (but meaningless) to test the naming scheme
typedef sequence <sequence <sequence <long>, 5>, 10> complex;
*/
};
|