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