1// Code generated by protoc-gen-go-grpc. DO NOT EDIT. 2 3package echo 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. 14const _ = grpc.SupportPackageIsVersion6 15 16// EchoClient is the client API for Echo service. 17// 18// 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. 19type EchoClient interface { 20 // UnaryEcho is unary echo. 21 UnaryEcho(ctx context.Context, in *EchoRequest, opts ...grpc.CallOption) (*EchoResponse, error) 22 // ServerStreamingEcho is server side streaming. 23 ServerStreamingEcho(ctx context.Context, in *EchoRequest, opts ...grpc.CallOption) (Echo_ServerStreamingEchoClient, error) 24 // ClientStreamingEcho is client side streaming. 25 ClientStreamingEcho(ctx context.Context, opts ...grpc.CallOption) (Echo_ClientStreamingEchoClient, error) 26 // BidirectionalStreamingEcho is bidi streaming. 27 BidirectionalStreamingEcho(ctx context.Context, opts ...grpc.CallOption) (Echo_BidirectionalStreamingEchoClient, error) 28} 29 30type echoClient struct { 31 cc grpc.ClientConnInterface 32} 33 34func NewEchoClient(cc grpc.ClientConnInterface) EchoClient { 35 return &echoClient{cc} 36} 37 38func (c *echoClient) UnaryEcho(ctx context.Context, in *EchoRequest, opts ...grpc.CallOption) (*EchoResponse, error) { 39 out := new(EchoResponse) 40 err := c.cc.Invoke(ctx, "/grpc.examples.echo.Echo/UnaryEcho", in, out, opts...) 41 if err != nil { 42 return nil, err 43 } 44 return out, nil 45} 46 47func (c *echoClient) ServerStreamingEcho(ctx context.Context, in *EchoRequest, opts ...grpc.CallOption) (Echo_ServerStreamingEchoClient, error) { 48 stream, err := c.cc.NewStream(ctx, &_Echo_serviceDesc.Streams[0], "/grpc.examples.echo.Echo/ServerStreamingEcho", opts...) 49 if err != nil { 50 return nil, err 51 } 52 x := &echoServerStreamingEchoClient{stream} 53 if err := x.ClientStream.SendMsg(in); err != nil { 54 return nil, err 55 } 56 if err := x.ClientStream.CloseSend(); err != nil { 57 return nil, err 58 } 59 return x, nil 60} 61 62type Echo_ServerStreamingEchoClient interface { 63 Recv() (*EchoResponse, error) 64 grpc.ClientStream 65} 66 67type echoServerStreamingEchoClient struct { 68 grpc.ClientStream 69} 70 71func (x *echoServerStreamingEchoClient) Recv() (*EchoResponse, error) { 72 m := new(EchoResponse) 73 if err := x.ClientStream.RecvMsg(m); err != nil { 74 return nil, err 75 } 76 return m, nil 77} 78 79func (c *echoClient) ClientStreamingEcho(ctx context.Context, opts ...grpc.CallOption) (Echo_ClientStreamingEchoClient, error) { 80 stream, err := c.cc.NewStream(ctx, &_Echo_serviceDesc.Streams[1], "/grpc.examples.echo.Echo/ClientStreamingEcho", opts...) 81 if err != nil { 82 return nil, err 83 } 84 x := &echoClientStreamingEchoClient{stream} 85 return x, nil 86} 87 88type Echo_ClientStreamingEchoClient interface { 89 Send(*EchoRequest) error 90 CloseAndRecv() (*EchoResponse, error) 91 grpc.ClientStream 92} 93 94type echoClientStreamingEchoClient struct { 95 grpc.ClientStream 96} 97 98func (x *echoClientStreamingEchoClient) Send(m *EchoRequest) error { 99 return x.ClientStream.SendMsg(m) 100} 101 102func (x *echoClientStreamingEchoClient) CloseAndRecv() (*EchoResponse, error) { 103 if err := x.ClientStream.CloseSend(); err != nil { 104 return nil, err 105 } 106 m := new(EchoResponse) 107 if err := x.ClientStream.RecvMsg(m); err != nil { 108 return nil, err 109 } 110 return m, nil 111} 112 113func (c *echoClient) BidirectionalStreamingEcho(ctx context.Context, opts ...grpc.CallOption) (Echo_BidirectionalStreamingEchoClient, error) { 114 stream, err := c.cc.NewStream(ctx, &_Echo_serviceDesc.Streams[2], "/grpc.examples.echo.Echo/BidirectionalStreamingEcho", opts...) 115 if err != nil { 116 return nil, err 117 } 118 x := &echoBidirectionalStreamingEchoClient{stream} 119 return x, nil 120} 121 122type Echo_BidirectionalStreamingEchoClient interface { 123 Send(*EchoRequest) error 124 Recv() (*EchoResponse, error) 125 grpc.ClientStream 126} 127 128type echoBidirectionalStreamingEchoClient struct { 129 grpc.ClientStream 130} 131 132func (x *echoBidirectionalStreamingEchoClient) Send(m *EchoRequest) error { 133 return x.ClientStream.SendMsg(m) 134} 135 136func (x *echoBidirectionalStreamingEchoClient) Recv() (*EchoResponse, error) { 137 m := new(EchoResponse) 138 if err := x.ClientStream.RecvMsg(m); err != nil { 139 return nil, err 140 } 141 return m, nil 142} 143 144// EchoServer is the server API for Echo service. 145// All implementations should embed UnimplementedEchoServer 146// for forward compatibility 147type EchoServer interface { 148 // UnaryEcho is unary echo. 149 UnaryEcho(context.Context, *EchoRequest) (*EchoResponse, error) 150 // ServerStreamingEcho is server side streaming. 151 ServerStreamingEcho(*EchoRequest, Echo_ServerStreamingEchoServer) error 152 // ClientStreamingEcho is client side streaming. 153 ClientStreamingEcho(Echo_ClientStreamingEchoServer) error 154 // BidirectionalStreamingEcho is bidi streaming. 155 BidirectionalStreamingEcho(Echo_BidirectionalStreamingEchoServer) error 156} 157 158// UnimplementedEchoServer should be embedded to have forward compatible implementations. 159type UnimplementedEchoServer struct { 160} 161 162func (*UnimplementedEchoServer) UnaryEcho(context.Context, *EchoRequest) (*EchoResponse, error) { 163 return nil, status.Errorf(codes.Unimplemented, "method UnaryEcho not implemented") 164} 165func (*UnimplementedEchoServer) ServerStreamingEcho(*EchoRequest, Echo_ServerStreamingEchoServer) error { 166 return status.Errorf(codes.Unimplemented, "method ServerStreamingEcho not implemented") 167} 168func (*UnimplementedEchoServer) ClientStreamingEcho(Echo_ClientStreamingEchoServer) error { 169 return status.Errorf(codes.Unimplemented, "method ClientStreamingEcho not implemented") 170} 171func (*UnimplementedEchoServer) BidirectionalStreamingEcho(Echo_BidirectionalStreamingEchoServer) error { 172 return status.Errorf(codes.Unimplemented, "method BidirectionalStreamingEcho not implemented") 173} 174 175func RegisterEchoServer(s *grpc.Server, srv EchoServer) { 176 s.RegisterService(&_Echo_serviceDesc, srv) 177} 178 179func _Echo_UnaryEcho_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 180 in := new(EchoRequest) 181 if err := dec(in); err != nil { 182 return nil, err 183 } 184 if interceptor == nil { 185 return srv.(EchoServer).UnaryEcho(ctx, in) 186 } 187 info := &grpc.UnaryServerInfo{ 188 Server: srv, 189 FullMethod: "/grpc.examples.echo.Echo/UnaryEcho", 190 } 191 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 192 return srv.(EchoServer).UnaryEcho(ctx, req.(*EchoRequest)) 193 } 194 return interceptor(ctx, in, info, handler) 195} 196 197func _Echo_ServerStreamingEcho_Handler(srv interface{}, stream grpc.ServerStream) error { 198 m := new(EchoRequest) 199 if err := stream.RecvMsg(m); err != nil { 200 return err 201 } 202 return srv.(EchoServer).ServerStreamingEcho(m, &echoServerStreamingEchoServer{stream}) 203} 204 205type Echo_ServerStreamingEchoServer interface { 206 Send(*EchoResponse) error 207 grpc.ServerStream 208} 209 210type echoServerStreamingEchoServer struct { 211 grpc.ServerStream 212} 213 214func (x *echoServerStreamingEchoServer) Send(m *EchoResponse) error { 215 return x.ServerStream.SendMsg(m) 216} 217 218func _Echo_ClientStreamingEcho_Handler(srv interface{}, stream grpc.ServerStream) error { 219 return srv.(EchoServer).ClientStreamingEcho(&echoClientStreamingEchoServer{stream}) 220} 221 222type Echo_ClientStreamingEchoServer interface { 223 SendAndClose(*EchoResponse) error 224 Recv() (*EchoRequest, error) 225 grpc.ServerStream 226} 227 228type echoClientStreamingEchoServer struct { 229 grpc.ServerStream 230} 231 232func (x *echoClientStreamingEchoServer) SendAndClose(m *EchoResponse) error { 233 return x.ServerStream.SendMsg(m) 234} 235 236func (x *echoClientStreamingEchoServer) Recv() (*EchoRequest, error) { 237 m := new(EchoRequest) 238 if err := x.ServerStream.RecvMsg(m); err != nil { 239 return nil, err 240 } 241 return m, nil 242} 243 244func _Echo_BidirectionalStreamingEcho_Handler(srv interface{}, stream grpc.ServerStream) error { 245 return srv.(EchoServer).BidirectionalStreamingEcho(&echoBidirectionalStreamingEchoServer{stream}) 246} 247 248type Echo_BidirectionalStreamingEchoServer interface { 249 Send(*EchoResponse) error 250 Recv() (*EchoRequest, error) 251 grpc.ServerStream 252} 253 254type echoBidirectionalStreamingEchoServer struct { 255 grpc.ServerStream 256} 257 258func (x *echoBidirectionalStreamingEchoServer) Send(m *EchoResponse) error { 259 return x.ServerStream.SendMsg(m) 260} 261 262func (x *echoBidirectionalStreamingEchoServer) Recv() (*EchoRequest, error) { 263 m := new(EchoRequest) 264 if err := x.ServerStream.RecvMsg(m); err != nil { 265 return nil, err 266 } 267 return m, nil 268} 269 270var _Echo_serviceDesc = grpc.ServiceDesc{ 271 ServiceName: "grpc.examples.echo.Echo", 272 HandlerType: (*EchoServer)(nil), 273 Methods: []grpc.MethodDesc{ 274 { 275 MethodName: "UnaryEcho", 276 Handler: _Echo_UnaryEcho_Handler, 277 }, 278 }, 279 Streams: []grpc.StreamDesc{ 280 { 281 StreamName: "ServerStreamingEcho", 282 Handler: _Echo_ServerStreamingEcho_Handler, 283 ServerStreams: true, 284 }, 285 { 286 StreamName: "ClientStreamingEcho", 287 Handler: _Echo_ClientStreamingEcho_Handler, 288 ClientStreams: true, 289 }, 290 { 291 StreamName: "BidirectionalStreamingEcho", 292 Handler: _Echo_BidirectionalStreamingEcho_Handler, 293 ServerStreams: true, 294 ClientStreams: true, 295 }, 296 }, 297 Metadata: "examples/features/proto/echo/echo.proto", 298} 299