google.golang.org/grpc@v1.72.2/interop/stress/grpc_testing/metrics_grpc.pb.go (about) 1 // Copyright 2015-2016 gRPC authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Contains the definitions for a metrics service and the type of metrics 16 // exposed by the service. 17 // 18 // Currently, 'Gauge' (i.e a metric that represents the measured value of 19 // something at an instant of time) is the only metric type supported by the 20 // service. 21 22 // Code generated by protoc-gen-go-grpc. DO NOT EDIT. 23 // versions: 24 // - protoc-gen-go-grpc v1.5.1 25 // - protoc v5.27.1 26 // source: interop/stress/grpc_testing/metrics.proto 27 28 package grpc_testing 29 30 import ( 31 context "context" 32 grpc "google.golang.org/grpc" 33 codes "google.golang.org/grpc/codes" 34 status "google.golang.org/grpc/status" 35 ) 36 37 // This is a compile-time assertion to ensure that this generated file 38 // is compatible with the grpc package it is being compiled against. 39 // Requires gRPC-Go v1.64.0 or later. 40 const _ = grpc.SupportPackageIsVersion9 41 42 const ( 43 MetricsService_GetAllGauges_FullMethodName = "/grpc.testing.MetricsService/GetAllGauges" 44 MetricsService_GetGauge_FullMethodName = "/grpc.testing.MetricsService/GetGauge" 45 ) 46 47 // MetricsServiceClient is the client API for MetricsService service. 48 // 49 // 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. 50 type MetricsServiceClient interface { 51 // Returns the values of all the gauges that are currently being maintained by 52 // the service 53 GetAllGauges(ctx context.Context, in *EmptyMessage, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GaugeResponse], error) 54 // Returns the value of one gauge 55 GetGauge(ctx context.Context, in *GaugeRequest, opts ...grpc.CallOption) (*GaugeResponse, error) 56 } 57 58 type metricsServiceClient struct { 59 cc grpc.ClientConnInterface 60 } 61 62 func NewMetricsServiceClient(cc grpc.ClientConnInterface) MetricsServiceClient { 63 return &metricsServiceClient{cc} 64 } 65 66 func (c *metricsServiceClient) GetAllGauges(ctx context.Context, in *EmptyMessage, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GaugeResponse], error) { 67 cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) 68 stream, err := c.cc.NewStream(ctx, &MetricsService_ServiceDesc.Streams[0], MetricsService_GetAllGauges_FullMethodName, cOpts...) 69 if err != nil { 70 return nil, err 71 } 72 x := &grpc.GenericClientStream[EmptyMessage, GaugeResponse]{ClientStream: stream} 73 if err := x.ClientStream.SendMsg(in); err != nil { 74 return nil, err 75 } 76 if err := x.ClientStream.CloseSend(); err != nil { 77 return nil, err 78 } 79 return x, nil 80 } 81 82 // This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. 83 type MetricsService_GetAllGaugesClient = grpc.ServerStreamingClient[GaugeResponse] 84 85 func (c *metricsServiceClient) GetGauge(ctx context.Context, in *GaugeRequest, opts ...grpc.CallOption) (*GaugeResponse, error) { 86 cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) 87 out := new(GaugeResponse) 88 err := c.cc.Invoke(ctx, MetricsService_GetGauge_FullMethodName, in, out, cOpts...) 89 if err != nil { 90 return nil, err 91 } 92 return out, nil 93 } 94 95 // MetricsServiceServer is the server API for MetricsService service. 96 // All implementations must embed UnimplementedMetricsServiceServer 97 // for forward compatibility. 98 type MetricsServiceServer interface { 99 // Returns the values of all the gauges that are currently being maintained by 100 // the service 101 GetAllGauges(*EmptyMessage, grpc.ServerStreamingServer[GaugeResponse]) error 102 // Returns the value of one gauge 103 GetGauge(context.Context, *GaugeRequest) (*GaugeResponse, error) 104 mustEmbedUnimplementedMetricsServiceServer() 105 } 106 107 // UnimplementedMetricsServiceServer must be embedded to have 108 // forward compatible implementations. 109 // 110 // NOTE: this should be embedded by value instead of pointer to avoid a nil 111 // pointer dereference when methods are called. 112 type UnimplementedMetricsServiceServer struct{} 113 114 func (UnimplementedMetricsServiceServer) GetAllGauges(*EmptyMessage, grpc.ServerStreamingServer[GaugeResponse]) error { 115 return status.Errorf(codes.Unimplemented, "method GetAllGauges not implemented") 116 } 117 func (UnimplementedMetricsServiceServer) GetGauge(context.Context, *GaugeRequest) (*GaugeResponse, error) { 118 return nil, status.Errorf(codes.Unimplemented, "method GetGauge not implemented") 119 } 120 func (UnimplementedMetricsServiceServer) mustEmbedUnimplementedMetricsServiceServer() {} 121 func (UnimplementedMetricsServiceServer) testEmbeddedByValue() {} 122 123 // UnsafeMetricsServiceServer may be embedded to opt out of forward compatibility for this service. 124 // Use of this interface is not recommended, as added methods to MetricsServiceServer will 125 // result in compilation errors. 126 type UnsafeMetricsServiceServer interface { 127 mustEmbedUnimplementedMetricsServiceServer() 128 } 129 130 func RegisterMetricsServiceServer(s grpc.ServiceRegistrar, srv MetricsServiceServer) { 131 // If the following call panics, it indicates UnimplementedMetricsServiceServer was 132 // embedded by pointer and is nil. This will cause panics if an 133 // unimplemented method is ever invoked, so we test this at initialization 134 // time to prevent it from happening at runtime later due to I/O. 135 if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { 136 t.testEmbeddedByValue() 137 } 138 s.RegisterService(&MetricsService_ServiceDesc, srv) 139 } 140 141 func _MetricsService_GetAllGauges_Handler(srv interface{}, stream grpc.ServerStream) error { 142 m := new(EmptyMessage) 143 if err := stream.RecvMsg(m); err != nil { 144 return err 145 } 146 return srv.(MetricsServiceServer).GetAllGauges(m, &grpc.GenericServerStream[EmptyMessage, GaugeResponse]{ServerStream: stream}) 147 } 148 149 // This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. 150 type MetricsService_GetAllGaugesServer = grpc.ServerStreamingServer[GaugeResponse] 151 152 func _MetricsService_GetGauge_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 153 in := new(GaugeRequest) 154 if err := dec(in); err != nil { 155 return nil, err 156 } 157 if interceptor == nil { 158 return srv.(MetricsServiceServer).GetGauge(ctx, in) 159 } 160 info := &grpc.UnaryServerInfo{ 161 Server: srv, 162 FullMethod: MetricsService_GetGauge_FullMethodName, 163 } 164 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 165 return srv.(MetricsServiceServer).GetGauge(ctx, req.(*GaugeRequest)) 166 } 167 return interceptor(ctx, in, info, handler) 168 } 169 170 // MetricsService_ServiceDesc is the grpc.ServiceDesc for MetricsService service. 171 // It's only intended for direct use with grpc.RegisterService, 172 // and not to be introspected or modified (even as a copy) 173 var MetricsService_ServiceDesc = grpc.ServiceDesc{ 174 ServiceName: "grpc.testing.MetricsService", 175 HandlerType: (*MetricsServiceServer)(nil), 176 Methods: []grpc.MethodDesc{ 177 { 178 MethodName: "GetGauge", 179 Handler: _MetricsService_GetGauge_Handler, 180 }, 181 }, 182 Streams: []grpc.StreamDesc{ 183 { 184 StreamName: "GetAllGauges", 185 Handler: _MetricsService_GetAllGauges_Handler, 186 ServerStreams: true, 187 }, 188 }, 189 Metadata: "interop/stress/grpc_testing/metrics.proto", 190 }