1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5#pragma once
6
7[["suppress-warning:deprecated"]] // For classes with operations
8
9module Test
10{
11
12module MA
13{
14
15interface IA
16{
17    IA* iaop(IA* p);
18}
19
20class CA
21{
22    CA* caop(CA* p);
23}
24
25}
26
27module MB
28{
29
30interface IB1 extends MA::IA
31{
32    IB1* ib1op(IB1* p);
33}
34
35interface IB2 extends MA::IA
36{
37    IB2* ib2op(IB2* p);
38}
39
40class CB extends MA::CA
41{
42    CB* cbop(CB* p);
43}
44
45}
46
47module MA
48{
49
50interface IC extends MB::IB1, MB::IB2
51{
52    IC* icop(IC* p);
53}
54
55class CC extends MB::CB
56{
57    CC* ccop(CC* p);
58}
59
60class CD extends CC implements MB::IB1, MB::IB2
61{
62    CD* cdop(CD* p);
63}
64
65}
66
67interface Initial
68{
69    void shutdown();
70    MA::CA* caop();
71    MB::CB* cbop();
72    MA::CC* ccop();
73    MA::CD* cdop();
74    MA::IA* iaop();
75    MB::IB1* ib1op();
76    MB::IB2* ib2op();
77    MA::IC* icop();
78}
79
80module MC
81{
82
83class A
84{
85    int aA;
86}
87
88class B extends A
89{
90    int bB;
91}
92
93class C extends B
94{
95    int cC;
96}
97
98class D extends C
99{
100    int dD;
101}
102
103}
104
105module MD
106{
107
108class A
109{
110    int aA;
111}
112
113class B extends A
114{
115    int bB;
116}
117
118class C extends B
119{
120    int cC;
121}
122
123class D extends C
124{
125    int dD;
126}
127
128}
129
130module ME
131{
132
133class A
134{
135    int aA;
136}
137
138class B extends A
139{
140    int bB;
141}
142
143class C extends B
144{
145    int cC;
146}
147
148class D extends C
149{
150    int dD;
151}
152
153}
154
155module MF
156{
157
158class A
159{
160    int aA;
161}
162
163class B extends A
164{
165    int bB;
166}
167
168class C extends B
169{
170    int cC;
171}
172
173class D extends C
174{
175    int dD;
176}
177
178}
179
180module MG
181{
182
183class A
184{
185    int aA;
186}
187
188class B extends A
189{
190    int bB;
191}
192
193class C extends B
194{
195    int cC;
196}
197
198class D extends C
199{
200    int dD;
201}
202
203}
204
205module MH
206{
207
208class A
209{
210    int aA;
211}
212
213class B extends A
214{
215    int bB;
216}
217
218class C extends B
219{
220    int cC;
221}
222
223class D extends C
224{
225    int dD;
226}
227
228}
229
230interface Echo
231{
232    void setConnection();
233    void startBatch();
234    void flushBatch();
235    void shutdown();
236}
237
238}
239