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