1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5#import <optional/TestI.h>
6#import <objc/Ice.h>
7
8#import <Foundation/NSThread.h>
9
10@implementation InitialI
11-(void) shutdown:(ICECurrent*)current
12{
13    [[current.adapter getCommunicator] shutdown];
14}
15-(ICEObject*) pingPong:(ICEObject*)obj current:(ICECurrent*)__unused current
16{
17    return obj;
18}
19-(void) opOptionalException:(id)a b:(id)b o:(id)o current:(ICECurrent *)__unused current
20{
21    @throw [TestOptionalOptionalException optionalException:NO a:a b:b o:o];
22}
23-(void) opDerivedException:(id)a b:(id)b o:(id)o current:(ICECurrent *)__unused current
24{
25    @throw [TestOptionalDerivedException derivedException:NO a:a b:b o:o ss:b o2:o];
26}
27-(void) opRequiredException:(id)a b:(id)b o:(id)o current:(ICECurrent *)__unused current
28{
29    TestOptionalRequiredException* ex = [TestOptionalRequiredException requiredException];
30    if(a != ICENone)
31    {
32        ex.a = [a intValue];
33    }
34    else
35    {
36        [ex clearA];
37    }
38    if(b != ICENone)
39    {
40        ex.b = b;
41    }
42    else
43    {
44        [ex clearB];
45    }
46    if(o != ICENone)
47    {
48        ex.o = o;
49        ex.o2 = o;
50    }
51    else
52    {
53        [ex clearO];
54    }
55    if(b != ICENone)
56    {
57        ex.ss = b;
58    }
59    @throw ex;
60}
61-(id) opByte:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
62{
63    *p3 = p1;
64    return p1;
65}
66-(id) opBool:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
67{
68    *p3 = p1;
69    return p1;
70}
71-(id) opShort:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
72{
73    *p3 = p1;
74    return p1;
75}
76-(id) opInt:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
77{
78    *p3 = p1;
79    return p1;
80}
81-(id) opLong:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
82{
83    *p3 = p1;
84    return p1;
85}
86-(id) opFloat:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
87{
88    *p3 = p1;
89    return p1;
90}
91-(id) opDouble:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
92{
93    *p3 = p1;
94    return p1;
95}
96-(id) opString:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
97{
98    *p3 = p1;
99    return p1;
100}
101-(id) opMyEnum:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
102{
103    *p3 = p1;
104    return p1;
105}
106-(id) opSmallStruct:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
107{
108    *p3 = p1;
109    return p1;
110}
111-(id) opFixedStruct:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
112{
113    *p3 = p1;
114    return p1;
115}
116-(id) opVarStruct:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
117{
118    *p3 = p1;
119    return p1;
120}
121-(id) opOneOptional:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
122{
123    *p3 = p1;
124    return p1;
125}
126-(id) opOneOptionalProxy:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
127{
128    *p3 = p1;
129    return p1;
130}
131-(id) opByteSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
132{
133    *p3 = p1;
134    return p1;
135}
136-(id) opBoolSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
137{
138    *p3 = p1;
139    return p1;
140}
141-(id) opShortSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
142{
143    *p3 = p1;
144    return p1;
145}
146-(id) opIntSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
147{
148    *p3 = p1;
149    return p1;
150}
151-(id) opLongSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
152{
153    *p3 = p1;
154    return p1;
155}
156-(id) opFloatSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
157{
158    *p3 = p1;
159    return p1;
160}
161-(id) opDoubleSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
162{
163    *p3 = p1;
164    return p1;
165}
166-(id) opStringSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
167{
168    *p3 = p1;
169    return p1;
170}
171-(id) opSmallStructSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
172{
173    *p3 = p1;
174    return p1;
175}
176-(id) opSmallStructList:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
177{
178    *p3 = p1;
179    return p1;
180}
181-(id) opFixedStructSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
182{
183    *p3 = p1;
184    return p1;
185}
186-(id) opFixedStructList:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
187{
188    *p3 = p1;
189    return p1;
190}
191-(id) opVarStructSeq:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
192{
193    *p3 = p1;
194    return p1;
195}
196-(id) opSerializable:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
197{
198    *p3 = p1;
199    return p1;
200}
201-(id) opIntIntDict:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
202{
203    *p3 = p1;
204    return p1;
205}
206-(id) opStringIntDict:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
207{
208    *p3 = p1;
209    return p1;
210}
211-(id) opIntOneOptionalDict:(id)p1 p3:(id *)p3 current:(ICECurrent *)__unused current
212{
213    *p3 = p1;
214    return p1;
215}
216-(void) opClassAndUnknownOptional:(TestOptionalA *)__unused p current:(ICECurrent *)__unused current
217{
218}
219-(void) sendOptionalClass:(BOOL)__unused req o:(id)__unused o current:(ICECurrent *)__unused current
220{
221}
222-(void) returnOptionalClass:(BOOL)__unused req o:(id *)o current:(ICECurrent *)__unused current
223{
224    *o = [TestOptionalOneOptional oneOptional:@53];
225}
226-(id) opG:(id)g current:(ICECurrent*)__unused current
227{
228    return g;
229}
230-(void) opVoid:(ICECurrent*)__unused current
231{
232}
233-(id) opMStruct1:(ICECurrent *)__unused current
234{
235    return [TestOptionalSmallStruct smallStruct];
236}
237-(id) opMStruct2:(id)p1 p2:(id*)p2 current:(ICECurrent *)__unused current
238{
239    *p2 = p1;
240    return p1;
241}
242-(id) opMSeq1:(ICECurrent *)__unused current
243{
244    return [TestOptionalStringSeq array];
245}
246-(id) opMSeq2:(id)p1 p2:(id*)p2 current:(ICECurrent *)__unused current
247{
248    *p2 = p1;
249    return p1;
250}
251-(id) opMDict1:(ICECurrent *)__unused current
252{
253    return [TestOptionalStringIntDict dictionary];
254}
255-(id) opMDict2:(id)p1 p2:(id*)p2 current:(ICECurrent *)__unused current
256{
257    *p2 = p1;
258    return p1;
259}
260-(id) opMG1:(ICECurrent *)__unused current
261{
262    return [TestOptionalG g];
263}
264-(id) opMG2:(id)p1 p2:(id*)p2 current:(ICECurrent *)__unused current
265{
266    *p2 = p1;
267    return p1;
268}
269-(BOOL) supportsRequiredParams:(ICECurrent*)__unused current
270{
271    return NO;
272}
273-(BOOL) supportsJavaSerializable:(ICECurrent*)__unused current
274{
275    return NO;
276}
277-(BOOL) supportsCsharpSerializable:(ICECurrent*)__unused current
278{
279    return NO;
280}
281-(BOOL) supportsCppStringView:(ICECurrent*)__unused current
282{
283    return NO;
284}
285-(BOOL) supportsNullOptional:(ICECurrent*)__unused current
286{
287    return YES;
288}
289
290@end
291