blob: fbd88c32ab47385d4c962b76e1a33ac441b12cc2 [file] [log] [blame]
Andrea Campanellac795b7d2021-04-14 13:24:44 +02001// Generated by the gRPC C++ plugin.
2// If you make any local change, they will be lost.
3// source: dmi/hw_metrics_mgmt_service.proto
4#ifndef GRPC_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto__INCLUDED
5#define GRPC_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto__INCLUDED
6
7#include "dmi/hw_metrics_mgmt_service.pb.h"
8
Andrea Campanellafb09e7e2021-04-26 17:22:49 +00009#include <grpc++/impl/codegen/async_stream.h>
10#include <grpc++/impl/codegen/async_unary_call.h>
11#include <grpc++/impl/codegen/method_handler_impl.h>
12#include <grpc++/impl/codegen/proto_utils.h>
13#include <grpc++/impl/codegen/rpc_method.h>
14#include <grpc++/impl/codegen/service_type.h>
15#include <grpc++/impl/codegen/status.h>
16#include <grpc++/impl/codegen/stub_options.h>
17#include <grpc++/impl/codegen/sync_stream.h>
18
19namespace grpc {
20class CompletionQueue;
21class Channel;
22class RpcService;
23class ServerCompletionQueue;
24class ServerContext;
25} // namespace grpc
Andrea Campanellac795b7d2021-04-14 13:24:44 +020026
27namespace dmi {
28
29class NativeMetricsManagementService final {
30 public:
Andrea Campanellac795b7d2021-04-14 13:24:44 +020031 class StubInterface {
32 public:
33 virtual ~StubInterface() {}
34 // List the supported metrics for the passed device.
35 // This would be the first call that you make to know about the metrics that a particular device supports and
36 // then use the UpdateMetricsConfiguration API to monitor only the required metrics.
37 virtual ::grpc::Status ListMetrics(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::dmi::ListMetricsResponse* response) = 0;
38 std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::ListMetricsResponse>> AsyncListMetrics(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::grpc::CompletionQueue* cq) {
39 return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::ListMetricsResponse>>(AsyncListMetricsRaw(context, request, cq));
40 }
Andrea Campanellac795b7d2021-04-14 13:24:44 +020041 // Updates the configuration of the list of metrics in the request
42 // Acts upon single metric configuration, collection of a single metric can be started/stopped
43 // by changing its configuration.
44 //
45 // This configuration is persisted across restart of the device or the device manager
46 virtual ::grpc::Status UpdateMetricsConfiguration(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::dmi::MetricsConfigurationResponse* response) = 0;
47 std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::MetricsConfigurationResponse>> AsyncUpdateMetricsConfiguration(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::grpc::CompletionQueue* cq) {
48 return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::MetricsConfigurationResponse>>(AsyncUpdateMetricsConfigurationRaw(context, request, cq));
49 }
Andrea Campanellac795b7d2021-04-14 13:24:44 +020050 // Get the instantenous value of a metric
51 virtual ::grpc::Status GetMetric(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::dmi::GetMetricResponse* response) = 0;
52 std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::GetMetricResponse>> AsyncGetMetric(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) {
53 return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::GetMetricResponse>>(AsyncGetMetricRaw(context, request, cq));
54 }
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +053055 // Initiate the server streaming of the metrics
56 std::unique_ptr< ::grpc::ClientReaderInterface< ::dmi::Metric>> StreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
57 return std::unique_ptr< ::grpc::ClientReaderInterface< ::dmi::Metric>>(StreamMetricsRaw(context, request));
58 }
59 std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>> AsyncStreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
60 return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>>(AsyncStreamMetricsRaw(context, request, cq, tag));
61 }
Andrea Campanellac795b7d2021-04-14 13:24:44 +020062 private:
63 virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::ListMetricsResponse>* AsyncListMetricsRaw(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::grpc::CompletionQueue* cq) = 0;
Andrea Campanellac795b7d2021-04-14 13:24:44 +020064 virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::MetricsConfigurationResponse>* AsyncUpdateMetricsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::grpc::CompletionQueue* cq) = 0;
Andrea Campanellac795b7d2021-04-14 13:24:44 +020065 virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::GetMetricResponse>* AsyncGetMetricRaw(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) = 0;
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +053066 virtual ::grpc::ClientReaderInterface< ::dmi::Metric>* StreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) = 0;
67 virtual ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>* AsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
Andrea Campanellac795b7d2021-04-14 13:24:44 +020068 };
69 class Stub final : public StubInterface {
70 public:
71 Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);
72 ::grpc::Status ListMetrics(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::dmi::ListMetricsResponse* response) override;
73 std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::ListMetricsResponse>> AsyncListMetrics(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::grpc::CompletionQueue* cq) {
74 return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::ListMetricsResponse>>(AsyncListMetricsRaw(context, request, cq));
75 }
Andrea Campanellac795b7d2021-04-14 13:24:44 +020076 ::grpc::Status UpdateMetricsConfiguration(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::dmi::MetricsConfigurationResponse* response) override;
77 std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::MetricsConfigurationResponse>> AsyncUpdateMetricsConfiguration(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::grpc::CompletionQueue* cq) {
78 return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::MetricsConfigurationResponse>>(AsyncUpdateMetricsConfigurationRaw(context, request, cq));
79 }
Andrea Campanellac795b7d2021-04-14 13:24:44 +020080 ::grpc::Status GetMetric(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::dmi::GetMetricResponse* response) override;
81 std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::GetMetricResponse>> AsyncGetMetric(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) {
82 return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::GetMetricResponse>>(AsyncGetMetricRaw(context, request, cq));
83 }
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +053084 std::unique_ptr< ::grpc::ClientReader< ::dmi::Metric>> StreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
85 return std::unique_ptr< ::grpc::ClientReader< ::dmi::Metric>>(StreamMetricsRaw(context, request));
86 }
87 std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Metric>> AsyncStreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
88 return std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Metric>>(AsyncStreamMetricsRaw(context, request, cq, tag));
89 }
Andrea Campanellac795b7d2021-04-14 13:24:44 +020090
91 private:
92 std::shared_ptr< ::grpc::ChannelInterface> channel_;
Andrea Campanellac795b7d2021-04-14 13:24:44 +020093 ::grpc::ClientAsyncResponseReader< ::dmi::ListMetricsResponse>* AsyncListMetricsRaw(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::grpc::CompletionQueue* cq) override;
Andrea Campanellac795b7d2021-04-14 13:24:44 +020094 ::grpc::ClientAsyncResponseReader< ::dmi::MetricsConfigurationResponse>* AsyncUpdateMetricsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::grpc::CompletionQueue* cq) override;
Andrea Campanellac795b7d2021-04-14 13:24:44 +020095 ::grpc::ClientAsyncResponseReader< ::dmi::GetMetricResponse>* AsyncGetMetricRaw(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) override;
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +053096 ::grpc::ClientReader< ::dmi::Metric>* StreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) override;
97 ::grpc::ClientAsyncReader< ::dmi::Metric>* AsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) override;
Andrea Campanellafb09e7e2021-04-26 17:22:49 +000098 const ::grpc::RpcMethod rpcmethod_ListMetrics_;
99 const ::grpc::RpcMethod rpcmethod_UpdateMetricsConfiguration_;
100 const ::grpc::RpcMethod rpcmethod_GetMetric_;
101 const ::grpc::RpcMethod rpcmethod_StreamMetrics_;
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200102 };
103 static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
104
105 class Service : public ::grpc::Service {
106 public:
107 Service();
108 virtual ~Service();
109 // List the supported metrics for the passed device.
110 // This would be the first call that you make to know about the metrics that a particular device supports and
111 // then use the UpdateMetricsConfiguration API to monitor only the required metrics.
112 virtual ::grpc::Status ListMetrics(::grpc::ServerContext* context, const ::dmi::HardwareID* request, ::dmi::ListMetricsResponse* response);
113 // Updates the configuration of the list of metrics in the request
114 // Acts upon single metric configuration, collection of a single metric can be started/stopped
115 // by changing its configuration.
116 //
117 // This configuration is persisted across restart of the device or the device manager
118 virtual ::grpc::Status UpdateMetricsConfiguration(::grpc::ServerContext* context, const ::dmi::MetricsConfigurationRequest* request, ::dmi::MetricsConfigurationResponse* response);
119 // Get the instantenous value of a metric
120 virtual ::grpc::Status GetMetric(::grpc::ServerContext* context, const ::dmi::GetMetricRequest* request, ::dmi::GetMetricResponse* response);
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530121 // Initiate the server streaming of the metrics
122 virtual ::grpc::Status StreamMetrics(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Metric>* writer);
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200123 };
124 template <class BaseClass>
125 class WithAsyncMethod_ListMetrics : public BaseClass {
126 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000127 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200128 public:
129 WithAsyncMethod_ListMetrics() {
130 ::grpc::Service::MarkMethodAsync(0);
131 }
132 ~WithAsyncMethod_ListMetrics() override {
133 BaseClassMustBeDerivedFromService(this);
134 }
135 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000136 ::grpc::Status ListMetrics(::grpc::ServerContext* context, const ::dmi::HardwareID* request, ::dmi::ListMetricsResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200137 abort();
138 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
139 }
140 void RequestListMetrics(::grpc::ServerContext* context, ::dmi::HardwareID* request, ::grpc::ServerAsyncResponseWriter< ::dmi::ListMetricsResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
141 ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag);
142 }
143 };
144 template <class BaseClass>
145 class WithAsyncMethod_UpdateMetricsConfiguration : public BaseClass {
146 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000147 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200148 public:
149 WithAsyncMethod_UpdateMetricsConfiguration() {
150 ::grpc::Service::MarkMethodAsync(1);
151 }
152 ~WithAsyncMethod_UpdateMetricsConfiguration() override {
153 BaseClassMustBeDerivedFromService(this);
154 }
155 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000156 ::grpc::Status UpdateMetricsConfiguration(::grpc::ServerContext* context, const ::dmi::MetricsConfigurationRequest* request, ::dmi::MetricsConfigurationResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200157 abort();
158 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
159 }
160 void RequestUpdateMetricsConfiguration(::grpc::ServerContext* context, ::dmi::MetricsConfigurationRequest* request, ::grpc::ServerAsyncResponseWriter< ::dmi::MetricsConfigurationResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
161 ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
162 }
163 };
164 template <class BaseClass>
165 class WithAsyncMethod_GetMetric : public BaseClass {
166 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000167 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200168 public:
169 WithAsyncMethod_GetMetric() {
170 ::grpc::Service::MarkMethodAsync(2);
171 }
172 ~WithAsyncMethod_GetMetric() override {
173 BaseClassMustBeDerivedFromService(this);
174 }
175 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000176 ::grpc::Status GetMetric(::grpc::ServerContext* context, const ::dmi::GetMetricRequest* request, ::dmi::GetMetricResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200177 abort();
178 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
179 }
180 void RequestGetMetric(::grpc::ServerContext* context, ::dmi::GetMetricRequest* request, ::grpc::ServerAsyncResponseWriter< ::dmi::GetMetricResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
181 ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
182 }
183 };
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530184 template <class BaseClass>
185 class WithAsyncMethod_StreamMetrics : public BaseClass {
186 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000187 void BaseClassMustBeDerivedFromService(const Service *service) {}
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530188 public:
189 WithAsyncMethod_StreamMetrics() {
190 ::grpc::Service::MarkMethodAsync(3);
191 }
192 ~WithAsyncMethod_StreamMetrics() override {
193 BaseClassMustBeDerivedFromService(this);
194 }
195 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000196 ::grpc::Status StreamMetrics(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Metric>* writer) final override {
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530197 abort();
198 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
199 }
200 void RequestStreamMetrics(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncWriter< ::dmi::Metric>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
201 ::grpc::Service::RequestAsyncServerStreaming(3, context, request, writer, new_call_cq, notification_cq, tag);
202 }
203 };
204 typedef WithAsyncMethod_ListMetrics<WithAsyncMethod_UpdateMetricsConfiguration<WithAsyncMethod_GetMetric<WithAsyncMethod_StreamMetrics<Service > > > > AsyncService;
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200205 template <class BaseClass>
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200206 class WithGenericMethod_ListMetrics : public BaseClass {
207 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000208 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200209 public:
210 WithGenericMethod_ListMetrics() {
211 ::grpc::Service::MarkMethodGeneric(0);
212 }
213 ~WithGenericMethod_ListMetrics() override {
214 BaseClassMustBeDerivedFromService(this);
215 }
216 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000217 ::grpc::Status ListMetrics(::grpc::ServerContext* context, const ::dmi::HardwareID* request, ::dmi::ListMetricsResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200218 abort();
219 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
220 }
221 };
222 template <class BaseClass>
223 class WithGenericMethod_UpdateMetricsConfiguration : public BaseClass {
224 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000225 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200226 public:
227 WithGenericMethod_UpdateMetricsConfiguration() {
228 ::grpc::Service::MarkMethodGeneric(1);
229 }
230 ~WithGenericMethod_UpdateMetricsConfiguration() override {
231 BaseClassMustBeDerivedFromService(this);
232 }
233 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000234 ::grpc::Status UpdateMetricsConfiguration(::grpc::ServerContext* context, const ::dmi::MetricsConfigurationRequest* request, ::dmi::MetricsConfigurationResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200235 abort();
236 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
237 }
238 };
239 template <class BaseClass>
240 class WithGenericMethod_GetMetric : public BaseClass {
241 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000242 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200243 public:
244 WithGenericMethod_GetMetric() {
245 ::grpc::Service::MarkMethodGeneric(2);
246 }
247 ~WithGenericMethod_GetMetric() override {
248 BaseClassMustBeDerivedFromService(this);
249 }
250 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000251 ::grpc::Status GetMetric(::grpc::ServerContext* context, const ::dmi::GetMetricRequest* request, ::dmi::GetMetricResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200252 abort();
253 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
254 }
255 };
256 template <class BaseClass>
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530257 class WithGenericMethod_StreamMetrics : public BaseClass {
258 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000259 void BaseClassMustBeDerivedFromService(const Service *service) {}
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530260 public:
261 WithGenericMethod_StreamMetrics() {
262 ::grpc::Service::MarkMethodGeneric(3);
263 }
264 ~WithGenericMethod_StreamMetrics() override {
265 BaseClassMustBeDerivedFromService(this);
266 }
267 // disable synchronous version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000268 ::grpc::Status StreamMetrics(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Metric>* writer) final override {
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530269 abort();
270 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
271 }
272 };
273 template <class BaseClass>
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200274 class WithStreamedUnaryMethod_ListMetrics : public BaseClass {
275 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000276 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200277 public:
278 WithStreamedUnaryMethod_ListMetrics() {
279 ::grpc::Service::MarkMethodStreamed(0,
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000280 new ::grpc::StreamedUnaryHandler< ::dmi::HardwareID, ::dmi::ListMetricsResponse>(std::bind(&WithStreamedUnaryMethod_ListMetrics<BaseClass>::StreamedListMetrics, this, std::placeholders::_1, std::placeholders::_2)));
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200281 }
282 ~WithStreamedUnaryMethod_ListMetrics() override {
283 BaseClassMustBeDerivedFromService(this);
284 }
285 // disable regular version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000286 ::grpc::Status ListMetrics(::grpc::ServerContext* context, const ::dmi::HardwareID* request, ::dmi::ListMetricsResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200287 abort();
288 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
289 }
290 // replace default version of method with streamed unary
291 virtual ::grpc::Status StreamedListMetrics(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::dmi::HardwareID,::dmi::ListMetricsResponse>* server_unary_streamer) = 0;
292 };
293 template <class BaseClass>
294 class WithStreamedUnaryMethod_UpdateMetricsConfiguration : public BaseClass {
295 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000296 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200297 public:
298 WithStreamedUnaryMethod_UpdateMetricsConfiguration() {
299 ::grpc::Service::MarkMethodStreamed(1,
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000300 new ::grpc::StreamedUnaryHandler< ::dmi::MetricsConfigurationRequest, ::dmi::MetricsConfigurationResponse>(std::bind(&WithStreamedUnaryMethod_UpdateMetricsConfiguration<BaseClass>::StreamedUpdateMetricsConfiguration, this, std::placeholders::_1, std::placeholders::_2)));
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200301 }
302 ~WithStreamedUnaryMethod_UpdateMetricsConfiguration() override {
303 BaseClassMustBeDerivedFromService(this);
304 }
305 // disable regular version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000306 ::grpc::Status UpdateMetricsConfiguration(::grpc::ServerContext* context, const ::dmi::MetricsConfigurationRequest* request, ::dmi::MetricsConfigurationResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200307 abort();
308 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
309 }
310 // replace default version of method with streamed unary
311 virtual ::grpc::Status StreamedUpdateMetricsConfiguration(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::dmi::MetricsConfigurationRequest,::dmi::MetricsConfigurationResponse>* server_unary_streamer) = 0;
312 };
313 template <class BaseClass>
314 class WithStreamedUnaryMethod_GetMetric : public BaseClass {
315 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000316 void BaseClassMustBeDerivedFromService(const Service *service) {}
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200317 public:
318 WithStreamedUnaryMethod_GetMetric() {
319 ::grpc::Service::MarkMethodStreamed(2,
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000320 new ::grpc::StreamedUnaryHandler< ::dmi::GetMetricRequest, ::dmi::GetMetricResponse>(std::bind(&WithStreamedUnaryMethod_GetMetric<BaseClass>::StreamedGetMetric, this, std::placeholders::_1, std::placeholders::_2)));
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200321 }
322 ~WithStreamedUnaryMethod_GetMetric() override {
323 BaseClassMustBeDerivedFromService(this);
324 }
325 // disable regular version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000326 ::grpc::Status GetMetric(::grpc::ServerContext* context, const ::dmi::GetMetricRequest* request, ::dmi::GetMetricResponse* response) final override {
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200327 abort();
328 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
329 }
330 // replace default version of method with streamed unary
331 virtual ::grpc::Status StreamedGetMetric(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::dmi::GetMetricRequest,::dmi::GetMetricResponse>* server_unary_streamer) = 0;
332 };
333 typedef WithStreamedUnaryMethod_ListMetrics<WithStreamedUnaryMethod_UpdateMetricsConfiguration<WithStreamedUnaryMethod_GetMetric<Service > > > StreamedUnaryService;
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530334 template <class BaseClass>
335 class WithSplitStreamingMethod_StreamMetrics : public BaseClass {
336 private:
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000337 void BaseClassMustBeDerivedFromService(const Service *service) {}
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530338 public:
339 WithSplitStreamingMethod_StreamMetrics() {
340 ::grpc::Service::MarkMethodStreamed(3,
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000341 new ::grpc::SplitServerStreamingHandler< ::google::protobuf::Empty, ::dmi::Metric>(std::bind(&WithSplitStreamingMethod_StreamMetrics<BaseClass>::StreamedStreamMetrics, this, std::placeholders::_1, std::placeholders::_2)));
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530342 }
343 ~WithSplitStreamingMethod_StreamMetrics() override {
344 BaseClassMustBeDerivedFromService(this);
345 }
346 // disable regular version of this method
Andrea Campanellafb09e7e2021-04-26 17:22:49 +0000347 ::grpc::Status StreamMetrics(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Metric>* writer) final override {
Chandrakanth Nalkudre Gowda68590a42021-04-22 15:19:21 +0530348 abort();
349 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
350 }
351 // replace default version of method with split streamed
352 virtual ::grpc::Status StreamedStreamMetrics(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::google::protobuf::Empty,::dmi::Metric>* server_split_streamer) = 0;
353 };
354 typedef WithSplitStreamingMethod_StreamMetrics<Service > SplitStreamedService;
355 typedef WithStreamedUnaryMethod_ListMetrics<WithStreamedUnaryMethod_UpdateMetricsConfiguration<WithStreamedUnaryMethod_GetMetric<WithSplitStreamingMethod_StreamMetrics<Service > > > > StreamedService;
Andrea Campanellac795b7d2021-04-14 13:24:44 +0200356};
357
358} // namespace dmi
359
360
361#endif // GRPC_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto__INCLUDED