1// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
2
3package routeguide
4
5import (
6	context "context"
7	grpc "google.golang.org/grpc"
8	codes "google.golang.org/grpc/codes"
9	status "google.golang.org/grpc/status"
10)
11
12// This is a compile-time assertion to ensure that this generated file
13// is compatible with the grpc package it is being compiled against.
14// Requires gRPC-Go v1.32.0 or later.
15const _ = grpc.SupportPackageIsVersion7
16
17// RouteGuideClient is the client API for RouteGuide service.
18//
19// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
20type RouteGuideClient interface {
21	// A simple RPC.
22	//
23	// Obtains the feature at a given position.
24	//
25	// A feature with an empty name is returned if there's no feature at the given
26	// position.
27	GetFeature(ctx context.Context, in *Point, opts ...grpc.CallOption) (*Feature, error)
28	// A server-to-client streaming RPC.
29	//
30	// Obtains the Features available within the given Rectangle.  Results are
31	// streamed rather than returned at once (e.g. in a response message with a
32	// repeated field), as the rectangle may cover a large area and contain a
33	// huge number of features.
34	ListFeatures(ctx context.Context, in *Rectangle, opts ...grpc.CallOption) (RouteGuide_ListFeaturesClient, error)
35	// A client-to-server streaming RPC.
36	//
37	// Accepts a stream of Points on a route being traversed, returning a
38	// RouteSummary when traversal is completed.
39	RecordRoute(ctx context.Context, opts ...grpc.CallOption) (RouteGuide_RecordRouteClient, error)
40	// A Bidirectional streaming RPC.
41	//
42	// Accepts a stream of RouteNotes sent while a route is being traversed,
43	// while receiving other RouteNotes (e.g. from other users).
44	RouteChat(ctx context.Context, opts ...grpc.CallOption) (RouteGuide_RouteChatClient, error)
45}
46
47type routeGuideClient struct {
48	cc grpc.ClientConnInterface
49}
50
51func NewRouteGuideClient(cc grpc.ClientConnInterface) RouteGuideClient {
52	return &routeGuideClient{cc}
53}
54
55func (c *routeGuideClient) GetFeature(ctx context.Context, in *Point, opts ...grpc.CallOption) (*Feature, error) {
56	out := new(Feature)
57	err := c.cc.Invoke(ctx, "/routeguide.RouteGuide/GetFeature", in, out, opts...)
58	if err != nil {
59		return nil, err
60	}
61	return out, nil
62}
63
64func (c *routeGuideClient) ListFeatures(ctx context.Context, in *Rectangle, opts ...grpc.CallOption) (RouteGuide_ListFeaturesClient, error) {
65	stream, err := c.cc.NewStream(ctx, &RouteGuide_ServiceDesc.Streams[0], "/routeguide.RouteGuide/ListFeatures", opts...)
66	if err != nil {
67		return nil, err
68	}
69	x := &routeGuideListFeaturesClient{stream}
70	if err := x.ClientStream.SendMsg(in); err != nil {
71		return nil, err
72	}
73	if err := x.ClientStream.CloseSend(); err != nil {
74		return nil, err
75	}
76	return x, nil
77}
78
79type RouteGuide_ListFeaturesClient interface {
80	Recv() (*Feature, error)
81	grpc.ClientStream
82}
83
84type routeGuideListFeaturesClient struct {
85	grpc.ClientStream
86}
87
88func (x *routeGuideListFeaturesClient) Recv() (*Feature, error) {
89	m := new(Feature)
90	if err := x.ClientStream.RecvMsg(m); err != nil {
91		return nil, err
92	}
93	return m, nil
94}
95
96func (c *routeGuideClient) RecordRoute(ctx context.Context, opts ...grpc.CallOption) (RouteGuide_RecordRouteClient, error) {
97	stream, err := c.cc.NewStream(ctx, &RouteGuide_ServiceDesc.Streams[1], "/routeguide.RouteGuide/RecordRoute", opts...)
98	if err != nil {
99		return nil, err
100	}
101	x := &routeGuideRecordRouteClient{stream}
102	return x, nil
103}
104
105type RouteGuide_RecordRouteClient interface {
106	Send(*Point) error
107	CloseAndRecv() (*RouteSummary, error)
108	grpc.ClientStream
109}
110
111type routeGuideRecordRouteClient struct {
112	grpc.ClientStream
113}
114
115func (x *routeGuideRecordRouteClient) Send(m *Point) error {
116	return x.ClientStream.SendMsg(m)
117}
118
119func (x *routeGuideRecordRouteClient) CloseAndRecv() (*RouteSummary, error) {
120	if err := x.ClientStream.CloseSend(); err != nil {
121		return nil, err
122	}
123	m := new(RouteSummary)
124	if err := x.ClientStream.RecvMsg(m); err != nil {
125		return nil, err
126	}
127	return m, nil
128}
129
130func (c *routeGuideClient) RouteChat(ctx context.Context, opts ...grpc.CallOption) (RouteGuide_RouteChatClient, error) {
131	stream, err := c.cc.NewStream(ctx, &RouteGuide_ServiceDesc.Streams[2], "/routeguide.RouteGuide/RouteChat", opts...)
132	if err != nil {
133		return nil, err
134	}
135	x := &routeGuideRouteChatClient{stream}
136	return x, nil
137}
138
139type RouteGuide_RouteChatClient interface {
140	Send(*RouteNote) error
141	Recv() (*RouteNote, error)
142	grpc.ClientStream
143}
144
145type routeGuideRouteChatClient struct {
146	grpc.ClientStream
147}
148
149func (x *routeGuideRouteChatClient) Send(m *RouteNote) error {
150	return x.ClientStream.SendMsg(m)
151}
152
153func (x *routeGuideRouteChatClient) Recv() (*RouteNote, error) {
154	m := new(RouteNote)
155	if err := x.ClientStream.RecvMsg(m); err != nil {
156		return nil, err
157	}
158	return m, nil
159}
160
161// RouteGuideServer is the server API for RouteGuide service.
162// All implementations must embed UnimplementedRouteGuideServer
163// for forward compatibility
164type RouteGuideServer interface {
165	// A simple RPC.
166	//
167	// Obtains the feature at a given position.
168	//
169	// A feature with an empty name is returned if there's no feature at the given
170	// position.
171	GetFeature(context.Context, *Point) (*Feature, error)
172	// A server-to-client streaming RPC.
173	//
174	// Obtains the Features available within the given Rectangle.  Results are
175	// streamed rather than returned at once (e.g. in a response message with a
176	// repeated field), as the rectangle may cover a large area and contain a
177	// huge number of features.
178	ListFeatures(*Rectangle, RouteGuide_ListFeaturesServer) error
179	// A client-to-server streaming RPC.
180	//
181	// Accepts a stream of Points on a route being traversed, returning a
182	// RouteSummary when traversal is completed.
183	RecordRoute(RouteGuide_RecordRouteServer) error
184	// A Bidirectional streaming RPC.
185	//
186	// Accepts a stream of RouteNotes sent while a route is being traversed,
187	// while receiving other RouteNotes (e.g. from other users).
188	RouteChat(RouteGuide_RouteChatServer) error
189	mustEmbedUnimplementedRouteGuideServer()
190}
191
192// UnimplementedRouteGuideServer must be embedded to have forward compatible implementations.
193type UnimplementedRouteGuideServer struct {
194}
195
196func (UnimplementedRouteGuideServer) GetFeature(context.Context, *Point) (*Feature, error) {
197	return nil, status.Errorf(codes.Unimplemented, "method GetFeature not implemented")
198}
199func (UnimplementedRouteGuideServer) ListFeatures(*Rectangle, RouteGuide_ListFeaturesServer) error {
200	return status.Errorf(codes.Unimplemented, "method ListFeatures not implemented")
201}
202func (UnimplementedRouteGuideServer) RecordRoute(RouteGuide_RecordRouteServer) error {
203	return status.Errorf(codes.Unimplemented, "method RecordRoute not implemented")
204}
205func (UnimplementedRouteGuideServer) RouteChat(RouteGuide_RouteChatServer) error {
206	return status.Errorf(codes.Unimplemented, "method RouteChat not implemented")
207}
208func (UnimplementedRouteGuideServer) mustEmbedUnimplementedRouteGuideServer() {}
209
210// UnsafeRouteGuideServer may be embedded to opt out of forward compatibility for this service.
211// Use of this interface is not recommended, as added methods to RouteGuideServer will
212// result in compilation errors.
213type UnsafeRouteGuideServer interface {
214	mustEmbedUnimplementedRouteGuideServer()
215}
216
217func RegisterRouteGuideServer(s grpc.ServiceRegistrar, srv RouteGuideServer) {
218	s.RegisterService(&RouteGuide_ServiceDesc, srv)
219}
220
221func _RouteGuide_GetFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
222	in := new(Point)
223	if err := dec(in); err != nil {
224		return nil, err
225	}
226	if interceptor == nil {
227		return srv.(RouteGuideServer).GetFeature(ctx, in)
228	}
229	info := &grpc.UnaryServerInfo{
230		Server:     srv,
231		FullMethod: "/routeguide.RouteGuide/GetFeature",
232	}
233	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
234		return srv.(RouteGuideServer).GetFeature(ctx, req.(*Point))
235	}
236	return interceptor(ctx, in, info, handler)
237}
238
239func _RouteGuide_ListFeatures_Handler(srv interface{}, stream grpc.ServerStream) error {
240	m := new(Rectangle)
241	if err := stream.RecvMsg(m); err != nil {
242		return err
243	}
244	return srv.(RouteGuideServer).ListFeatures(m, &routeGuideListFeaturesServer{stream})
245}
246
247type RouteGuide_ListFeaturesServer interface {
248	Send(*Feature) error
249	grpc.ServerStream
250}
251
252type routeGuideListFeaturesServer struct {
253	grpc.ServerStream
254}
255
256func (x *routeGuideListFeaturesServer) Send(m *Feature) error {
257	return x.ServerStream.SendMsg(m)
258}
259
260func _RouteGuide_RecordRoute_Handler(srv interface{}, stream grpc.ServerStream) error {
261	return srv.(RouteGuideServer).RecordRoute(&routeGuideRecordRouteServer{stream})
262}
263
264type RouteGuide_RecordRouteServer interface {
265	SendAndClose(*RouteSummary) error
266	Recv() (*Point, error)
267	grpc.ServerStream
268}
269
270type routeGuideRecordRouteServer struct {
271	grpc.ServerStream
272}
273
274func (x *routeGuideRecordRouteServer) SendAndClose(m *RouteSummary) error {
275	return x.ServerStream.SendMsg(m)
276}
277
278func (x *routeGuideRecordRouteServer) Recv() (*Point, error) {
279	m := new(Point)
280	if err := x.ServerStream.RecvMsg(m); err != nil {
281		return nil, err
282	}
283	return m, nil
284}
285
286func _RouteGuide_RouteChat_Handler(srv interface{}, stream grpc.ServerStream) error {
287	return srv.(RouteGuideServer).RouteChat(&routeGuideRouteChatServer{stream})
288}
289
290type RouteGuide_RouteChatServer interface {
291	Send(*RouteNote) error
292	Recv() (*RouteNote, error)
293	grpc.ServerStream
294}
295
296type routeGuideRouteChatServer struct {
297	grpc.ServerStream
298}
299
300func (x *routeGuideRouteChatServer) Send(m *RouteNote) error {
301	return x.ServerStream.SendMsg(m)
302}
303
304func (x *routeGuideRouteChatServer) Recv() (*RouteNote, error) {
305	m := new(RouteNote)
306	if err := x.ServerStream.RecvMsg(m); err != nil {
307		return nil, err
308	}
309	return m, nil
310}
311
312// RouteGuide_ServiceDesc is the grpc.ServiceDesc for RouteGuide service.
313// It's only intended for direct use with grpc.RegisterService,
314// and not to be introspected or modified (even as a copy)
315var RouteGuide_ServiceDesc = grpc.ServiceDesc{
316	ServiceName: "routeguide.RouteGuide",
317	HandlerType: (*RouteGuideServer)(nil),
318	Methods: []grpc.MethodDesc{
319		{
320			MethodName: "GetFeature",
321			Handler:    _RouteGuide_GetFeature_Handler,
322		},
323	},
324	Streams: []grpc.StreamDesc{
325		{
326			StreamName:    "ListFeatures",
327			Handler:       _RouteGuide_ListFeatures_Handler,
328			ServerStreams: true,
329		},
330		{
331			StreamName:    "RecordRoute",
332			Handler:       _RouteGuide_RecordRoute_Handler,
333			ClientStreams: true,
334		},
335		{
336			StreamName:    "RouteChat",
337			Handler:       _RouteGuide_RouteChat_Handler,
338			ServerStreams: true,
339			ClientStreams: true,
340		},
341	},
342	Metadata: "examples/route_guide/routeguide/route_guide.proto",
343}
344