1// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
2
3package grpccompat
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// ServiceClient is the client API for Service 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 ServiceClient interface {
21	Method1(ctx context.Context, in *In, opts ...grpc.CallOption) (*Out, error)
22	Method2(ctx context.Context, opts ...grpc.CallOption) (Service_Method2Client, error)
23	Method3(ctx context.Context, in *In, opts ...grpc.CallOption) (Service_Method3Client, error)
24	Method4(ctx context.Context, opts ...grpc.CallOption) (Service_Method4Client, error)
25}
26
27type serviceClient struct {
28	cc grpc.ClientConnInterface
29}
30
31func NewServiceClient(cc grpc.ClientConnInterface) ServiceClient {
32	return &serviceClient{cc}
33}
34
35func (c *serviceClient) Method1(ctx context.Context, in *In, opts ...grpc.CallOption) (*Out, error) {
36	out := new(Out)
37	err := c.cc.Invoke(ctx, "/service.Service/Method1", in, out, opts...)
38	if err != nil {
39		return nil, err
40	}
41	return out, nil
42}
43
44func (c *serviceClient) Method2(ctx context.Context, opts ...grpc.CallOption) (Service_Method2Client, error) {
45	stream, err := c.cc.NewStream(ctx, &Service_ServiceDesc.Streams[0], "/service.Service/Method2", opts...)
46	if err != nil {
47		return nil, err
48	}
49	x := &serviceMethod2Client{stream}
50	return x, nil
51}
52
53type Service_Method2Client interface {
54	Send(*In) error
55	CloseAndRecv() (*Out, error)
56	grpc.ClientStream
57}
58
59type serviceMethod2Client struct {
60	grpc.ClientStream
61}
62
63func (x *serviceMethod2Client) Send(m *In) error {
64	return x.ClientStream.SendMsg(m)
65}
66
67func (x *serviceMethod2Client) CloseAndRecv() (*Out, error) {
68	if err := x.ClientStream.CloseSend(); err != nil {
69		return nil, err
70	}
71	m := new(Out)
72	if err := x.ClientStream.RecvMsg(m); err != nil {
73		return nil, err
74	}
75	return m, nil
76}
77
78func (c *serviceClient) Method3(ctx context.Context, in *In, opts ...grpc.CallOption) (Service_Method3Client, error) {
79	stream, err := c.cc.NewStream(ctx, &Service_ServiceDesc.Streams[1], "/service.Service/Method3", opts...)
80	if err != nil {
81		return nil, err
82	}
83	x := &serviceMethod3Client{stream}
84	if err := x.ClientStream.SendMsg(in); err != nil {
85		return nil, err
86	}
87	if err := x.ClientStream.CloseSend(); err != nil {
88		return nil, err
89	}
90	return x, nil
91}
92
93type Service_Method3Client interface {
94	Recv() (*Out, error)
95	grpc.ClientStream
96}
97
98type serviceMethod3Client struct {
99	grpc.ClientStream
100}
101
102func (x *serviceMethod3Client) Recv() (*Out, error) {
103	m := new(Out)
104	if err := x.ClientStream.RecvMsg(m); err != nil {
105		return nil, err
106	}
107	return m, nil
108}
109
110func (c *serviceClient) Method4(ctx context.Context, opts ...grpc.CallOption) (Service_Method4Client, error) {
111	stream, err := c.cc.NewStream(ctx, &Service_ServiceDesc.Streams[2], "/service.Service/Method4", opts...)
112	if err != nil {
113		return nil, err
114	}
115	x := &serviceMethod4Client{stream}
116	return x, nil
117}
118
119type Service_Method4Client interface {
120	Send(*In) error
121	Recv() (*Out, error)
122	grpc.ClientStream
123}
124
125type serviceMethod4Client struct {
126	grpc.ClientStream
127}
128
129func (x *serviceMethod4Client) Send(m *In) error {
130	return x.ClientStream.SendMsg(m)
131}
132
133func (x *serviceMethod4Client) Recv() (*Out, error) {
134	m := new(Out)
135	if err := x.ClientStream.RecvMsg(m); err != nil {
136		return nil, err
137	}
138	return m, nil
139}
140
141// ServiceServer is the server API for Service service.
142// All implementations must embed UnimplementedServiceServer
143// for forward compatibility
144type ServiceServer interface {
145	Method1(context.Context, *In) (*Out, error)
146	Method2(Service_Method2Server) error
147	Method3(*In, Service_Method3Server) error
148	Method4(Service_Method4Server) error
149	mustEmbedUnimplementedServiceServer()
150}
151
152// UnimplementedServiceServer must be embedded to have forward compatible implementations.
153type UnimplementedServiceServer struct {
154}
155
156func (UnimplementedServiceServer) Method1(context.Context, *In) (*Out, error) {
157	return nil, status.Errorf(codes.Unimplemented, "method Method1 not implemented")
158}
159func (UnimplementedServiceServer) Method2(Service_Method2Server) error {
160	return status.Errorf(codes.Unimplemented, "method Method2 not implemented")
161}
162func (UnimplementedServiceServer) Method3(*In, Service_Method3Server) error {
163	return status.Errorf(codes.Unimplemented, "method Method3 not implemented")
164}
165func (UnimplementedServiceServer) Method4(Service_Method4Server) error {
166	return status.Errorf(codes.Unimplemented, "method Method4 not implemented")
167}
168func (UnimplementedServiceServer) mustEmbedUnimplementedServiceServer() {}
169
170// UnsafeServiceServer may be embedded to opt out of forward compatibility for this service.
171// Use of this interface is not recommended, as added methods to ServiceServer will
172// result in compilation errors.
173type UnsafeServiceServer interface {
174	mustEmbedUnimplementedServiceServer()
175}
176
177func RegisterServiceServer(s grpc.ServiceRegistrar, srv ServiceServer) {
178	s.RegisterService(&Service_ServiceDesc, srv)
179}
180
181func _Service_Method1_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
182	in := new(In)
183	if err := dec(in); err != nil {
184		return nil, err
185	}
186	if interceptor == nil {
187		return srv.(ServiceServer).Method1(ctx, in)
188	}
189	info := &grpc.UnaryServerInfo{
190		Server:     srv,
191		FullMethod: "/service.Service/Method1",
192	}
193	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
194		return srv.(ServiceServer).Method1(ctx, req.(*In))
195	}
196	return interceptor(ctx, in, info, handler)
197}
198
199func _Service_Method2_Handler(srv interface{}, stream grpc.ServerStream) error {
200	return srv.(ServiceServer).Method2(&serviceMethod2Server{stream})
201}
202
203type Service_Method2Server interface {
204	SendAndClose(*Out) error
205	Recv() (*In, error)
206	grpc.ServerStream
207}
208
209type serviceMethod2Server struct {
210	grpc.ServerStream
211}
212
213func (x *serviceMethod2Server) SendAndClose(m *Out) error {
214	return x.ServerStream.SendMsg(m)
215}
216
217func (x *serviceMethod2Server) Recv() (*In, error) {
218	m := new(In)
219	if err := x.ServerStream.RecvMsg(m); err != nil {
220		return nil, err
221	}
222	return m, nil
223}
224
225func _Service_Method3_Handler(srv interface{}, stream grpc.ServerStream) error {
226	m := new(In)
227	if err := stream.RecvMsg(m); err != nil {
228		return err
229	}
230	return srv.(ServiceServer).Method3(m, &serviceMethod3Server{stream})
231}
232
233type Service_Method3Server interface {
234	Send(*Out) error
235	grpc.ServerStream
236}
237
238type serviceMethod3Server struct {
239	grpc.ServerStream
240}
241
242func (x *serviceMethod3Server) Send(m *Out) error {
243	return x.ServerStream.SendMsg(m)
244}
245
246func _Service_Method4_Handler(srv interface{}, stream grpc.ServerStream) error {
247	return srv.(ServiceServer).Method4(&serviceMethod4Server{stream})
248}
249
250type Service_Method4Server interface {
251	Send(*Out) error
252	Recv() (*In, error)
253	grpc.ServerStream
254}
255
256type serviceMethod4Server struct {
257	grpc.ServerStream
258}
259
260func (x *serviceMethod4Server) Send(m *Out) error {
261	return x.ServerStream.SendMsg(m)
262}
263
264func (x *serviceMethod4Server) Recv() (*In, error) {
265	m := new(In)
266	if err := x.ServerStream.RecvMsg(m); err != nil {
267		return nil, err
268	}
269	return m, nil
270}
271
272// Service_ServiceDesc is the grpc.ServiceDesc for Service service.
273// It's only intended for direct use with grpc.RegisterService,
274// and not to be introspected or modified (even as a copy)
275var Service_ServiceDesc = grpc.ServiceDesc{
276	ServiceName: "service.Service",
277	HandlerType: (*ServiceServer)(nil),
278	Methods: []grpc.MethodDesc{
279		{
280			MethodName: "Method1",
281			Handler:    _Service_Method1_Handler,
282		},
283	},
284	Streams: []grpc.StreamDesc{
285		{
286			StreamName:    "Method2",
287			Handler:       _Service_Method2_Handler,
288			ClientStreams: true,
289		},
290		{
291			StreamName:    "Method3",
292			Handler:       _Service_Method3_Handler,
293			ServerStreams: true,
294		},
295		{
296			StreamName:    "Method4",
297			Handler:       _Service_Method4_Handler,
298			ServerStreams: true,
299			ClientStreams: true,
300		},
301	},
302	Metadata: "service.proto",
303}
304