1 //
2 // Copyright (c) ZeroC, Inc. All rights reserved.
3 //
4 
5 #include <Ice/Ice.h>
6 #include <TestI.h>
7 
8 using namespace Test;
9 using namespace IceUtil;
10 using namespace Ice;
11 using namespace std;
12 
InitialI()13 InitialI::InitialI()
14 {
15 }
16 
17 void
shutdown(const Current & current)18 InitialI::shutdown(const Current& current)
19 {
20     current.adapter->getCommunicator()->shutdown();
21 }
22 
23 #ifdef ICE_CPP11_MAPPING
24 Test::Initial::PingPongMarshaledResult
pingPong(shared_ptr<Value> obj,const Current & current)25 InitialI::pingPong(shared_ptr<Value> obj, const Current& current)
26 {
27     auto result = PingPongMarshaledResult(obj, current);
28     if(dynamic_pointer_cast<MultiOptional>(obj))
29     {
30         // Break cyclic reference count
31         dynamic_pointer_cast<MultiOptional>(obj)->k = shared_ptr<MultiOptional>();
32     }
33     return result;
34 }
35 #else
36 Ice::ValuePtr
pingPong(const Ice::ValuePtr & obj,const Current &)37 InitialI::pingPong(const Ice::ValuePtr& obj, const Current&)
38 {
39   return obj;
40 }
41 #endif
42 
43 void
opOptionalException(ICE_IN (Optional<Int>)a,ICE_IN (Optional<string>)b,ICE_IN (Optional<OneOptionalPtr>)o,const Ice::Current &)44 InitialI::opOptionalException(ICE_IN(Optional<Int>) a,
45                               ICE_IN(Optional<string>) b,
46                               ICE_IN(Optional<OneOptionalPtr>) o,
47                               const Ice::Current&)
48 {
49     OptionalException ex;
50     ex.a = a;
51     ex.b = b;
52     ex.o = o;
53     throw ex;
54 }
55 
56 void
opDerivedException(ICE_IN (Optional<Int>)a,ICE_IN (Optional<string>)b,ICE_IN (Optional<OneOptionalPtr>)o,const Ice::Current &)57 InitialI::opDerivedException(ICE_IN(Optional<Int>) a,
58                              ICE_IN(Optional<string>) b,
59                              ICE_IN(Optional<OneOptionalPtr>) o,
60                              const Ice::Current&)
61 {
62     DerivedException ex;
63     ex.a = a;
64     ex.b = b;
65     ex.o = o;
66     ex.ss = b;
67     ex.o2 = o;
68     throw ex;
69 }
70 
71 void
opRequiredException(ICE_IN (Optional<Int>)a,ICE_IN (Optional<string>)b,ICE_IN (Optional<OneOptionalPtr>)o,const Ice::Current &)72 InitialI::opRequiredException(ICE_IN(Optional<Int>) a,
73                               ICE_IN(Optional<string>) b,
74                               ICE_IN(Optional<OneOptionalPtr>) o,
75                               const Ice::Current&)
76 {
77     RequiredException ex;
78     ex.a = a;
79     ex.b = b;
80     ex.o = o;
81     if(b)
82     {
83         ex.ss = b.value();
84     }
85     if(o)
86     {
87         ex.o2 = o.value();
88     }
89     throw ex;
90 }
91 
92 Optional<Ice::Byte>
opByte(ICE_IN (Optional<Ice::Byte>)p1,Optional<Ice::Byte> & p3,const Current &)93 InitialI::opByte(ICE_IN(Optional<Ice::Byte>) p1, Optional<Ice::Byte>& p3, const Current&)
94 {
95     p3 = p1;
96     return p1;
97 }
98 
99 Optional<bool>
opBool(ICE_IN (Optional<bool>)p1,Optional<bool> & p3,const Current &)100 InitialI::opBool(ICE_IN(Optional<bool>) p1, Optional<bool>& p3, const Current&)
101 {
102     p3 = p1;
103     return p1;
104 }
105 
106 Optional<Short>
opShort(ICE_IN (Optional<Short>)p1,Optional<Short> & p3,const Current &)107 InitialI::opShort(ICE_IN(Optional<Short>) p1, Optional<Short>& p3, const Current&)
108 {
109     p3 = p1;
110     return p1;
111 }
112 
113 Optional<Int>
opInt(ICE_IN (Optional<Int>)p1,Optional<Int> & p3,const Current &)114 InitialI::opInt(ICE_IN(Optional<Int>) p1, Optional<Int>& p3, const Current&)
115 {
116     p3 = p1;
117     return p1;
118 }
119 
120 Optional<Long>
opLong(ICE_IN (Optional<Long>)p1,Optional<Long> & p3,const Current &)121 InitialI::opLong(ICE_IN(Optional<Long>) p1, Optional<Long>& p3, const Current&)
122 {
123     p3 = p1;
124     return p1;
125 }
126 
127 Optional<Float>
opFloat(ICE_IN (Optional<Float>)p1,Optional<Float> & p3,const Current &)128 InitialI::opFloat(ICE_IN(Optional<Float>) p1, Optional<Float>& p3, const Current&)
129 {
130     p3 = p1;
131     return p1;
132 }
133 
134 Optional<Double>
opDouble(ICE_IN (Optional<Double>)p1,Optional<Double> & p3,const Current &)135 InitialI::opDouble(ICE_IN(Optional<Double>) p1, Optional<Double>& p3, const Current&)
136 {
137     p3 = p1;
138     return p1;
139 }
140 
141 Optional<string>
opString(ICE_IN (Optional<string>)p1,Optional<string> & p3,const Current &)142 InitialI::opString(ICE_IN(Optional<string>) p1, Optional<string>& p3, const Current&)
143 {
144     p3 = p1;
145     return p1;
146 }
147 
148 Optional<string>
opCustomString(ICE_IN (Optional<Util::string_view>)p1,Optional<string> & p3,const Current &)149 InitialI::opCustomString(ICE_IN(Optional<Util::string_view>) p1, Optional<string>& p3, const Current&)
150 {
151     if(p1)
152     {
153         p3 = p1->to_string();
154     }
155     return p3;
156 }
157 
158 Optional<MyEnum>
opMyEnum(ICE_IN (Optional<MyEnum>)p1,Optional<MyEnum> & p3,const Current &)159 InitialI::opMyEnum(ICE_IN(Optional<MyEnum>) p1, Optional<MyEnum>& p3, const Current&)
160 {
161     p3 = p1;
162     return p1;
163 }
164 
165 Optional<SmallStruct>
opSmallStruct(ICE_IN (Optional<SmallStruct>)p1,Optional<SmallStruct> & p3,const Current &)166 InitialI::opSmallStruct(ICE_IN(Optional<SmallStruct>) p1, Optional<SmallStruct>& p3, const Current&)
167 {
168     p3 = p1;
169     return p1;
170 }
171 
172 Optional<FixedStruct>
opFixedStruct(ICE_IN (Optional<FixedStruct>)p1,Optional<FixedStruct> & p3,const Current &)173 InitialI::opFixedStruct(ICE_IN(Optional<FixedStruct>) p1, Optional<FixedStruct>& p3, const Current&)
174 {
175     p3 = p1;
176     return p1;
177 }
178 
179 Optional<VarStruct>
opVarStruct(ICE_IN (Optional<VarStruct>)p1,Optional<VarStruct> & p3,const Current &)180 InitialI::opVarStruct(ICE_IN(Optional<VarStruct>) p1, Optional<VarStruct>& p3, const Current&)
181 {
182     p3 = p1;
183     return p1;
184 }
185 
186 Optional<OneOptionalPtr>
opOneOptional(ICE_IN (Optional<OneOptionalPtr>)p1,Optional<OneOptionalPtr> & p3,const Current &)187 InitialI::opOneOptional(ICE_IN(Optional<OneOptionalPtr>) p1, Optional<OneOptionalPtr>& p3, const Current&)
188 {
189     p3 = p1;
190     return p1;
191 }
192 
193 Optional<OneOptionalPrxPtr>
opOneOptionalProxy(ICE_IN (Optional<OneOptionalPrxPtr>)p1,Optional<OneOptionalPrxPtr> & p3,const Current &)194 InitialI::opOneOptionalProxy(ICE_IN(Optional<OneOptionalPrxPtr>) p1, Optional<OneOptionalPrxPtr>& p3, const Current&)
195 {
196     p3 = p1;
197     return p1;
198 }
199 
200 Optional<Test::ByteSeq>
opByteSeq(ICE_IN (Optional<pair<const Ice::Byte *,const Ice::Byte * >>)p1,Optional<Test::ByteSeq> & p3,const Current &)201 InitialI::opByteSeq(ICE_IN(Optional<pair<const Ice::Byte*, const Ice::Byte*> >) p1, Optional<Test::ByteSeq>& p3,
202                     const Current&)
203 {
204     if(p1)
205     {
206         p3 = Ice::ByteSeq(p1->first, p1->second);
207     }
208     return p3;
209 }
210 
211 Optional<Test::BoolSeq>
opBoolSeq(ICE_IN (Optional<pair<const bool *,const bool * >>)p1,Optional<Test::BoolSeq> & p3,const Current &)212 InitialI::opBoolSeq(ICE_IN(Optional<pair<const bool*, const bool*> >) p1, Optional<Test::BoolSeq>& p3, const Current&)
213 {
214     if(p1)
215     {
216         p3 = Ice::BoolSeq(p1->first, p1->second);
217     }
218     return p3;
219 }
220 
221 Optional<Test::ShortSeq>
opShortSeq(ICE_IN (Optional<pair<const Short *,const Short * >>)p1,Optional<Test::ShortSeq> & p3,const Current &)222 InitialI::opShortSeq(ICE_IN(Optional<pair<const Short*, const Short*> >) p1, Optional<Test::ShortSeq>& p3,
223                      const Current&)
224 {
225     if(p1)
226     {
227         p3 = Ice::ShortSeq(p1->first, p1->second);
228     }
229     return p3;
230 }
231 
232 Optional<Test::IntSeq>
opIntSeq(ICE_IN (Optional<pair<const Int *,const Int * >>)p1,Optional<Test::IntSeq> & p3,const Current &)233 InitialI::opIntSeq(ICE_IN(Optional<pair<const Int*, const Int*> >) p1, Optional<Test::IntSeq>& p3, const Current&)
234 {
235     if(p1)
236     {
237         p3 = Test::IntSeq(p1->first, p1->second);
238     }
239     return p3;
240 }
241 
242 Optional<Test::LongSeq>
opLongSeq(ICE_IN (Optional<pair<const Long *,const Long * >>)p1,Optional<Test::LongSeq> & p3,const Current &)243 InitialI::opLongSeq(ICE_IN(Optional<pair<const Long*, const Long*> >) p1, Optional<Test::LongSeq>& p3, const Current&)
244 {
245     if(p1)
246     {
247         p3 = Test::LongSeq(p1->first, p1->second);
248     }
249     return p3;
250 }
251 
252 Optional<Test::FloatSeq>
opFloatSeq(ICE_IN (Optional<pair<const Float *,const Float * >>)p1,Optional<Test::FloatSeq> & p3,const Current &)253 InitialI::opFloatSeq(ICE_IN(Optional<pair<const Float*, const Float*> >) p1, Optional<Test::FloatSeq>& p3,
254                      const Current&)
255 {
256     if(p1)
257     {
258         p3 = Test::FloatSeq(p1->first, p1->second);
259     }
260     return p3;
261 }
262 
263 Optional<Test::DoubleSeq>
opDoubleSeq(ICE_IN (Optional<pair<const Double *,const Double * >>)p1,Optional<Test::DoubleSeq> & p3,const Current &)264 InitialI::opDoubleSeq(ICE_IN(Optional<pair<const Double*, const Double*> >) p1, Optional<Test::DoubleSeq>& p3,
265                       const Current&)
266 {
267     if(p1)
268     {
269         p3 = Test::DoubleSeq(p1->first, p1->second);
270     }
271     return p3;
272 }
273 
274 #ifdef ICE_CPP11_MAPPING
275 Ice::optional<Ice::StringSeq>
opStringSeq(Ice::optional<Ice::StringSeq> p1,Ice::optional<Ice::StringSeq> & p3,const Current &)276 InitialI::opStringSeq(Ice::optional<Ice::StringSeq> p1,
277                       Ice::optional<Ice::StringSeq>& p3, const Current&)
278 {
279     if(p1)
280     {
281         p3 = p1;
282     }
283     return p3;
284 }
285 #else
286 Optional<Ice::StringSeq>
opStringSeq(const Optional<pair<Ice::StringSeq::const_iterator,Ice::StringSeq::const_iterator>> & p1,Optional<Ice::StringSeq> & p3,const Current &)287 InitialI::opStringSeq(const Optional<pair<Ice::StringSeq::const_iterator, Ice::StringSeq::const_iterator> >& p1,
288                       Optional<Ice::StringSeq>& p3, const Current&)
289 {
290     if(p1)
291     {
292         p3 = Ice::StringSeq(p1->first, p1->second);
293     }
294     return p3;
295 }
296 #endif
297 
298 Optional<SmallStructSeq>
opSmallStructSeq(ICE_IN (Optional<pair<const SmallStruct *,const SmallStruct * >>)p1,Optional<SmallStructSeq> & p3,const Current &)299 InitialI::opSmallStructSeq(ICE_IN(Optional<pair<const SmallStruct*, const SmallStruct*> >) p1,
300                            Optional<SmallStructSeq>& p3, const Current&)
301 {
302     if(p1)
303     {
304         p3 = SmallStructSeq(p1->first, p1->second);
305     }
306     return p3;
307 }
308 
309 Optional<SmallStructList>
opSmallStructList(ICE_IN (Optional<pair<const SmallStruct *,const SmallStruct * >>)p1,Optional<SmallStructList> & p3,const Current &)310 InitialI::opSmallStructList(ICE_IN(Optional<pair<const SmallStruct*, const SmallStruct*> >) p1,
311                             Optional<SmallStructList>& p3, const Current&)
312 {
313     if(p1)
314     {
315         p3 = SmallStructList(p1->first, p1->second);
316     }
317     return p3;
318 }
319 
320 Optional<FixedStructSeq>
opFixedStructSeq(ICE_IN (Optional<pair<const FixedStruct *,const FixedStruct * >>)p1,Optional<FixedStructSeq> & p3,const Current &)321 InitialI::opFixedStructSeq(ICE_IN(Optional<pair<const FixedStruct*, const FixedStruct*> >) p1,
322                            Optional<FixedStructSeq>& p3, const Current&)
323 {
324     if(p1)
325     {
326         p3 = FixedStructSeq(p1->first, p1->second);
327     }
328     return p3;
329 }
330 
331 Optional<FixedStructList>
opFixedStructList(ICE_IN (Optional<pair<const FixedStruct *,const FixedStruct * >>)p1,Optional<FixedStructList> & p3,const Current &)332 InitialI::opFixedStructList(ICE_IN(Optional<pair<const FixedStruct*, const FixedStruct*> >) p1,
333                             Optional<FixedStructList>& p3, const Current&)
334 {
335     if(p1)
336     {
337         p3 = FixedStructList(p1->first, p1->second);
338     }
339     return p3;
340 }
341 
342 #ifdef ICE_CPP11_MAPPING
343 Ice::optional<VarStructSeq>
opVarStructSeq(Ice::optional<VarStructSeq> p1,Ice::optional<VarStructSeq> & p3,const Current &)344 InitialI::opVarStructSeq(Ice::optional<VarStructSeq> p1,
345                          Ice::optional<VarStructSeq>& p3, const Current&)
346 {
347     if(p1)
348     {
349         p3 = p1;
350     }
351     return p3;
352 }
353 #else
354 Optional<VarStructSeq>
opVarStructSeq(const Optional<pair<VarStructSeq::const_iterator,VarStructSeq::const_iterator>> & p1,Optional<VarStructSeq> & p3,const Current &)355 InitialI::opVarStructSeq(const Optional<pair<VarStructSeq::const_iterator, VarStructSeq::const_iterator> >& p1,
356                          Optional<VarStructSeq>& p3, const Current&)
357 {
358     if(p1)
359     {
360         p3 = VarStructSeq(p1->first, p1->second);
361     }
362     return p3;
363 }
364 #endif
365 
366 Optional<Serializable>
opSerializable(ICE_IN (Optional<Serializable>)p1,Optional<Serializable> & p3,const Current &)367 InitialI::opSerializable(ICE_IN(Optional<Serializable>) p1, Optional<Serializable>& p3, const Current&)
368 {
369     p3 = p1;
370     return p3;
371 }
372 
373 Optional<IntIntDict>
opIntIntDict(ICE_IN (Optional<IntIntDict>)p1,Optional<IntIntDict> & p3,const Current &)374 InitialI::opIntIntDict(ICE_IN(Optional<IntIntDict>) p1, Optional<IntIntDict>& p3, const Current&)
375 {
376     p3 = p1;
377     return p3;
378 }
379 
380 Optional<StringIntDict>
opStringIntDict(ICE_IN (Optional<StringIntDict>)p1,Optional<StringIntDict> & p3,const Current &)381 InitialI::opStringIntDict(ICE_IN(Optional<StringIntDict>) p1, Optional<StringIntDict>& p3, const Current&)
382 {
383     p3 = p1;
384     return p3;
385 }
386 
387 Optional<IntOneOptionalDict>
opIntOneOptionalDict(ICE_IN (Optional<IntOneOptionalDict>)p1,Optional<IntOneOptionalDict> & p3,const Current &)388 InitialI::opIntOneOptionalDict(ICE_IN(Optional<IntOneOptionalDict>) p1, Optional<IntOneOptionalDict>& p3, const Current&)
389 {
390     p3 = p1;
391     return p3;
392 }
393 
394 Optional<IntStringDict>
opCustomIntStringDict(ICE_IN (Optional<std::map<int,Util::string_view>>)p1,Optional<IntStringDict> & p3,const Current &)395 InitialI::opCustomIntStringDict(ICE_IN(Optional<std::map<int, Util::string_view> >) p1,
396                                 Optional<IntStringDict>& p3, const Current&)
397 {
398     if(p1)
399     {
400         p3 = IntStringDict();
401         for(std::map<int, Util::string_view>::const_iterator p = p1->begin();
402             p != p1->end(); ++p)
403         {
404             (*p3)[p->first] = p->second.to_string();
405         }
406     }
407     return p3;
408 }
409 
410 void
opClassAndUnknownOptional(ICE_IN (APtr),const Ice::Current &)411 InitialI::opClassAndUnknownOptional(ICE_IN(APtr), const Ice::Current&)
412 {
413 }
414 
415 void
sendOptionalClass(bool,ICE_IN (Optional<OneOptionalPtr>),const Ice::Current &)416 InitialI::sendOptionalClass(bool, ICE_IN(Optional<OneOptionalPtr>), const Ice::Current&)
417 {
418 }
419 
420 void
returnOptionalClass(bool,Optional<OneOptionalPtr> & o,const Ice::Current &)421 InitialI::returnOptionalClass(bool, Optional<OneOptionalPtr>& o, const Ice::Current&)
422 {
423     o = ICE_MAKE_SHARED(OneOptional, 53);
424 }
425 
426 GPtr
opG(ICE_IN (GPtr)g,const Ice::Current &)427 InitialI::opG(ICE_IN(GPtr) g, const Ice::Current&)
428 {
429     return g;
430 }
431 
432 void
opVoid(const Ice::Current &)433 InitialI::opVoid(const Ice::Current&)
434 {
435 }
436 
437 #ifdef ICE_CPP11_MAPPING
438 InitialI::OpMStruct1MarshaledResult
opMStruct1(const Ice::Current & current)439 InitialI::opMStruct1(const Ice::Current& current)
440 {
441     return OpMStruct1MarshaledResult(Test::SmallStruct(), current);
442 }
443 
444 InitialI::OpMStruct2MarshaledResult
opMStruct2(ICE_IN (IceUtil::Optional<Test::SmallStruct>)p1,const Ice::Current & current)445 InitialI::opMStruct2(ICE_IN(IceUtil::Optional<Test::SmallStruct>) p1, const Ice::Current& current)
446 {
447     return OpMStruct2MarshaledResult(p1, p1, current);
448 }
449 
450 InitialI::OpMSeq1MarshaledResult
opMSeq1(const Ice::Current & current)451 InitialI::opMSeq1(const Ice::Current& current)
452 {
453     return OpMSeq1MarshaledResult(Test::StringSeq(), current);
454 }
455 
456 InitialI::OpMSeq2MarshaledResult
opMSeq2(ICE_IN (IceUtil::Optional<Test::StringSeq>)p1,const Ice::Current & current)457 InitialI::opMSeq2(ICE_IN(IceUtil::Optional<Test::StringSeq>) p1, const Ice::Current& current)
458 {
459     return OpMSeq2MarshaledResult(p1, p1, current);
460 }
461 
462 InitialI::OpMDict1MarshaledResult
opMDict1(const Ice::Current & current)463 InitialI::opMDict1(const Ice::Current& current)
464 {
465     return OpMDict1MarshaledResult(Test::StringIntDict(), current);
466 }
467 
468 InitialI::OpMDict2MarshaledResult
opMDict2(ICE_IN (IceUtil::Optional<Test::StringIntDict>)p1,const Ice::Current & current)469 InitialI::opMDict2(ICE_IN(IceUtil::Optional<Test::StringIntDict>) p1, const Ice::Current& current)
470 {
471     return OpMDict2MarshaledResult(p1, p1, current);
472 }
473 
474 InitialI::OpMG1MarshaledResult
opMG1(const Ice::Current & current)475 InitialI::opMG1(const Ice::Current& current)
476 {
477     return OpMG1MarshaledResult(ICE_MAKE_SHARED(G), current);
478 }
479 
480 InitialI::OpMG2MarshaledResult
opMG2(ICE_IN (IceUtil::Optional<Test::GPtr>)p1,const Ice::Current & current)481 InitialI::opMG2(ICE_IN(IceUtil::Optional<Test::GPtr>) p1, const Ice::Current& current)
482 {
483     return OpMG2MarshaledResult(p1, p1, current);
484 }
485 #else
486 IceUtil::Optional<Test::SmallStruct>
opMStruct1(const Ice::Current &)487 InitialI::opMStruct1(const Ice::Current&)
488 {
489     return Test::SmallStruct();
490 }
491 
492 IceUtil::Optional<Test::SmallStruct>
opMStruct2(ICE_IN (IceUtil::Optional<Test::SmallStruct>)p1,IceUtil::Optional<Test::SmallStruct> & p2,const Ice::Current &)493 InitialI::opMStruct2(ICE_IN(IceUtil::Optional<Test::SmallStruct>) p1,
494                      IceUtil::Optional<Test::SmallStruct>& p2,
495                      const Ice::Current&)
496 {
497     p2 = p1;
498     return p1;
499 }
500 
501 IceUtil::Optional<Test::StringSeq>
opMSeq1(const Ice::Current &)502 InitialI::opMSeq1(const Ice::Current&)
503 {
504     return Test::StringSeq();
505 }
506 
507 IceUtil::Optional<Test::StringSeq>
opMSeq2(ICE_IN (IceUtil::Optional<Test::StringSeq>)p1,IceUtil::Optional<Test::StringSeq> & p2,const Ice::Current &)508 InitialI::opMSeq2(ICE_IN(IceUtil::Optional<Test::StringSeq>) p1,
509                   IceUtil::Optional<Test::StringSeq>& p2,
510                   const Ice::Current&)
511 {
512     p2 = p1;
513     return p1;
514 }
515 
516 IceUtil::Optional<Test::StringIntDict>
opMDict1(const Ice::Current &)517 InitialI::opMDict1(const Ice::Current&)
518 {
519     return Test::StringIntDict();
520 }
521 
522 IceUtil::Optional<Test::StringIntDict>
opMDict2(ICE_IN (IceUtil::Optional<Test::StringIntDict>)p1,IceUtil::Optional<Test::StringIntDict> & p2,const Ice::Current &)523 InitialI::opMDict2(ICE_IN(IceUtil::Optional<Test::StringIntDict>) p1,
524                    IceUtil::Optional<Test::StringIntDict>& p2,
525                    const Ice::Current&)
526 {
527     p2 = p1;
528     return p1;
529 }
530 
531 IceUtil::Optional<Test::GPtr>
opMG1(const Ice::Current &)532 InitialI::opMG1(const Ice::Current&)
533 {
534     return ICE_MAKE_SHARED(G);
535 }
536 
537 IceUtil::Optional<Test::GPtr>
opMG2(ICE_IN (IceUtil::Optional<Test::GPtr>)p1,IceUtil::Optional<Test::GPtr> & p2,const Ice::Current &)538 InitialI::opMG2(ICE_IN(IceUtil::Optional<Test::GPtr>) p1,
539                 IceUtil::Optional<Test::GPtr>& p2,
540                 const Ice::Current&)
541 {
542     p2 = p1;
543     return p1;
544 }
545 #endif
546 
547 bool
supportsRequiredParams(const Ice::Current &)548 InitialI::supportsRequiredParams(const Ice::Current&)
549 {
550     return false;
551 }
552 
553 bool
supportsJavaSerializable(const Ice::Current &)554 InitialI::supportsJavaSerializable(const Ice::Current&)
555 {
556     return true;
557 }
558 
559 bool
supportsCsharpSerializable(const Ice::Current &)560 InitialI::supportsCsharpSerializable(const Ice::Current&)
561 {
562     return true;
563 }
564 
565 bool
supportsCppStringView(const Ice::Current &)566 InitialI::supportsCppStringView(const Ice::Current&)
567 {
568     return true;
569 }
570 
571 bool
supportsNullOptional(const Ice::Current &)572 InitialI::supportsNullOptional(const Ice::Current&)
573 {
574     return true;
575 }
576