blob: c1dc0dca21247a404dc1ea4e09b55bf655171a8d [file] [log] [blame]
Jiri Simsa67b8a262015-03-24 21:14:07 -07001// Copyright 2015 The Vanadium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
Suharsh Sivakumara4ac50a2015-03-13 16:13:50 -07005// This file was auto-generated by the vanadium vdl tool.
Matt Rosencrantzbca49812015-03-01 21:32:54 -08006// Source: test_base.vdl
7
Todd Wang14f901a2015-03-27 13:37:47 -07008package internal
Matt Rosencrantzbca49812015-03-01 21:32:54 -08009
10import (
11 // VDL system imports
12 "io"
13 "v.io/v23"
14 "v.io/v23/context"
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070015 "v.io/v23/rpc"
Matt Rosencrantzbca49812015-03-01 21:32:54 -080016 "v.io/v23/vdl"
17)
18
19type Struct struct {
20 X int32
21 Y int32
22}
23
24func (Struct) __VDLReflect(struct {
Suharsh Sivakumar071d1c82015-05-08 14:45:10 -070025 Name string `vdl:"v.io/x/ref/cmd/vrpc/internal.Struct"`
Matt Rosencrantzbca49812015-03-01 21:32:54 -080026}) {
27}
28
29type Array2Int [2]int32
30
31func (Array2Int) __VDLReflect(struct {
Suharsh Sivakumar071d1c82015-05-08 14:45:10 -070032 Name string `vdl:"v.io/x/ref/cmd/vrpc/internal.Array2Int"`
Matt Rosencrantzbca49812015-03-01 21:32:54 -080033}) {
34}
35
36func init() {
37 vdl.Register((*Struct)(nil))
38 vdl.Register((*Array2Int)(nil))
39}
40
41// TypeTesterClientMethods is the client interface
42// containing TypeTester methods.
43//
44// TypeTester methods are listed in alphabetical order, to make it easier to
45// test Signature output, which sorts methods alphabetically.
46type TypeTesterClientMethods interface {
47 // Methods to test support for primitive types.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070048 EchoBool(ctx *context.T, I1 bool, opts ...rpc.CallOpt) (O1 bool, err error)
49 EchoFloat32(ctx *context.T, I1 float32, opts ...rpc.CallOpt) (O1 float32, err error)
50 EchoFloat64(ctx *context.T, I1 float64, opts ...rpc.CallOpt) (O1 float64, err error)
51 EchoInt32(ctx *context.T, I1 int32, opts ...rpc.CallOpt) (O1 int32, err error)
52 EchoInt64(ctx *context.T, I1 int64, opts ...rpc.CallOpt) (O1 int64, err error)
53 EchoString(ctx *context.T, I1 string, opts ...rpc.CallOpt) (O1 string, err error)
54 EchoByte(ctx *context.T, I1 byte, opts ...rpc.CallOpt) (O1 byte, err error)
55 EchoUint32(ctx *context.T, I1 uint32, opts ...rpc.CallOpt) (O1 uint32, err error)
56 EchoUint64(ctx *context.T, I1 uint64, opts ...rpc.CallOpt) (O1 uint64, err error)
Matt Rosencrantzbca49812015-03-01 21:32:54 -080057 // Methods to test support for composite types.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070058 XEchoArray(ctx *context.T, I1 Array2Int, opts ...rpc.CallOpt) (O1 Array2Int, err error)
59 XEchoMap(ctx *context.T, I1 map[int32]string, opts ...rpc.CallOpt) (O1 map[int32]string, err error)
60 XEchoSet(ctx *context.T, I1 map[int32]struct{}, opts ...rpc.CallOpt) (O1 map[int32]struct{}, err error)
61 XEchoSlice(ctx *context.T, I1 []int32, opts ...rpc.CallOpt) (O1 []int32, err error)
62 XEchoStruct(ctx *context.T, I1 Struct, opts ...rpc.CallOpt) (O1 Struct, err error)
Matt Rosencrantzbca49812015-03-01 21:32:54 -080063 // Methods to test support for different number of arguments.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070064 YMultiArg(ctx *context.T, I1 int32, I2 int32, opts ...rpc.CallOpt) (O1 int32, O2 int32, err error)
65 YNoArgs(*context.T, ...rpc.CallOpt) error
Matt Rosencrantzbca49812015-03-01 21:32:54 -080066 // Methods to test support for streaming.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070067 ZStream(ctx *context.T, NumStreamItems int32, StreamItem bool, opts ...rpc.CallOpt) (TypeTesterZStreamClientCall, error)
Matt Rosencrantzbca49812015-03-01 21:32:54 -080068}
69
70// TypeTesterClientStub adds universal methods to TypeTesterClientMethods.
71type TypeTesterClientStub interface {
72 TypeTesterClientMethods
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070073 rpc.UniversalServiceMethods
Matt Rosencrantzbca49812015-03-01 21:32:54 -080074}
75
76// TypeTesterClient returns a client stub for TypeTester.
Asim Shankar69fa69f2015-04-01 11:34:32 -070077func TypeTesterClient(name string) TypeTesterClientStub {
78 return implTypeTesterClientStub{name}
Matt Rosencrantzbca49812015-03-01 21:32:54 -080079}
80
81type implTypeTesterClientStub struct {
Asim Shankar69fa69f2015-04-01 11:34:32 -070082 name string
Matt Rosencrantzbca49812015-03-01 21:32:54 -080083}
84
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070085func (c implTypeTesterClientStub) EchoBool(ctx *context.T, i0 bool, opts ...rpc.CallOpt) (o0 bool, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -070086 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoBool", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -080087 return
88}
89
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070090func (c implTypeTesterClientStub) EchoFloat32(ctx *context.T, i0 float32, opts ...rpc.CallOpt) (o0 float32, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -070091 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoFloat32", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -080092 return
93}
94
Matt Rosencrantz94502cf2015-03-18 09:43:44 -070095func (c implTypeTesterClientStub) EchoFloat64(ctx *context.T, i0 float64, opts ...rpc.CallOpt) (o0 float64, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -070096 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoFloat64", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -080097 return
98}
99
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700100func (c implTypeTesterClientStub) EchoInt32(ctx *context.T, i0 int32, opts ...rpc.CallOpt) (o0 int32, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700101 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoInt32", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800102 return
103}
104
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700105func (c implTypeTesterClientStub) EchoInt64(ctx *context.T, i0 int64, opts ...rpc.CallOpt) (o0 int64, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700106 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoInt64", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800107 return
108}
109
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700110func (c implTypeTesterClientStub) EchoString(ctx *context.T, i0 string, opts ...rpc.CallOpt) (o0 string, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700111 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoString", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800112 return
113}
114
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700115func (c implTypeTesterClientStub) EchoByte(ctx *context.T, i0 byte, opts ...rpc.CallOpt) (o0 byte, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700116 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoByte", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800117 return
118}
119
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700120func (c implTypeTesterClientStub) EchoUint32(ctx *context.T, i0 uint32, opts ...rpc.CallOpt) (o0 uint32, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700121 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoUint32", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800122 return
123}
124
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700125func (c implTypeTesterClientStub) EchoUint64(ctx *context.T, i0 uint64, opts ...rpc.CallOpt) (o0 uint64, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700126 err = v23.GetClient(ctx).Call(ctx, c.name, "EchoUint64", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800127 return
128}
129
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700130func (c implTypeTesterClientStub) XEchoArray(ctx *context.T, i0 Array2Int, opts ...rpc.CallOpt) (o0 Array2Int, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700131 err = v23.GetClient(ctx).Call(ctx, c.name, "XEchoArray", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800132 return
133}
134
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700135func (c implTypeTesterClientStub) XEchoMap(ctx *context.T, i0 map[int32]string, opts ...rpc.CallOpt) (o0 map[int32]string, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700136 err = v23.GetClient(ctx).Call(ctx, c.name, "XEchoMap", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800137 return
138}
139
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700140func (c implTypeTesterClientStub) XEchoSet(ctx *context.T, i0 map[int32]struct{}, opts ...rpc.CallOpt) (o0 map[int32]struct{}, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700141 err = v23.GetClient(ctx).Call(ctx, c.name, "XEchoSet", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800142 return
143}
144
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700145func (c implTypeTesterClientStub) XEchoSlice(ctx *context.T, i0 []int32, opts ...rpc.CallOpt) (o0 []int32, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700146 err = v23.GetClient(ctx).Call(ctx, c.name, "XEchoSlice", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800147 return
148}
149
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700150func (c implTypeTesterClientStub) XEchoStruct(ctx *context.T, i0 Struct, opts ...rpc.CallOpt) (o0 Struct, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700151 err = v23.GetClient(ctx).Call(ctx, c.name, "XEchoStruct", []interface{}{i0}, []interface{}{&o0}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800152 return
153}
154
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700155func (c implTypeTesterClientStub) YMultiArg(ctx *context.T, i0 int32, i1 int32, opts ...rpc.CallOpt) (o0 int32, o1 int32, err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700156 err = v23.GetClient(ctx).Call(ctx, c.name, "YMultiArg", []interface{}{i0, i1}, []interface{}{&o0, &o1}, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800157 return
158}
159
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700160func (c implTypeTesterClientStub) YNoArgs(ctx *context.T, opts ...rpc.CallOpt) (err error) {
Suharsh Sivakumardf2672a2015-04-09 19:26:43 -0700161 err = v23.GetClient(ctx).Call(ctx, c.name, "YNoArgs", nil, nil, opts...)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800162 return
163}
164
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700165func (c implTypeTesterClientStub) ZStream(ctx *context.T, i0 int32, i1 bool, opts ...rpc.CallOpt) (ocall TypeTesterZStreamClientCall, err error) {
166 var call rpc.ClientCall
Asim Shankar69fa69f2015-04-01 11:34:32 -0700167 if call, err = v23.GetClient(ctx).StartCall(ctx, c.name, "ZStream", []interface{}{i0, i1}, opts...); err != nil {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800168 return
169 }
170 ocall = &implTypeTesterZStreamClientCall{ClientCall: call}
171 return
172}
173
174// TypeTesterZStreamClientStream is the client stream for TypeTester.ZStream.
175type TypeTesterZStreamClientStream interface {
176 // RecvStream returns the receiver side of the TypeTester.ZStream client stream.
177 RecvStream() interface {
178 // Advance stages an item so that it may be retrieved via Value. Returns
179 // true iff there is an item to retrieve. Advance must be called before
180 // Value is called. May block if an item is not available.
181 Advance() bool
182 // Value returns the item that was staged by Advance. May panic if Advance
183 // returned false or was not called. Never blocks.
184 Value() bool
185 // Err returns any error encountered by Advance. Never blocks.
186 Err() error
187 }
188}
189
190// TypeTesterZStreamClientCall represents the call returned from TypeTester.ZStream.
191type TypeTesterZStreamClientCall interface {
192 TypeTesterZStreamClientStream
193 // Finish blocks until the server is done, and returns the positional return
194 // values for call.
195 //
196 // Finish returns immediately if the call has been canceled; depending on the
197 // timing the output could either be an error signaling cancelation, or the
198 // valid positional return values from the server.
199 //
200 // Calling Finish is mandatory for releasing stream resources, unless the call
201 // has been canceled or any of the other methods return an error. Finish should
202 // be called at most once.
203 Finish() error
204}
205
206type implTypeTesterZStreamClientCall struct {
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700207 rpc.ClientCall
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800208 valRecv bool
209 errRecv error
210}
211
212func (c *implTypeTesterZStreamClientCall) RecvStream() interface {
213 Advance() bool
214 Value() bool
215 Err() error
216} {
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800217 return implTypeTesterZStreamClientCallRecv{c}
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800218}
219
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800220type implTypeTesterZStreamClientCallRecv struct {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800221 c *implTypeTesterZStreamClientCall
222}
223
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800224func (c implTypeTesterZStreamClientCallRecv) Advance() bool {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800225 c.c.errRecv = c.c.Recv(&c.c.valRecv)
226 return c.c.errRecv == nil
227}
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800228func (c implTypeTesterZStreamClientCallRecv) Value() bool {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800229 return c.c.valRecv
230}
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800231func (c implTypeTesterZStreamClientCallRecv) Err() error {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800232 if c.c.errRecv == io.EOF {
233 return nil
234 }
235 return c.c.errRecv
236}
237func (c *implTypeTesterZStreamClientCall) Finish() (err error) {
238 err = c.ClientCall.Finish()
239 return
240}
241
242// TypeTesterServerMethods is the interface a server writer
243// implements for TypeTester.
244//
245// TypeTester methods are listed in alphabetical order, to make it easier to
246// test Signature output, which sorts methods alphabetically.
247type TypeTesterServerMethods interface {
248 // Methods to test support for primitive types.
Todd Wang54feabe2015-04-15 23:38:26 -0700249 EchoBool(ctx *context.T, call rpc.ServerCall, I1 bool) (O1 bool, err error)
250 EchoFloat32(ctx *context.T, call rpc.ServerCall, I1 float32) (O1 float32, err error)
251 EchoFloat64(ctx *context.T, call rpc.ServerCall, I1 float64) (O1 float64, err error)
252 EchoInt32(ctx *context.T, call rpc.ServerCall, I1 int32) (O1 int32, err error)
253 EchoInt64(ctx *context.T, call rpc.ServerCall, I1 int64) (O1 int64, err error)
254 EchoString(ctx *context.T, call rpc.ServerCall, I1 string) (O1 string, err error)
255 EchoByte(ctx *context.T, call rpc.ServerCall, I1 byte) (O1 byte, err error)
256 EchoUint32(ctx *context.T, call rpc.ServerCall, I1 uint32) (O1 uint32, err error)
257 EchoUint64(ctx *context.T, call rpc.ServerCall, I1 uint64) (O1 uint64, err error)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800258 // Methods to test support for composite types.
Todd Wang54feabe2015-04-15 23:38:26 -0700259 XEchoArray(ctx *context.T, call rpc.ServerCall, I1 Array2Int) (O1 Array2Int, err error)
260 XEchoMap(ctx *context.T, call rpc.ServerCall, I1 map[int32]string) (O1 map[int32]string, err error)
261 XEchoSet(ctx *context.T, call rpc.ServerCall, I1 map[int32]struct{}) (O1 map[int32]struct{}, err error)
262 XEchoSlice(ctx *context.T, call rpc.ServerCall, I1 []int32) (O1 []int32, err error)
263 XEchoStruct(ctx *context.T, call rpc.ServerCall, I1 Struct) (O1 Struct, err error)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800264 // Methods to test support for different number of arguments.
Todd Wang54feabe2015-04-15 23:38:26 -0700265 YMultiArg(ctx *context.T, call rpc.ServerCall, I1 int32, I2 int32) (O1 int32, O2 int32, err error)
266 YNoArgs(*context.T, rpc.ServerCall) error
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800267 // Methods to test support for streaming.
Todd Wang54feabe2015-04-15 23:38:26 -0700268 ZStream(ctx *context.T, call TypeTesterZStreamServerCall, NumStreamItems int32, StreamItem bool) error
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800269}
270
271// TypeTesterServerStubMethods is the server interface containing
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700272// TypeTester methods, as expected by rpc.Server.
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800273// The only difference between this interface and TypeTesterServerMethods
274// is the streaming methods.
275type TypeTesterServerStubMethods interface {
276 // Methods to test support for primitive types.
Todd Wang54feabe2015-04-15 23:38:26 -0700277 EchoBool(ctx *context.T, call rpc.ServerCall, I1 bool) (O1 bool, err error)
278 EchoFloat32(ctx *context.T, call rpc.ServerCall, I1 float32) (O1 float32, err error)
279 EchoFloat64(ctx *context.T, call rpc.ServerCall, I1 float64) (O1 float64, err error)
280 EchoInt32(ctx *context.T, call rpc.ServerCall, I1 int32) (O1 int32, err error)
281 EchoInt64(ctx *context.T, call rpc.ServerCall, I1 int64) (O1 int64, err error)
282 EchoString(ctx *context.T, call rpc.ServerCall, I1 string) (O1 string, err error)
283 EchoByte(ctx *context.T, call rpc.ServerCall, I1 byte) (O1 byte, err error)
284 EchoUint32(ctx *context.T, call rpc.ServerCall, I1 uint32) (O1 uint32, err error)
285 EchoUint64(ctx *context.T, call rpc.ServerCall, I1 uint64) (O1 uint64, err error)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800286 // Methods to test support for composite types.
Todd Wang54feabe2015-04-15 23:38:26 -0700287 XEchoArray(ctx *context.T, call rpc.ServerCall, I1 Array2Int) (O1 Array2Int, err error)
288 XEchoMap(ctx *context.T, call rpc.ServerCall, I1 map[int32]string) (O1 map[int32]string, err error)
289 XEchoSet(ctx *context.T, call rpc.ServerCall, I1 map[int32]struct{}) (O1 map[int32]struct{}, err error)
290 XEchoSlice(ctx *context.T, call rpc.ServerCall, I1 []int32) (O1 []int32, err error)
291 XEchoStruct(ctx *context.T, call rpc.ServerCall, I1 Struct) (O1 Struct, err error)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800292 // Methods to test support for different number of arguments.
Todd Wang54feabe2015-04-15 23:38:26 -0700293 YMultiArg(ctx *context.T, call rpc.ServerCall, I1 int32, I2 int32) (O1 int32, O2 int32, err error)
294 YNoArgs(*context.T, rpc.ServerCall) error
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800295 // Methods to test support for streaming.
Todd Wang54feabe2015-04-15 23:38:26 -0700296 ZStream(ctx *context.T, call *TypeTesterZStreamServerCallStub, NumStreamItems int32, StreamItem bool) error
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800297}
298
299// TypeTesterServerStub adds universal methods to TypeTesterServerStubMethods.
300type TypeTesterServerStub interface {
301 TypeTesterServerStubMethods
302 // Describe the TypeTester interfaces.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700303 Describe__() []rpc.InterfaceDesc
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800304}
305
306// TypeTesterServer returns a server stub for TypeTester.
307// It converts an implementation of TypeTesterServerMethods into
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700308// an object that may be used by rpc.Server.
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800309func TypeTesterServer(impl TypeTesterServerMethods) TypeTesterServerStub {
310 stub := implTypeTesterServerStub{
311 impl: impl,
312 }
313 // Initialize GlobState; always check the stub itself first, to handle the
314 // case where the user has the Glob method defined in their VDL source.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700315 if gs := rpc.NewGlobState(stub); gs != nil {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800316 stub.gs = gs
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700317 } else if gs := rpc.NewGlobState(impl); gs != nil {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800318 stub.gs = gs
319 }
320 return stub
321}
322
323type implTypeTesterServerStub struct {
324 impl TypeTesterServerMethods
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700325 gs *rpc.GlobState
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800326}
327
Todd Wang54feabe2015-04-15 23:38:26 -0700328func (s implTypeTesterServerStub) EchoBool(ctx *context.T, call rpc.ServerCall, i0 bool) (bool, error) {
329 return s.impl.EchoBool(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800330}
331
Todd Wang54feabe2015-04-15 23:38:26 -0700332func (s implTypeTesterServerStub) EchoFloat32(ctx *context.T, call rpc.ServerCall, i0 float32) (float32, error) {
333 return s.impl.EchoFloat32(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800334}
335
Todd Wang54feabe2015-04-15 23:38:26 -0700336func (s implTypeTesterServerStub) EchoFloat64(ctx *context.T, call rpc.ServerCall, i0 float64) (float64, error) {
337 return s.impl.EchoFloat64(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800338}
339
Todd Wang54feabe2015-04-15 23:38:26 -0700340func (s implTypeTesterServerStub) EchoInt32(ctx *context.T, call rpc.ServerCall, i0 int32) (int32, error) {
341 return s.impl.EchoInt32(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800342}
343
Todd Wang54feabe2015-04-15 23:38:26 -0700344func (s implTypeTesterServerStub) EchoInt64(ctx *context.T, call rpc.ServerCall, i0 int64) (int64, error) {
345 return s.impl.EchoInt64(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800346}
347
Todd Wang54feabe2015-04-15 23:38:26 -0700348func (s implTypeTesterServerStub) EchoString(ctx *context.T, call rpc.ServerCall, i0 string) (string, error) {
349 return s.impl.EchoString(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800350}
351
Todd Wang54feabe2015-04-15 23:38:26 -0700352func (s implTypeTesterServerStub) EchoByte(ctx *context.T, call rpc.ServerCall, i0 byte) (byte, error) {
353 return s.impl.EchoByte(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800354}
355
Todd Wang54feabe2015-04-15 23:38:26 -0700356func (s implTypeTesterServerStub) EchoUint32(ctx *context.T, call rpc.ServerCall, i0 uint32) (uint32, error) {
357 return s.impl.EchoUint32(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800358}
359
Todd Wang54feabe2015-04-15 23:38:26 -0700360func (s implTypeTesterServerStub) EchoUint64(ctx *context.T, call rpc.ServerCall, i0 uint64) (uint64, error) {
361 return s.impl.EchoUint64(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800362}
363
Todd Wang54feabe2015-04-15 23:38:26 -0700364func (s implTypeTesterServerStub) XEchoArray(ctx *context.T, call rpc.ServerCall, i0 Array2Int) (Array2Int, error) {
365 return s.impl.XEchoArray(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800366}
367
Todd Wang54feabe2015-04-15 23:38:26 -0700368func (s implTypeTesterServerStub) XEchoMap(ctx *context.T, call rpc.ServerCall, i0 map[int32]string) (map[int32]string, error) {
369 return s.impl.XEchoMap(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800370}
371
Todd Wang54feabe2015-04-15 23:38:26 -0700372func (s implTypeTesterServerStub) XEchoSet(ctx *context.T, call rpc.ServerCall, i0 map[int32]struct{}) (map[int32]struct{}, error) {
373 return s.impl.XEchoSet(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800374}
375
Todd Wang54feabe2015-04-15 23:38:26 -0700376func (s implTypeTesterServerStub) XEchoSlice(ctx *context.T, call rpc.ServerCall, i0 []int32) ([]int32, error) {
377 return s.impl.XEchoSlice(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800378}
379
Todd Wang54feabe2015-04-15 23:38:26 -0700380func (s implTypeTesterServerStub) XEchoStruct(ctx *context.T, call rpc.ServerCall, i0 Struct) (Struct, error) {
381 return s.impl.XEchoStruct(ctx, call, i0)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800382}
383
Todd Wang54feabe2015-04-15 23:38:26 -0700384func (s implTypeTesterServerStub) YMultiArg(ctx *context.T, call rpc.ServerCall, i0 int32, i1 int32) (int32, int32, error) {
385 return s.impl.YMultiArg(ctx, call, i0, i1)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800386}
387
Todd Wang54feabe2015-04-15 23:38:26 -0700388func (s implTypeTesterServerStub) YNoArgs(ctx *context.T, call rpc.ServerCall) error {
389 return s.impl.YNoArgs(ctx, call)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800390}
391
Todd Wang54feabe2015-04-15 23:38:26 -0700392func (s implTypeTesterServerStub) ZStream(ctx *context.T, call *TypeTesterZStreamServerCallStub, i0 int32, i1 bool) error {
393 return s.impl.ZStream(ctx, call, i0, i1)
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800394}
395
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700396func (s implTypeTesterServerStub) Globber() *rpc.GlobState {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800397 return s.gs
398}
399
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700400func (s implTypeTesterServerStub) Describe__() []rpc.InterfaceDesc {
401 return []rpc.InterfaceDesc{TypeTesterDesc}
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800402}
403
404// TypeTesterDesc describes the TypeTester interface.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700405var TypeTesterDesc rpc.InterfaceDesc = descTypeTester
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800406
407// descTypeTester hides the desc to keep godoc clean.
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700408var descTypeTester = rpc.InterfaceDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800409 Name: "TypeTester",
Todd Wang14f901a2015-03-27 13:37:47 -0700410 PkgPath: "v.io/x/ref/cmd/vrpc/internal",
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800411 Doc: "// TypeTester methods are listed in alphabetical order, to make it easier to\n// test Signature output, which sorts methods alphabetically.",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700412 Methods: []rpc.MethodDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800413 {
414 Name: "EchoBool",
415 Doc: "// Methods to test support for primitive types.",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700416 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800417 {"I1", ``}, // bool
418 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700419 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800420 {"O1", ``}, // bool
421 },
422 },
423 {
424 Name: "EchoFloat32",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700425 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800426 {"I1", ``}, // float32
427 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700428 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800429 {"O1", ``}, // float32
430 },
431 },
432 {
433 Name: "EchoFloat64",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700434 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800435 {"I1", ``}, // float64
436 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700437 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800438 {"O1", ``}, // float64
439 },
440 },
441 {
442 Name: "EchoInt32",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700443 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800444 {"I1", ``}, // int32
445 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700446 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800447 {"O1", ``}, // int32
448 },
449 },
450 {
451 Name: "EchoInt64",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700452 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800453 {"I1", ``}, // int64
454 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700455 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800456 {"O1", ``}, // int64
457 },
458 },
459 {
460 Name: "EchoString",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700461 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800462 {"I1", ``}, // string
463 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700464 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800465 {"O1", ``}, // string
466 },
467 },
468 {
469 Name: "EchoByte",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700470 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800471 {"I1", ``}, // byte
472 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700473 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800474 {"O1", ``}, // byte
475 },
476 },
477 {
478 Name: "EchoUint32",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700479 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800480 {"I1", ``}, // uint32
481 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700482 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800483 {"O1", ``}, // uint32
484 },
485 },
486 {
487 Name: "EchoUint64",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700488 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800489 {"I1", ``}, // uint64
490 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700491 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800492 {"O1", ``}, // uint64
493 },
494 },
495 {
496 Name: "XEchoArray",
497 Doc: "// Methods to test support for composite types.",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700498 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800499 {"I1", ``}, // Array2Int
500 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700501 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800502 {"O1", ``}, // Array2Int
503 },
504 },
505 {
506 Name: "XEchoMap",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700507 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800508 {"I1", ``}, // map[int32]string
509 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700510 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800511 {"O1", ``}, // map[int32]string
512 },
513 },
514 {
515 Name: "XEchoSet",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700516 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800517 {"I1", ``}, // map[int32]struct{}
518 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700519 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800520 {"O1", ``}, // map[int32]struct{}
521 },
522 },
523 {
524 Name: "XEchoSlice",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700525 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800526 {"I1", ``}, // []int32
527 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700528 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800529 {"O1", ``}, // []int32
530 },
531 },
532 {
533 Name: "XEchoStruct",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700534 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800535 {"I1", ``}, // Struct
536 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700537 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800538 {"O1", ``}, // Struct
539 },
540 },
541 {
542 Name: "YMultiArg",
543 Doc: "// Methods to test support for different number of arguments.",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700544 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800545 {"I1", ``}, // int32
546 {"I2", ``}, // int32
547 },
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700548 OutArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800549 {"O1", ``}, // int32
550 {"O2", ``}, // int32
551 },
552 },
553 {
554 Name: "YNoArgs",
555 },
556 {
557 Name: "ZStream",
558 Doc: "// Methods to test support for streaming.",
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700559 InArgs: []rpc.ArgDesc{
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800560 {"NumStreamItems", ``}, // int32
561 {"StreamItem", ``}, // bool
562 },
563 },
564 },
565}
566
567// TypeTesterZStreamServerStream is the server stream for TypeTester.ZStream.
568type TypeTesterZStreamServerStream interface {
569 // SendStream returns the send side of the TypeTester.ZStream server stream.
570 SendStream() interface {
571 // Send places the item onto the output stream. Returns errors encountered
572 // while sending. Blocks if there is no buffer space; will unblock when
573 // buffer space is available.
574 Send(item bool) error
575 }
576}
577
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800578// TypeTesterZStreamServerCall represents the context passed to TypeTester.ZStream.
579type TypeTesterZStreamServerCall interface {
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700580 rpc.ServerCall
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800581 TypeTesterZStreamServerStream
582}
583
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700584// TypeTesterZStreamServerCallStub is a wrapper that converts rpc.StreamServerCall into
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800585// a typesafe stub that implements TypeTesterZStreamServerCall.
586type TypeTesterZStreamServerCallStub struct {
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700587 rpc.StreamServerCall
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800588}
589
Matt Rosencrantz94502cf2015-03-18 09:43:44 -0700590// Init initializes TypeTesterZStreamServerCallStub from rpc.StreamServerCall.
591func (s *TypeTesterZStreamServerCallStub) Init(call rpc.StreamServerCall) {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800592 s.StreamServerCall = call
593}
594
595// SendStream returns the send side of the TypeTester.ZStream server stream.
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800596func (s *TypeTesterZStreamServerCallStub) SendStream() interface {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800597 Send(item bool) error
598} {
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800599 return implTypeTesterZStreamServerCallSend{s}
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800600}
601
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800602type implTypeTesterZStreamServerCallSend struct {
603 s *TypeTesterZStreamServerCallStub
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800604}
605
Suharsh Sivakumar31f49852015-03-03 16:13:20 -0800606func (s implTypeTesterZStreamServerCallSend) Send(item bool) error {
Matt Rosencrantzbca49812015-03-01 21:32:54 -0800607 return s.s.Send(item)
608}