github.com/grpc-ecosystem/grpc-gateway/v2@v2.19.1/examples/internal/proto/examplepb/stream.pb.gw.go (about) 1 // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. 2 // source: examples/internal/proto/examplepb/stream.proto 3 4 /* 5 Package examplepb is a reverse proxy. 6 7 It translates gRPC into RESTful JSON APIs. 8 */ 9 package examplepb 10 11 import ( 12 "context" 13 "io" 14 "net/http" 15 16 "github.com/grpc-ecosystem/grpc-gateway/v2/examples/internal/proto/sub" 17 "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" 18 "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" 19 "google.golang.org/grpc" 20 "google.golang.org/grpc/codes" 21 "google.golang.org/grpc/grpclog" 22 "google.golang.org/grpc/metadata" 23 "google.golang.org/grpc/status" 24 "google.golang.org/protobuf/proto" 25 ) 26 27 // Suppress "imported and not used" errors 28 var _ codes.Code 29 var _ io.Reader 30 var _ status.Status 31 var _ = runtime.String 32 var _ = utilities.NewDoubleArray 33 var _ = metadata.Join 34 35 func request_StreamService_BulkCreate_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { 36 var metadata runtime.ServerMetadata 37 stream, err := client.BulkCreate(ctx) 38 if err != nil { 39 grpclog.Infof("Failed to start streaming: %v", err) 40 return nil, metadata, err 41 } 42 dec := marshaler.NewDecoder(req.Body) 43 for { 44 var protoReq ABitOfEverything 45 err = dec.Decode(&protoReq) 46 if err == io.EOF { 47 break 48 } 49 if err != nil { 50 grpclog.Infof("Failed to decode request: %v", err) 51 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) 52 } 53 if err = stream.Send(&protoReq); err != nil { 54 if err == io.EOF { 55 break 56 } 57 grpclog.Infof("Failed to send request: %v", err) 58 return nil, metadata, err 59 } 60 } 61 62 if err := stream.CloseSend(); err != nil { 63 grpclog.Infof("Failed to terminate client stream: %v", err) 64 return nil, metadata, err 65 } 66 header, err := stream.Header() 67 if err != nil { 68 grpclog.Infof("Failed to get header from client: %v", err) 69 return nil, metadata, err 70 } 71 metadata.HeaderMD = header 72 73 msg, err := stream.CloseAndRecv() 74 metadata.TrailerMD = stream.Trailer() 75 return msg, metadata, err 76 77 } 78 79 var ( 80 filter_StreamService_List_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} 81 ) 82 83 func request_StreamService_List_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (StreamService_ListClient, runtime.ServerMetadata, error) { 84 var protoReq Options 85 var metadata runtime.ServerMetadata 86 87 if err := req.ParseForm(); err != nil { 88 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) 89 } 90 if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamService_List_0); err != nil { 91 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) 92 } 93 94 stream, err := client.List(ctx, &protoReq) 95 if err != nil { 96 return nil, metadata, err 97 } 98 header, err := stream.Header() 99 if err != nil { 100 return nil, metadata, err 101 } 102 metadata.HeaderMD = header 103 return stream, metadata, nil 104 105 } 106 107 func request_StreamService_BulkEcho_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (StreamService_BulkEchoClient, runtime.ServerMetadata, error) { 108 var metadata runtime.ServerMetadata 109 stream, err := client.BulkEcho(ctx) 110 if err != nil { 111 grpclog.Infof("Failed to start streaming: %v", err) 112 return nil, metadata, err 113 } 114 dec := marshaler.NewDecoder(req.Body) 115 handleSend := func() error { 116 var protoReq sub.StringMessage 117 err := dec.Decode(&protoReq) 118 if err == io.EOF { 119 return err 120 } 121 if err != nil { 122 grpclog.Infof("Failed to decode request: %v", err) 123 return err 124 } 125 if err := stream.Send(&protoReq); err != nil { 126 grpclog.Infof("Failed to send request: %v", err) 127 return err 128 } 129 return nil 130 } 131 go func() { 132 for { 133 if err := handleSend(); err != nil { 134 break 135 } 136 } 137 if err := stream.CloseSend(); err != nil { 138 grpclog.Infof("Failed to terminate client stream: %v", err) 139 } 140 }() 141 header, err := stream.Header() 142 if err != nil { 143 grpclog.Infof("Failed to get header from client: %v", err) 144 return nil, metadata, err 145 } 146 metadata.HeaderMD = header 147 return stream, metadata, nil 148 } 149 150 var ( 151 filter_StreamService_Download_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} 152 ) 153 154 func request_StreamService_Download_0(ctx context.Context, marshaler runtime.Marshaler, client StreamServiceClient, req *http.Request, pathParams map[string]string) (StreamService_DownloadClient, runtime.ServerMetadata, error) { 155 var protoReq Options 156 var metadata runtime.ServerMetadata 157 158 if err := req.ParseForm(); err != nil { 159 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) 160 } 161 if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_StreamService_Download_0); err != nil { 162 return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) 163 } 164 165 stream, err := client.Download(ctx, &protoReq) 166 if err != nil { 167 return nil, metadata, err 168 } 169 header, err := stream.Header() 170 if err != nil { 171 return nil, metadata, err 172 } 173 metadata.HeaderMD = header 174 return stream, metadata, nil 175 176 } 177 178 // RegisterStreamServiceHandlerServer registers the http handlers for service StreamService to "mux". 179 // UnaryRPC :call StreamServiceServer directly. 180 // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. 181 // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterStreamServiceHandlerFromEndpoint instead. 182 func RegisterStreamServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server StreamServiceServer) error { 183 184 mux.Handle("POST", pattern_StreamService_BulkCreate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 185 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") 186 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 187 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 188 return 189 }) 190 191 mux.Handle("GET", pattern_StreamService_List_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 192 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") 193 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 194 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 195 return 196 }) 197 198 mux.Handle("POST", pattern_StreamService_BulkEcho_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 199 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") 200 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 201 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 202 return 203 }) 204 205 mux.Handle("GET", pattern_StreamService_Download_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 206 err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") 207 _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 208 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 209 return 210 }) 211 212 return nil 213 } 214 215 // RegisterStreamServiceHandlerFromEndpoint is same as RegisterStreamServiceHandler but 216 // automatically dials to "endpoint" and closes the connection when "ctx" gets done. 217 func RegisterStreamServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { 218 conn, err := grpc.DialContext(ctx, endpoint, opts...) 219 if err != nil { 220 return err 221 } 222 defer func() { 223 if err != nil { 224 if cerr := conn.Close(); cerr != nil { 225 grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) 226 } 227 return 228 } 229 go func() { 230 <-ctx.Done() 231 if cerr := conn.Close(); cerr != nil { 232 grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) 233 } 234 }() 235 }() 236 237 return RegisterStreamServiceHandler(ctx, mux, conn) 238 } 239 240 // RegisterStreamServiceHandler registers the http handlers for service StreamService to "mux". 241 // The handlers forward requests to the grpc endpoint over "conn". 242 func RegisterStreamServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { 243 return RegisterStreamServiceHandlerClient(ctx, mux, NewStreamServiceClient(conn)) 244 } 245 246 // RegisterStreamServiceHandlerClient registers the http handlers for service StreamService 247 // to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "StreamServiceClient". 248 // Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "StreamServiceClient" 249 // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in 250 // "StreamServiceClient" to call the correct interceptors. 251 func RegisterStreamServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client StreamServiceClient) error { 252 253 mux.Handle("POST", pattern_StreamService_BulkCreate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 254 ctx, cancel := context.WithCancel(req.Context()) 255 defer cancel() 256 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 257 var err error 258 var annotatedContext context.Context 259 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/BulkCreate", runtime.WithHTTPPathPattern("/v1/example/a_bit_of_everything/bulk")) 260 if err != nil { 261 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 262 return 263 } 264 resp, md, err := request_StreamService_BulkCreate_0(annotatedContext, inboundMarshaler, client, req, pathParams) 265 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) 266 if err != nil { 267 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) 268 return 269 } 270 271 forward_StreamService_BulkCreate_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) 272 273 }) 274 275 mux.Handle("GET", pattern_StreamService_List_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 276 ctx, cancel := context.WithCancel(req.Context()) 277 defer cancel() 278 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 279 var err error 280 var annotatedContext context.Context 281 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/List", runtime.WithHTTPPathPattern("/v1/example/a_bit_of_everything")) 282 if err != nil { 283 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 284 return 285 } 286 resp, md, err := request_StreamService_List_0(annotatedContext, inboundMarshaler, client, req, pathParams) 287 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) 288 if err != nil { 289 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) 290 return 291 } 292 293 forward_StreamService_List_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) 294 295 }) 296 297 mux.Handle("POST", pattern_StreamService_BulkEcho_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 298 ctx, cancel := context.WithCancel(req.Context()) 299 defer cancel() 300 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 301 var err error 302 var annotatedContext context.Context 303 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/BulkEcho", runtime.WithHTTPPathPattern("/v1/example/a_bit_of_everything/echo")) 304 if err != nil { 305 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 306 return 307 } 308 resp, md, err := request_StreamService_BulkEcho_0(annotatedContext, inboundMarshaler, client, req, pathParams) 309 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) 310 if err != nil { 311 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) 312 return 313 } 314 315 forward_StreamService_BulkEcho_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) 316 317 }) 318 319 mux.Handle("GET", pattern_StreamService_Download_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { 320 ctx, cancel := context.WithCancel(req.Context()) 321 defer cancel() 322 inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) 323 var err error 324 var annotatedContext context.Context 325 annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/grpc.gateway.examples.internal.proto.examplepb.StreamService/Download", runtime.WithHTTPPathPattern("/v1/example/download")) 326 if err != nil { 327 runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) 328 return 329 } 330 resp, md, err := request_StreamService_Download_0(annotatedContext, inboundMarshaler, client, req, pathParams) 331 annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) 332 if err != nil { 333 runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) 334 return 335 } 336 337 forward_StreamService_Download_0(annotatedContext, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) 338 339 }) 340 341 return nil 342 } 343 344 var ( 345 pattern_StreamService_BulkCreate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "example", "a_bit_of_everything", "bulk"}, "")) 346 347 pattern_StreamService_List_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "example", "a_bit_of_everything"}, "")) 348 349 pattern_StreamService_BulkEcho_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "example", "a_bit_of_everything", "echo"}, "")) 350 351 pattern_StreamService_Download_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "example", "download"}, "")) 352 ) 353 354 var ( 355 forward_StreamService_BulkCreate_0 = runtime.ForwardResponseMessage 356 357 forward_StreamService_List_0 = runtime.ForwardResponseStream 358 359 forward_StreamService_BulkEcho_0 = runtime.ForwardResponseStream 360 361 forward_StreamService_Download_0 = runtime.ForwardResponseStream 362 )