1#!/usr/bin/env python
2#
3# Copyright (c) ZeroC, Inc. All rights reserved.
4#
5
6from TestHelper import TestHelper
7TestHelper.loadSlice("Test.ice")
8import Ice
9import Test
10
11
12class InitialI(Test.Initial):
13
14    def shutdown(self, current=None):
15        current.adapter.getCommunicator().shutdown()
16
17    def pingPong(self, o, current=None):
18        return o
19
20    def opOptionalException(self, a, b, o, current=None):
21        raise Test.OptionalException(False, a, b, o)
22
23    def opDerivedException(self, a, b, o, current=None):
24        raise Test.DerivedException(False, a, b, o, b, o)
25
26    def opRequiredException(self, a, b, o, current=None):
27        e = Test.RequiredException()
28        e.a = a
29        e.b = b
30        e.o = o
31        if b is not Ice.Unset:
32            e.ss = b
33        if o is not Ice.Unset:
34            e.o2 = o
35        raise e
36
37    def opByte(self, p1, current=None):
38        return (p1, p1)
39
40    def opBool(self, p1, current=None):
41        return (p1, p1)
42
43    def opShort(self, p1, current=None):
44        return (p1, p1)
45
46    def opInt(self, p1, current=None):
47        return (p1, p1)
48
49    def opLong(self, p1, current=None):
50        return (p1, p1)
51
52    def opFloat(self, p1, current=None):
53        return (p1, p1)
54
55    def opDouble(self, p1, current=None):
56        return (p1, p1)
57
58    def opString(self, p1, current=None):
59        return (p1, p1)
60
61    def opMyEnum(self, p1, current=None):
62        return (p1, p1)
63
64    def opSmallStruct(self, p1, current=None):
65        return (p1, p1)
66
67    def opFixedStruct(self, p1, current=None):
68        return (p1, p1)
69
70    def opVarStruct(self, p1, current=None):
71        return (p1, p1)
72
73    def opOneOptional(self, p1, current=None):
74        return (p1, p1)
75
76    def opOneOptionalProxy(self, p1, current=None):
77        return (p1, p1)
78
79    def opByteSeq(self, p1, current=None):
80        return (p1, p1)
81
82    def opBoolSeq(self, p1, current=None):
83        return (p1, p1)
84
85    def opShortSeq(self, p1, current=None):
86        return (p1, p1)
87
88    def opIntSeq(self, p1, current=None):
89        return (p1, p1)
90
91    def opLongSeq(self, p1, current=None):
92        return (p1, p1)
93
94    def opFloatSeq(self, p1, current=None):
95        return (p1, p1)
96
97    def opDoubleSeq(self, p1, current=None):
98        return (p1, p1)
99
100    def opStringSeq(self, p1, current=None):
101        return (p1, p1)
102
103    def opSmallStructSeq(self, p1, current=None):
104        return (p1, p1)
105
106    def opSmallStructList(self, p1, current=None):
107        return (p1, p1)
108
109    def opFixedStructSeq(self, p1, current=None):
110        return (p1, p1)
111
112    def opFixedStructList(self, p1, current=None):
113        return (p1, p1)
114
115    def opVarStructSeq(self, p1, current=None):
116        return (p1, p1)
117
118    def opSerializable(self, p1, current=None):
119        return (p1, p1)
120
121    def opIntIntDict(self, p1, current=None):
122        return (p1, p1)
123
124    def opStringIntDict(self, p1, current=None):
125        return (p1, p1)
126
127    def opIntOneOptionalDict(self, p1, current=None):
128        return (p1, p1)
129
130    def opClassAndUnknownOptional(self, p, current=None):
131        pass
132
133    def sendOptionalClass(self, req, o, current=None):
134        pass
135
136    def returnOptionalClass(self, req, current=None):
137        return Test.OneOptional(53)
138
139    def opG(self, g, current=None):
140        return g
141
142    def opVoid(self, current=None):
143        pass
144
145    def opMStruct1(self, current):
146        return Test.Initial.OpMStruct1MarshaledResult(Test.SmallStruct(), current)
147
148    def opMStruct2(self, p1, current):
149        return Test.Initial.OpMStruct2MarshaledResult((p1, p1), current)
150
151    def opMSeq1(self, current):
152        return Test.Initial.OpMSeq1MarshaledResult([], current)
153
154    def opMSeq2(self, p1, current):
155        return Test.Initial.OpMSeq2MarshaledResult((p1, p1), current)
156
157    def opMDict1(self, current):
158        return Test.Initial.OpMDict1MarshaledResult({}, current)
159
160    def opMDict2(self, p1, current):
161        return Test.Initial.OpMDict2MarshaledResult((p1, p1), current)
162
163    def opMG1(self, current):
164        return Test.Initial.OpMG1MarshaledResult(Test.G(), current)
165
166    def opMG2(self, p1, current):
167        return Test.Initial.OpMG2MarshaledResult((p1, p1), current)
168
169    def supportsRequiredParams(self, current=None):
170        return False
171
172    def supportsJavaSerializable(self, current=None):
173        return True
174
175    def supportsCsharpSerializable(self, current=None):
176        return True
177
178    def supportsCppStringView(self, current=None):
179        return False
180
181    def supportsNullOptional(self, current=None):
182        return True
183
184
185class Server(TestHelper):
186
187    def run(self, args):
188        with self.initialize(args=args) as communicator:
189            communicator.getProperties().setProperty("TestAdapter.Endpoints", self.getTestEndpoint())
190            adapter = communicator.createObjectAdapter("TestAdapter")
191            initial = InitialI()
192            adapter.add(initial, Ice.stringToIdentity("initial"))
193            adapter.activate()
194
195            communicator.waitForShutdown()
196