compiler_test_golden 57 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321
  1. // Generated by the gRPC C++ plugin.
  2. // If you make any local change, they will be lost.
  3. // source: src/proto/grpc/testing/compiler_test.proto
  4. // Original file comments:
  5. // Copyright 2016 gRPC authors.
  6. //
  7. // Licensed under the Apache License, Version 2.0 (the "License");
  8. // you may not use this file except in compliance with the License.
  9. // You may obtain a copy of the License at
  10. //
  11. // http://www.apache.org/licenses/LICENSE-2.0
  12. //
  13. // Unless required by applicable law or agreed to in writing, software
  14. // distributed under the License is distributed on an "AS IS" BASIS,
  15. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  16. // See the License for the specific language governing permissions and
  17. // limitations under the License.
  18. //
  19. // File detached comment 1
  20. //
  21. // File detached comment 2
  22. //
  23. // File leading comment 1
  24. #ifndef GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED
  25. #define GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED
  26. #include "src/proto/grpc/testing/compiler_test.pb.h"
  27. #include <grpcpp/impl/codegen/async_generic_service.h>
  28. #include <grpcpp/impl/codegen/async_stream.h>
  29. #include <grpcpp/impl/codegen/async_unary_call.h>
  30. #include <grpcpp/impl/codegen/client_callback.h>
  31. #include <grpcpp/impl/codegen/method_handler_impl.h>
  32. #include <grpcpp/impl/codegen/proto_utils.h>
  33. #include <grpcpp/impl/codegen/rpc_method.h>
  34. #include <grpcpp/impl/codegen/server_callback.h>
  35. #include <grpcpp/impl/codegen/service_type.h>
  36. #include <grpcpp/impl/codegen/status.h>
  37. #include <grpcpp/impl/codegen/stub_options.h>
  38. #include <grpcpp/impl/codegen/sync_stream.h>
  39. #include <functional>
  40. namespace grpc {
  41. class CompletionQueue;
  42. class Channel;
  43. class ServerCompletionQueue;
  44. class ServerContext;
  45. } // namespace grpc
  46. namespace grpc {
  47. namespace testing {
  48. // ServiceA detached comment 1
  49. //
  50. // ServiceA detached comment 2
  51. //
  52. // ServiceA leading comment 1
  53. class ServiceA final {
  54. public:
  55. static constexpr char const* service_full_name() {
  56. return "grpc.testing.ServiceA";
  57. }
  58. class StubInterface {
  59. public:
  60. virtual ~StubInterface() {}
  61. // MethodA1 leading comment 1
  62. virtual ::grpc::Status MethodA1(::grpc::ClientContext* context,
  63. const ::grpc::testing::Request& request,
  64. ::grpc::testing::Response* response) = 0;
  65. std::unique_ptr<
  66. ::grpc::ClientAsyncResponseReaderInterface<::grpc::testing::Response>>
  67. AsyncMethodA1(::grpc::ClientContext* context,
  68. const ::grpc::testing::Request& request,
  69. ::grpc::CompletionQueue* cq) {
  70. return std::unique_ptr<::grpc::ClientAsyncResponseReaderInterface<
  71. ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq));
  72. }
  73. std::unique_ptr<
  74. ::grpc::ClientAsyncResponseReaderInterface<::grpc::testing::Response>>
  75. PrepareAsyncMethodA1(::grpc::ClientContext* context,
  76. const ::grpc::testing::Request& request,
  77. ::grpc::CompletionQueue* cq) {
  78. return std::unique_ptr<::grpc::ClientAsyncResponseReaderInterface<
  79. ::grpc::testing::Response>>(
  80. PrepareAsyncMethodA1Raw(context, request, cq));
  81. }
  82. // MethodA1 trailing comment 1
  83. // MethodA2 detached leading comment 1
  84. //
  85. // Method A2 leading comment 1
  86. // Method A2 leading comment 2
  87. std::unique_ptr<::grpc::ClientWriterInterface<::grpc::testing::Request>>
  88. MethodA2(::grpc::ClientContext* context,
  89. ::grpc::testing::Response* response) {
  90. return std::unique_ptr<
  91. ::grpc::ClientWriterInterface<::grpc::testing::Request>>(
  92. MethodA2Raw(context, response));
  93. }
  94. std::unique_ptr<
  95. ::grpc::ClientAsyncWriterInterface<::grpc::testing::Request>>
  96. AsyncMethodA2(::grpc::ClientContext* context,
  97. ::grpc::testing::Response* response,
  98. ::grpc::CompletionQueue* cq, void* tag) {
  99. return std::unique_ptr<
  100. ::grpc::ClientAsyncWriterInterface<::grpc::testing::Request>>(
  101. AsyncMethodA2Raw(context, response, cq, tag));
  102. }
  103. std::unique_ptr<
  104. ::grpc::ClientAsyncWriterInterface<::grpc::testing::Request>>
  105. PrepareAsyncMethodA2(::grpc::ClientContext* context,
  106. ::grpc::testing::Response* response,
  107. ::grpc::CompletionQueue* cq) {
  108. return std::unique_ptr<
  109. ::grpc::ClientAsyncWriterInterface<::grpc::testing::Request>>(
  110. PrepareAsyncMethodA2Raw(context, response, cq));
  111. }
  112. // MethodA2 trailing comment 1
  113. // Method A3 leading comment 1
  114. std::unique_ptr<::grpc::ClientReaderInterface<::grpc::testing::Response>>
  115. MethodA3(::grpc::ClientContext* context,
  116. const ::grpc::testing::Request& request) {
  117. return std::unique_ptr<
  118. ::grpc::ClientReaderInterface<::grpc::testing::Response>>(
  119. MethodA3Raw(context, request));
  120. }
  121. std::unique_ptr<
  122. ::grpc::ClientAsyncReaderInterface<::grpc::testing::Response>>
  123. AsyncMethodA3(::grpc::ClientContext* context,
  124. const ::grpc::testing::Request& request,
  125. ::grpc::CompletionQueue* cq, void* tag) {
  126. return std::unique_ptr<
  127. ::grpc::ClientAsyncReaderInterface<::grpc::testing::Response>>(
  128. AsyncMethodA3Raw(context, request, cq, tag));
  129. }
  130. std::unique_ptr<
  131. ::grpc::ClientAsyncReaderInterface<::grpc::testing::Response>>
  132. PrepareAsyncMethodA3(::grpc::ClientContext* context,
  133. const ::grpc::testing::Request& request,
  134. ::grpc::CompletionQueue* cq) {
  135. return std::unique_ptr<
  136. ::grpc::ClientAsyncReaderInterface<::grpc::testing::Response>>(
  137. PrepareAsyncMethodA3Raw(context, request, cq));
  138. }
  139. // Method A3 trailing comment 1
  140. // Method A4 leading comment 1
  141. std::unique_ptr<::grpc::ClientReaderWriterInterface<
  142. ::grpc::testing::Request, ::grpc::testing::Response>>
  143. MethodA4(::grpc::ClientContext* context) {
  144. return std::unique_ptr<::grpc::ClientReaderWriterInterface<
  145. ::grpc::testing::Request, ::grpc::testing::Response>>(
  146. MethodA4Raw(context));
  147. }
  148. std::unique_ptr<::grpc::ClientAsyncReaderWriterInterface<
  149. ::grpc::testing::Request, ::grpc::testing::Response>>
  150. AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq,
  151. void* tag) {
  152. return std::unique_ptr<::grpc::ClientAsyncReaderWriterInterface<
  153. ::grpc::testing::Request, ::grpc::testing::Response>>(
  154. AsyncMethodA4Raw(context, cq, tag));
  155. }
  156. std::unique_ptr<::grpc::ClientAsyncReaderWriterInterface<
  157. ::grpc::testing::Request, ::grpc::testing::Response>>
  158. PrepareAsyncMethodA4(::grpc::ClientContext* context,
  159. ::grpc::CompletionQueue* cq) {
  160. return std::unique_ptr<::grpc::ClientAsyncReaderWriterInterface<
  161. ::grpc::testing::Request, ::grpc::testing::Response>>(
  162. PrepareAsyncMethodA4Raw(context, cq));
  163. }
  164. // Method A4 trailing comment 1
  165. class experimental_async_interface {
  166. public:
  167. virtual ~experimental_async_interface() {}
  168. // MethodA1 leading comment 1
  169. virtual void MethodA1(::grpc::ClientContext* context,
  170. const ::grpc::testing::Request* request,
  171. ::grpc::testing::Response* response,
  172. std::function<void(::grpc::Status)>) = 0;
  173. // MethodA1 trailing comment 1
  174. // MethodA2 detached leading comment 1
  175. //
  176. // Method A2 leading comment 1
  177. // Method A2 leading comment 2
  178. virtual void MethodA2(
  179. ::grpc::ClientContext* context, ::grpc::testing::Response* response,
  180. ::grpc::experimental::ClientWriteReactor<::grpc::testing::Request>*
  181. reactor) = 0;
  182. // MethodA2 trailing comment 1
  183. // Method A3 leading comment 1
  184. virtual void MethodA3(
  185. ::grpc::ClientContext* context, ::grpc::testing::Request* request,
  186. ::grpc::experimental::ClientReadReactor<::grpc::testing::Response>*
  187. reactor) = 0;
  188. // Method A3 trailing comment 1
  189. // Method A4 leading comment 1
  190. virtual void MethodA4(
  191. ::grpc::ClientContext* context,
  192. ::grpc::experimental::ClientBidiReactor<::grpc::testing::Request,
  193. ::grpc::testing::Response>*
  194. reactor) = 0;
  195. // Method A4 trailing comment 1
  196. };
  197. virtual class experimental_async_interface* experimental_async() {
  198. return nullptr;
  199. }
  200. private:
  201. virtual ::grpc::ClientAsyncResponseReaderInterface<
  202. ::grpc::testing::Response>*
  203. AsyncMethodA1Raw(::grpc::ClientContext* context,
  204. const ::grpc::testing::Request& request,
  205. ::grpc::CompletionQueue* cq) = 0;
  206. virtual ::grpc::ClientAsyncResponseReaderInterface<
  207. ::grpc::testing::Response>*
  208. PrepareAsyncMethodA1Raw(::grpc::ClientContext* context,
  209. const ::grpc::testing::Request& request,
  210. ::grpc::CompletionQueue* cq) = 0;
  211. virtual ::grpc::ClientWriterInterface<::grpc::testing::Request>*
  212. MethodA2Raw(::grpc::ClientContext* context,
  213. ::grpc::testing::Response* response) = 0;
  214. virtual ::grpc::ClientAsyncWriterInterface<::grpc::testing::Request>*
  215. AsyncMethodA2Raw(::grpc::ClientContext* context,
  216. ::grpc::testing::Response* response,
  217. ::grpc::CompletionQueue* cq, void* tag) = 0;
  218. virtual ::grpc::ClientAsyncWriterInterface<::grpc::testing::Request>*
  219. PrepareAsyncMethodA2Raw(::grpc::ClientContext* context,
  220. ::grpc::testing::Response* response,
  221. ::grpc::CompletionQueue* cq) = 0;
  222. virtual ::grpc::ClientReaderInterface<::grpc::testing::Response>*
  223. MethodA3Raw(::grpc::ClientContext* context,
  224. const ::grpc::testing::Request& request) = 0;
  225. virtual ::grpc::ClientAsyncReaderInterface<::grpc::testing::Response>*
  226. AsyncMethodA3Raw(::grpc::ClientContext* context,
  227. const ::grpc::testing::Request& request,
  228. ::grpc::CompletionQueue* cq, void* tag) = 0;
  229. virtual ::grpc::ClientAsyncReaderInterface<::grpc::testing::Response>*
  230. PrepareAsyncMethodA3Raw(::grpc::ClientContext* context,
  231. const ::grpc::testing::Request& request,
  232. ::grpc::CompletionQueue* cq) = 0;
  233. virtual ::grpc::ClientReaderWriterInterface<::grpc::testing::Request,
  234. ::grpc::testing::Response>*
  235. MethodA4Raw(::grpc::ClientContext* context) = 0;
  236. virtual ::grpc::ClientAsyncReaderWriterInterface<::grpc::testing::Request,
  237. ::grpc::testing::Response>*
  238. AsyncMethodA4Raw(::grpc::ClientContext* context,
  239. ::grpc::CompletionQueue* cq, void* tag) = 0;
  240. virtual ::grpc::ClientAsyncReaderWriterInterface<::grpc::testing::Request,
  241. ::grpc::testing::Response>*
  242. PrepareAsyncMethodA4Raw(::grpc::ClientContext* context,
  243. ::grpc::CompletionQueue* cq) = 0;
  244. };
  245. class Stub final : public StubInterface {
  246. public:
  247. Stub(const std::shared_ptr<::grpc::ChannelInterface>& channel);
  248. ::grpc::Status MethodA1(::grpc::ClientContext* context,
  249. const ::grpc::testing::Request& request,
  250. ::grpc::testing::Response* response) override;
  251. std::unique_ptr<
  252. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>
  253. AsyncMethodA1(::grpc::ClientContext* context,
  254. const ::grpc::testing::Request& request,
  255. ::grpc::CompletionQueue* cq) {
  256. return std::unique_ptr<
  257. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>(
  258. AsyncMethodA1Raw(context, request, cq));
  259. }
  260. std::unique_ptr<
  261. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>
  262. PrepareAsyncMethodA1(::grpc::ClientContext* context,
  263. const ::grpc::testing::Request& request,
  264. ::grpc::CompletionQueue* cq) {
  265. return std::unique_ptr<
  266. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>(
  267. PrepareAsyncMethodA1Raw(context, request, cq));
  268. }
  269. std::unique_ptr<::grpc::ClientWriter<::grpc::testing::Request>> MethodA2(
  270. ::grpc::ClientContext* context, ::grpc::testing::Response* response) {
  271. return std::unique_ptr<::grpc::ClientWriter<::grpc::testing::Request>>(
  272. MethodA2Raw(context, response));
  273. }
  274. std::unique_ptr<::grpc::ClientAsyncWriter<::grpc::testing::Request>>
  275. AsyncMethodA2(::grpc::ClientContext* context,
  276. ::grpc::testing::Response* response,
  277. ::grpc::CompletionQueue* cq, void* tag) {
  278. return std::unique_ptr<
  279. ::grpc::ClientAsyncWriter<::grpc::testing::Request>>(
  280. AsyncMethodA2Raw(context, response, cq, tag));
  281. }
  282. std::unique_ptr<::grpc::ClientAsyncWriter<::grpc::testing::Request>>
  283. PrepareAsyncMethodA2(::grpc::ClientContext* context,
  284. ::grpc::testing::Response* response,
  285. ::grpc::CompletionQueue* cq) {
  286. return std::unique_ptr<
  287. ::grpc::ClientAsyncWriter<::grpc::testing::Request>>(
  288. PrepareAsyncMethodA2Raw(context, response, cq));
  289. }
  290. std::unique_ptr<::grpc::ClientReader<::grpc::testing::Response>> MethodA3(
  291. ::grpc::ClientContext* context,
  292. const ::grpc::testing::Request& request) {
  293. return std::unique_ptr<::grpc::ClientReader<::grpc::testing::Response>>(
  294. MethodA3Raw(context, request));
  295. }
  296. std::unique_ptr<::grpc::ClientAsyncReader<::grpc::testing::Response>>
  297. AsyncMethodA3(::grpc::ClientContext* context,
  298. const ::grpc::testing::Request& request,
  299. ::grpc::CompletionQueue* cq, void* tag) {
  300. return std::unique_ptr<
  301. ::grpc::ClientAsyncReader<::grpc::testing::Response>>(
  302. AsyncMethodA3Raw(context, request, cq, tag));
  303. }
  304. std::unique_ptr<::grpc::ClientAsyncReader<::grpc::testing::Response>>
  305. PrepareAsyncMethodA3(::grpc::ClientContext* context,
  306. const ::grpc::testing::Request& request,
  307. ::grpc::CompletionQueue* cq) {
  308. return std::unique_ptr<
  309. ::grpc::ClientAsyncReader<::grpc::testing::Response>>(
  310. PrepareAsyncMethodA3Raw(context, request, cq));
  311. }
  312. std::unique_ptr<::grpc::ClientReaderWriter<::grpc::testing::Request,
  313. ::grpc::testing::Response>>
  314. MethodA4(::grpc::ClientContext* context) {
  315. return std::unique_ptr<::grpc::ClientReaderWriter<
  316. ::grpc::testing::Request, ::grpc::testing::Response>>(
  317. MethodA4Raw(context));
  318. }
  319. std::unique_ptr<::grpc::ClientAsyncReaderWriter<::grpc::testing::Request,
  320. ::grpc::testing::Response>>
  321. AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq,
  322. void* tag) {
  323. return std::unique_ptr<::grpc::ClientAsyncReaderWriter<
  324. ::grpc::testing::Request, ::grpc::testing::Response>>(
  325. AsyncMethodA4Raw(context, cq, tag));
  326. }
  327. std::unique_ptr<::grpc::ClientAsyncReaderWriter<::grpc::testing::Request,
  328. ::grpc::testing::Response>>
  329. PrepareAsyncMethodA4(::grpc::ClientContext* context,
  330. ::grpc::CompletionQueue* cq) {
  331. return std::unique_ptr<::grpc::ClientAsyncReaderWriter<
  332. ::grpc::testing::Request, ::grpc::testing::Response>>(
  333. PrepareAsyncMethodA4Raw(context, cq));
  334. }
  335. class experimental_async final
  336. : public StubInterface::experimental_async_interface {
  337. public:
  338. void MethodA1(::grpc::ClientContext* context,
  339. const ::grpc::testing::Request* request,
  340. ::grpc::testing::Response* response,
  341. std::function<void(::grpc::Status)>) override;
  342. void MethodA2(
  343. ::grpc::ClientContext* context, ::grpc::testing::Response* response,
  344. ::grpc::experimental::ClientWriteReactor<::grpc::testing::Request>*
  345. reactor) override;
  346. void MethodA3(
  347. ::grpc::ClientContext* context, ::grpc::testing::Request* request,
  348. ::grpc::experimental::ClientReadReactor<::grpc::testing::Response>*
  349. reactor) override;
  350. void MethodA4(::grpc::ClientContext* context,
  351. ::grpc::experimental::ClientBidiReactor<
  352. ::grpc::testing::Request, ::grpc::testing::Response>*
  353. reactor) override;
  354. private:
  355. friend class Stub;
  356. explicit experimental_async(Stub* stub) : stub_(stub) {}
  357. Stub* stub() { return stub_; }
  358. Stub* stub_;
  359. };
  360. class experimental_async_interface* experimental_async() override {
  361. return &async_stub_;
  362. }
  363. private:
  364. std::shared_ptr<::grpc::ChannelInterface> channel_;
  365. class experimental_async async_stub_ {
  366. this
  367. };
  368. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>*
  369. AsyncMethodA1Raw(::grpc::ClientContext* context,
  370. const ::grpc::testing::Request& request,
  371. ::grpc::CompletionQueue* cq) override;
  372. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>*
  373. PrepareAsyncMethodA1Raw(::grpc::ClientContext* context,
  374. const ::grpc::testing::Request& request,
  375. ::grpc::CompletionQueue* cq) override;
  376. ::grpc::ClientWriter<::grpc::testing::Request>* MethodA2Raw(
  377. ::grpc::ClientContext* context,
  378. ::grpc::testing::Response* response) override;
  379. ::grpc::ClientAsyncWriter<::grpc::testing::Request>* AsyncMethodA2Raw(
  380. ::grpc::ClientContext* context, ::grpc::testing::Response* response,
  381. ::grpc::CompletionQueue* cq, void* tag) override;
  382. ::grpc::ClientAsyncWriter<::grpc::testing::Request>*
  383. PrepareAsyncMethodA2Raw(::grpc::ClientContext* context,
  384. ::grpc::testing::Response* response,
  385. ::grpc::CompletionQueue* cq) override;
  386. ::grpc::ClientReader<::grpc::testing::Response>* MethodA3Raw(
  387. ::grpc::ClientContext* context,
  388. const ::grpc::testing::Request& request) override;
  389. ::grpc::ClientAsyncReader<::grpc::testing::Response>* AsyncMethodA3Raw(
  390. ::grpc::ClientContext* context, const ::grpc::testing::Request& request,
  391. ::grpc::CompletionQueue* cq, void* tag) override;
  392. ::grpc::ClientAsyncReader<::grpc::testing::Response>*
  393. PrepareAsyncMethodA3Raw(::grpc::ClientContext* context,
  394. const ::grpc::testing::Request& request,
  395. ::grpc::CompletionQueue* cq) override;
  396. ::grpc::ClientReaderWriter<::grpc::testing::Request,
  397. ::grpc::testing::Response>*
  398. MethodA4Raw(::grpc::ClientContext* context) override;
  399. ::grpc::ClientAsyncReaderWriter<::grpc::testing::Request,
  400. ::grpc::testing::Response>*
  401. AsyncMethodA4Raw(::grpc::ClientContext* context,
  402. ::grpc::CompletionQueue* cq, void* tag) override;
  403. ::grpc::ClientAsyncReaderWriter<::grpc::testing::Request,
  404. ::grpc::testing::Response>*
  405. PrepareAsyncMethodA4Raw(::grpc::ClientContext* context,
  406. ::grpc::CompletionQueue* cq) override;
  407. const ::grpc::internal::RpcMethod rpcmethod_MethodA1_;
  408. const ::grpc::internal::RpcMethod rpcmethod_MethodA2_;
  409. const ::grpc::internal::RpcMethod rpcmethod_MethodA3_;
  410. const ::grpc::internal::RpcMethod rpcmethod_MethodA4_;
  411. };
  412. static std::unique_ptr<Stub> NewStub(
  413. const std::shared_ptr<::grpc::ChannelInterface>& channel,
  414. const ::grpc::StubOptions& options = ::grpc::StubOptions());
  415. class Service : public ::grpc::Service {
  416. public:
  417. Service();
  418. virtual ~Service();
  419. // MethodA1 leading comment 1
  420. virtual ::grpc::Status MethodA1(::grpc::ServerContext* context,
  421. const ::grpc::testing::Request* request,
  422. ::grpc::testing::Response* response);
  423. // MethodA1 trailing comment 1
  424. // MethodA2 detached leading comment 1
  425. //
  426. // Method A2 leading comment 1
  427. // Method A2 leading comment 2
  428. virtual ::grpc::Status MethodA2(
  429. ::grpc::ServerContext* context,
  430. ::grpc::ServerReader<::grpc::testing::Request>* reader,
  431. ::grpc::testing::Response* response);
  432. // MethodA2 trailing comment 1
  433. // Method A3 leading comment 1
  434. virtual ::grpc::Status MethodA3(
  435. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  436. ::grpc::ServerWriter<::grpc::testing::Response>* writer);
  437. // Method A3 trailing comment 1
  438. // Method A4 leading comment 1
  439. virtual ::grpc::Status MethodA4(
  440. ::grpc::ServerContext* context,
  441. ::grpc::ServerReaderWriter<::grpc::testing::Response,
  442. ::grpc::testing::Request>* stream);
  443. // Method A4 trailing comment 1
  444. };
  445. template <class BaseClass>
  446. class WithAsyncMethod_MethodA1 : public BaseClass {
  447. private:
  448. void BaseClassMustBeDerivedFromService(const Service* service) {}
  449. public:
  450. WithAsyncMethod_MethodA1() { ::grpc::Service::MarkMethodAsync(0); }
  451. ~WithAsyncMethod_MethodA1() override {
  452. BaseClassMustBeDerivedFromService(this);
  453. }
  454. // disable synchronous version of this method
  455. ::grpc::Status MethodA1(::grpc::ServerContext* context,
  456. const ::grpc::testing::Request* request,
  457. ::grpc::testing::Response* response) override {
  458. abort();
  459. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  460. }
  461. void RequestMethodA1(
  462. ::grpc::ServerContext* context, ::grpc::testing::Request* request,
  463. ::grpc::ServerAsyncResponseWriter<::grpc::testing::Response>* response,
  464. ::grpc::CompletionQueue* new_call_cq,
  465. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  466. ::grpc::Service::RequestAsyncUnary(0, context, request, response,
  467. new_call_cq, notification_cq, tag);
  468. }
  469. };
  470. template <class BaseClass>
  471. class WithAsyncMethod_MethodA2 : public BaseClass {
  472. private:
  473. void BaseClassMustBeDerivedFromService(const Service* service) {}
  474. public:
  475. WithAsyncMethod_MethodA2() { ::grpc::Service::MarkMethodAsync(1); }
  476. ~WithAsyncMethod_MethodA2() override {
  477. BaseClassMustBeDerivedFromService(this);
  478. }
  479. // disable synchronous version of this method
  480. ::grpc::Status MethodA2(
  481. ::grpc::ServerContext* context,
  482. ::grpc::ServerReader<::grpc::testing::Request>* reader,
  483. ::grpc::testing::Response* response) override {
  484. abort();
  485. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  486. }
  487. void RequestMethodA2(
  488. ::grpc::ServerContext* context,
  489. ::grpc::ServerAsyncReader<::grpc::testing::Response,
  490. ::grpc::testing::Request>* reader,
  491. ::grpc::CompletionQueue* new_call_cq,
  492. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  493. ::grpc::Service::RequestAsyncClientStreaming(
  494. 1, context, reader, new_call_cq, notification_cq, tag);
  495. }
  496. };
  497. template <class BaseClass>
  498. class WithAsyncMethod_MethodA3 : public BaseClass {
  499. private:
  500. void BaseClassMustBeDerivedFromService(const Service* service) {}
  501. public:
  502. WithAsyncMethod_MethodA3() { ::grpc::Service::MarkMethodAsync(2); }
  503. ~WithAsyncMethod_MethodA3() override {
  504. BaseClassMustBeDerivedFromService(this);
  505. }
  506. // disable synchronous version of this method
  507. ::grpc::Status MethodA3(
  508. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  509. ::grpc::ServerWriter<::grpc::testing::Response>* writer) override {
  510. abort();
  511. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  512. }
  513. void RequestMethodA3(
  514. ::grpc::ServerContext* context, ::grpc::testing::Request* request,
  515. ::grpc::ServerAsyncWriter<::grpc::testing::Response>* writer,
  516. ::grpc::CompletionQueue* new_call_cq,
  517. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  518. ::grpc::Service::RequestAsyncServerStreaming(
  519. 2, context, request, writer, new_call_cq, notification_cq, tag);
  520. }
  521. };
  522. template <class BaseClass>
  523. class WithAsyncMethod_MethodA4 : public BaseClass {
  524. private:
  525. void BaseClassMustBeDerivedFromService(const Service* service) {}
  526. public:
  527. WithAsyncMethod_MethodA4() { ::grpc::Service::MarkMethodAsync(3); }
  528. ~WithAsyncMethod_MethodA4() override {
  529. BaseClassMustBeDerivedFromService(this);
  530. }
  531. // disable synchronous version of this method
  532. ::grpc::Status MethodA4(
  533. ::grpc::ServerContext* context,
  534. ::grpc::ServerReaderWriter<::grpc::testing::Response,
  535. ::grpc::testing::Request>* stream) override {
  536. abort();
  537. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  538. }
  539. void RequestMethodA4(
  540. ::grpc::ServerContext* context,
  541. ::grpc::ServerAsyncReaderWriter<::grpc::testing::Response,
  542. ::grpc::testing::Request>* stream,
  543. ::grpc::CompletionQueue* new_call_cq,
  544. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  545. ::grpc::Service::RequestAsyncBidiStreaming(
  546. 3, context, stream, new_call_cq, notification_cq, tag);
  547. }
  548. };
  549. typedef WithAsyncMethod_MethodA1<WithAsyncMethod_MethodA2<
  550. WithAsyncMethod_MethodA3<WithAsyncMethod_MethodA4<Service>>>>
  551. AsyncService;
  552. template <class BaseClass>
  553. class ExperimentalWithCallbackMethod_MethodA1 : public BaseClass {
  554. private:
  555. void BaseClassMustBeDerivedFromService(const Service* service) {}
  556. public:
  557. ExperimentalWithCallbackMethod_MethodA1() {
  558. ::grpc::Service::experimental().MarkMethodCallback(
  559. 0, new ::grpc::internal::CallbackUnaryHandler<
  560. ExperimentalWithCallbackMethod_MethodA1<BaseClass>,
  561. ::grpc::testing::Request, ::grpc::testing::Response>(
  562. [this](::grpc::ServerContext* context,
  563. const ::grpc::testing::Request* request,
  564. ::grpc::testing::Response* response,
  565. ::grpc::experimental::ServerCallbackRpcController*
  566. controller) {
  567. this->MethodA1(context, request, response, controller);
  568. },
  569. this));
  570. }
  571. ~ExperimentalWithCallbackMethod_MethodA1() override {
  572. BaseClassMustBeDerivedFromService(this);
  573. }
  574. // disable synchronous version of this method
  575. ::grpc::Status MethodA1(::grpc::ServerContext* context,
  576. const ::grpc::testing::Request* request,
  577. ::grpc::testing::Response* response) override {
  578. abort();
  579. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  580. }
  581. virtual void MethodA1(
  582. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  583. ::grpc::testing::Response* response,
  584. ::grpc::experimental::ServerCallbackRpcController* controller) {
  585. controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""));
  586. }
  587. };
  588. template <class BaseClass>
  589. class ExperimentalWithCallbackMethod_MethodA2 : public BaseClass {
  590. private:
  591. void BaseClassMustBeDerivedFromService(const Service* service) {}
  592. public:
  593. ExperimentalWithCallbackMethod_MethodA2() {}
  594. ~ExperimentalWithCallbackMethod_MethodA2() override {
  595. BaseClassMustBeDerivedFromService(this);
  596. }
  597. // disable synchronous version of this method
  598. ::grpc::Status MethodA2(
  599. ::grpc::ServerContext* context,
  600. ::grpc::ServerReader<::grpc::testing::Request>* reader,
  601. ::grpc::testing::Response* response) override {
  602. abort();
  603. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  604. }
  605. };
  606. template <class BaseClass>
  607. class ExperimentalWithCallbackMethod_MethodA3 : public BaseClass {
  608. private:
  609. void BaseClassMustBeDerivedFromService(const Service* service) {}
  610. public:
  611. ExperimentalWithCallbackMethod_MethodA3() {}
  612. ~ExperimentalWithCallbackMethod_MethodA3() override {
  613. BaseClassMustBeDerivedFromService(this);
  614. }
  615. // disable synchronous version of this method
  616. ::grpc::Status MethodA3(
  617. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  618. ::grpc::ServerWriter<::grpc::testing::Response>* writer) override {
  619. abort();
  620. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  621. }
  622. };
  623. template <class BaseClass>
  624. class ExperimentalWithCallbackMethod_MethodA4 : public BaseClass {
  625. private:
  626. void BaseClassMustBeDerivedFromService(const Service* service) {}
  627. public:
  628. ExperimentalWithCallbackMethod_MethodA4() {}
  629. ~ExperimentalWithCallbackMethod_MethodA4() override {
  630. BaseClassMustBeDerivedFromService(this);
  631. }
  632. // disable synchronous version of this method
  633. ::grpc::Status MethodA4(
  634. ::grpc::ServerContext* context,
  635. ::grpc::ServerReaderWriter<::grpc::testing::Response,
  636. ::grpc::testing::Request>* stream) override {
  637. abort();
  638. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  639. }
  640. };
  641. typedef ExperimentalWithCallbackMethod_MethodA1<
  642. ExperimentalWithCallbackMethod_MethodA2<
  643. ExperimentalWithCallbackMethod_MethodA3<
  644. ExperimentalWithCallbackMethod_MethodA4<Service>>>>
  645. ExperimentalCallbackService;
  646. template <class BaseClass>
  647. class WithGenericMethod_MethodA1 : public BaseClass {
  648. private:
  649. void BaseClassMustBeDerivedFromService(const Service* service) {}
  650. public:
  651. WithGenericMethod_MethodA1() { ::grpc::Service::MarkMethodGeneric(0); }
  652. ~WithGenericMethod_MethodA1() override {
  653. BaseClassMustBeDerivedFromService(this);
  654. }
  655. // disable synchronous version of this method
  656. ::grpc::Status MethodA1(::grpc::ServerContext* context,
  657. const ::grpc::testing::Request* request,
  658. ::grpc::testing::Response* response) override {
  659. abort();
  660. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  661. }
  662. };
  663. template <class BaseClass>
  664. class WithGenericMethod_MethodA2 : public BaseClass {
  665. private:
  666. void BaseClassMustBeDerivedFromService(const Service* service) {}
  667. public:
  668. WithGenericMethod_MethodA2() { ::grpc::Service::MarkMethodGeneric(1); }
  669. ~WithGenericMethod_MethodA2() override {
  670. BaseClassMustBeDerivedFromService(this);
  671. }
  672. // disable synchronous version of this method
  673. ::grpc::Status MethodA2(
  674. ::grpc::ServerContext* context,
  675. ::grpc::ServerReader<::grpc::testing::Request>* reader,
  676. ::grpc::testing::Response* response) override {
  677. abort();
  678. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  679. }
  680. };
  681. template <class BaseClass>
  682. class WithGenericMethod_MethodA3 : public BaseClass {
  683. private:
  684. void BaseClassMustBeDerivedFromService(const Service* service) {}
  685. public:
  686. WithGenericMethod_MethodA3() { ::grpc::Service::MarkMethodGeneric(2); }
  687. ~WithGenericMethod_MethodA3() override {
  688. BaseClassMustBeDerivedFromService(this);
  689. }
  690. // disable synchronous version of this method
  691. ::grpc::Status MethodA3(
  692. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  693. ::grpc::ServerWriter<::grpc::testing::Response>* writer) override {
  694. abort();
  695. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  696. }
  697. };
  698. template <class BaseClass>
  699. class WithGenericMethod_MethodA4 : public BaseClass {
  700. private:
  701. void BaseClassMustBeDerivedFromService(const Service* service) {}
  702. public:
  703. WithGenericMethod_MethodA4() { ::grpc::Service::MarkMethodGeneric(3); }
  704. ~WithGenericMethod_MethodA4() override {
  705. BaseClassMustBeDerivedFromService(this);
  706. }
  707. // disable synchronous version of this method
  708. ::grpc::Status MethodA4(
  709. ::grpc::ServerContext* context,
  710. ::grpc::ServerReaderWriter<::grpc::testing::Response,
  711. ::grpc::testing::Request>* stream) override {
  712. abort();
  713. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  714. }
  715. };
  716. template <class BaseClass>
  717. class WithRawMethod_MethodA1 : public BaseClass {
  718. private:
  719. void BaseClassMustBeDerivedFromService(const Service* service) {}
  720. public:
  721. WithRawMethod_MethodA1() { ::grpc::Service::MarkMethodRaw(0); }
  722. ~WithRawMethod_MethodA1() override {
  723. BaseClassMustBeDerivedFromService(this);
  724. }
  725. // disable synchronous version of this method
  726. ::grpc::Status MethodA1(::grpc::ServerContext* context,
  727. const ::grpc::testing::Request* request,
  728. ::grpc::testing::Response* response) override {
  729. abort();
  730. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  731. }
  732. void RequestMethodA1(
  733. ::grpc::ServerContext* context, ::grpc::ByteBuffer* request,
  734. ::grpc::ServerAsyncResponseWriter<::grpc::ByteBuffer>* response,
  735. ::grpc::CompletionQueue* new_call_cq,
  736. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  737. ::grpc::Service::RequestAsyncUnary(0, context, request, response,
  738. new_call_cq, notification_cq, tag);
  739. }
  740. };
  741. template <class BaseClass>
  742. class WithRawMethod_MethodA2 : public BaseClass {
  743. private:
  744. void BaseClassMustBeDerivedFromService(const Service* service) {}
  745. public:
  746. WithRawMethod_MethodA2() { ::grpc::Service::MarkMethodRaw(1); }
  747. ~WithRawMethod_MethodA2() override {
  748. BaseClassMustBeDerivedFromService(this);
  749. }
  750. // disable synchronous version of this method
  751. ::grpc::Status MethodA2(
  752. ::grpc::ServerContext* context,
  753. ::grpc::ServerReader<::grpc::testing::Request>* reader,
  754. ::grpc::testing::Response* response) override {
  755. abort();
  756. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  757. }
  758. void RequestMethodA2(::grpc::ServerContext* context,
  759. ::grpc::ServerAsyncReader<::grpc::ByteBuffer,
  760. ::grpc::ByteBuffer>* reader,
  761. ::grpc::CompletionQueue* new_call_cq,
  762. ::grpc::ServerCompletionQueue* notification_cq,
  763. void* tag) {
  764. ::grpc::Service::RequestAsyncClientStreaming(
  765. 1, context, reader, new_call_cq, notification_cq, tag);
  766. }
  767. };
  768. template <class BaseClass>
  769. class WithRawMethod_MethodA3 : public BaseClass {
  770. private:
  771. void BaseClassMustBeDerivedFromService(const Service* service) {}
  772. public:
  773. WithRawMethod_MethodA3() { ::grpc::Service::MarkMethodRaw(2); }
  774. ~WithRawMethod_MethodA3() override {
  775. BaseClassMustBeDerivedFromService(this);
  776. }
  777. // disable synchronous version of this method
  778. ::grpc::Status MethodA3(
  779. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  780. ::grpc::ServerWriter<::grpc::testing::Response>* writer) override {
  781. abort();
  782. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  783. }
  784. void RequestMethodA3(::grpc::ServerContext* context,
  785. ::grpc::ByteBuffer* request,
  786. ::grpc::ServerAsyncWriter<::grpc::ByteBuffer>* writer,
  787. ::grpc::CompletionQueue* new_call_cq,
  788. ::grpc::ServerCompletionQueue* notification_cq,
  789. void* tag) {
  790. ::grpc::Service::RequestAsyncServerStreaming(
  791. 2, context, request, writer, new_call_cq, notification_cq, tag);
  792. }
  793. };
  794. template <class BaseClass>
  795. class WithRawMethod_MethodA4 : public BaseClass {
  796. private:
  797. void BaseClassMustBeDerivedFromService(const Service* service) {}
  798. public:
  799. WithRawMethod_MethodA4() { ::grpc::Service::MarkMethodRaw(3); }
  800. ~WithRawMethod_MethodA4() override {
  801. BaseClassMustBeDerivedFromService(this);
  802. }
  803. // disable synchronous version of this method
  804. ::grpc::Status MethodA4(
  805. ::grpc::ServerContext* context,
  806. ::grpc::ServerReaderWriter<::grpc::testing::Response,
  807. ::grpc::testing::Request>* stream) override {
  808. abort();
  809. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  810. }
  811. void RequestMethodA4(
  812. ::grpc::ServerContext* context,
  813. ::grpc::ServerAsyncReaderWriter<::grpc::ByteBuffer, ::grpc::ByteBuffer>*
  814. stream,
  815. ::grpc::CompletionQueue* new_call_cq,
  816. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  817. ::grpc::Service::RequestAsyncBidiStreaming(
  818. 3, context, stream, new_call_cq, notification_cq, tag);
  819. }
  820. };
  821. template <class BaseClass>
  822. class ExperimentalWithRawCallbackMethod_MethodA1 : public BaseClass {
  823. private:
  824. void BaseClassMustBeDerivedFromService(const Service* service) {}
  825. public:
  826. ExperimentalWithRawCallbackMethod_MethodA1() {
  827. ::grpc::Service::experimental().MarkMethodRawCallback(
  828. 0, new ::grpc::internal::CallbackUnaryHandler<
  829. ExperimentalWithRawCallbackMethod_MethodA1<BaseClass>,
  830. ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  831. [this](::grpc::ServerContext* context,
  832. const ::grpc::ByteBuffer* request,
  833. ::grpc::ByteBuffer* response,
  834. ::grpc::experimental::ServerCallbackRpcController*
  835. controller) {
  836. this->MethodA1(context, request, response, controller);
  837. },
  838. this));
  839. }
  840. ~ExperimentalWithRawCallbackMethod_MethodA1() override {
  841. BaseClassMustBeDerivedFromService(this);
  842. }
  843. // disable synchronous version of this method
  844. ::grpc::Status MethodA1(::grpc::ServerContext* context,
  845. const ::grpc::testing::Request* request,
  846. ::grpc::testing::Response* response) override {
  847. abort();
  848. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  849. }
  850. virtual void MethodA1(
  851. ::grpc::ServerContext* context, const ::grpc::ByteBuffer* request,
  852. ::grpc::ByteBuffer* response,
  853. ::grpc::experimental::ServerCallbackRpcController* controller) {
  854. controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""));
  855. }
  856. };
  857. template <class BaseClass>
  858. class ExperimentalWithRawCallbackMethod_MethodA2 : public BaseClass {
  859. private:
  860. void BaseClassMustBeDerivedFromService(const Service* service) {}
  861. public:
  862. ExperimentalWithRawCallbackMethod_MethodA2() {}
  863. ~ExperimentalWithRawCallbackMethod_MethodA2() override {
  864. BaseClassMustBeDerivedFromService(this);
  865. }
  866. // disable synchronous version of this method
  867. ::grpc::Status MethodA2(
  868. ::grpc::ServerContext* context,
  869. ::grpc::ServerReader<::grpc::testing::Request>* reader,
  870. ::grpc::testing::Response* response) override {
  871. abort();
  872. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  873. }
  874. };
  875. template <class BaseClass>
  876. class ExperimentalWithRawCallbackMethod_MethodA3 : public BaseClass {
  877. private:
  878. void BaseClassMustBeDerivedFromService(const Service* service) {}
  879. public:
  880. ExperimentalWithRawCallbackMethod_MethodA3() {}
  881. ~ExperimentalWithRawCallbackMethod_MethodA3() override {
  882. BaseClassMustBeDerivedFromService(this);
  883. }
  884. // disable synchronous version of this method
  885. ::grpc::Status MethodA3(
  886. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  887. ::grpc::ServerWriter<::grpc::testing::Response>* writer) override {
  888. abort();
  889. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  890. }
  891. };
  892. template <class BaseClass>
  893. class ExperimentalWithRawCallbackMethod_MethodA4 : public BaseClass {
  894. private:
  895. void BaseClassMustBeDerivedFromService(const Service* service) {}
  896. public:
  897. ExperimentalWithRawCallbackMethod_MethodA4() {}
  898. ~ExperimentalWithRawCallbackMethod_MethodA4() override {
  899. BaseClassMustBeDerivedFromService(this);
  900. }
  901. // disable synchronous version of this method
  902. ::grpc::Status MethodA4(
  903. ::grpc::ServerContext* context,
  904. ::grpc::ServerReaderWriter<::grpc::testing::Response,
  905. ::grpc::testing::Request>* stream) override {
  906. abort();
  907. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  908. }
  909. };
  910. template <class BaseClass>
  911. class WithStreamedUnaryMethod_MethodA1 : public BaseClass {
  912. private:
  913. void BaseClassMustBeDerivedFromService(const Service* service) {}
  914. public:
  915. WithStreamedUnaryMethod_MethodA1() {
  916. ::grpc::Service::MarkMethodStreamed(
  917. 0, new ::grpc::internal::StreamedUnaryHandler<
  918. ::grpc::testing::Request, ::grpc::testing::Response>(std::bind(
  919. &WithStreamedUnaryMethod_MethodA1<BaseClass>::StreamedMethodA1,
  920. this, std::placeholders::_1, std::placeholders::_2)));
  921. }
  922. ~WithStreamedUnaryMethod_MethodA1() override {
  923. BaseClassMustBeDerivedFromService(this);
  924. }
  925. // disable regular version of this method
  926. ::grpc::Status MethodA1(::grpc::ServerContext* context,
  927. const ::grpc::testing::Request* request,
  928. ::grpc::testing::Response* response) override {
  929. abort();
  930. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  931. }
  932. // replace default version of method with streamed unary
  933. virtual ::grpc::Status StreamedMethodA1(
  934. ::grpc::ServerContext* context,
  935. ::grpc::ServerUnaryStreamer<::grpc::testing::Request,
  936. ::grpc::testing::Response>*
  937. server_unary_streamer) = 0;
  938. };
  939. typedef WithStreamedUnaryMethod_MethodA1<Service> StreamedUnaryService;
  940. template <class BaseClass>
  941. class WithSplitStreamingMethod_MethodA3 : public BaseClass {
  942. private:
  943. void BaseClassMustBeDerivedFromService(const Service* service) {}
  944. public:
  945. WithSplitStreamingMethod_MethodA3() {
  946. ::grpc::Service::MarkMethodStreamed(
  947. 2,
  948. new ::grpc::internal::SplitServerStreamingHandler<
  949. ::grpc::testing::Request, ::grpc::testing::Response>(std::bind(
  950. &WithSplitStreamingMethod_MethodA3<BaseClass>::StreamedMethodA3,
  951. this, std::placeholders::_1, std::placeholders::_2)));
  952. }
  953. ~WithSplitStreamingMethod_MethodA3() override {
  954. BaseClassMustBeDerivedFromService(this);
  955. }
  956. // disable regular version of this method
  957. ::grpc::Status MethodA3(
  958. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  959. ::grpc::ServerWriter<::grpc::testing::Response>* writer) override {
  960. abort();
  961. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  962. }
  963. // replace default version of method with split streamed
  964. virtual ::grpc::Status StreamedMethodA3(
  965. ::grpc::ServerContext* context,
  966. ::grpc::ServerSplitStreamer<::grpc::testing::Request,
  967. ::grpc::testing::Response>*
  968. server_split_streamer) = 0;
  969. };
  970. typedef WithSplitStreamingMethod_MethodA3<Service> SplitStreamedService;
  971. typedef WithStreamedUnaryMethod_MethodA1<
  972. WithSplitStreamingMethod_MethodA3<Service>>
  973. StreamedService;
  974. };
  975. // ServiceB leading comment 1
  976. class ServiceB final {
  977. public:
  978. static constexpr char const* service_full_name() {
  979. return "grpc.testing.ServiceB";
  980. }
  981. class StubInterface {
  982. public:
  983. virtual ~StubInterface() {}
  984. // MethodB1 leading comment 1
  985. virtual ::grpc::Status MethodB1(::grpc::ClientContext* context,
  986. const ::grpc::testing::Request& request,
  987. ::grpc::testing::Response* response) = 0;
  988. std::unique_ptr<
  989. ::grpc::ClientAsyncResponseReaderInterface<::grpc::testing::Response>>
  990. AsyncMethodB1(::grpc::ClientContext* context,
  991. const ::grpc::testing::Request& request,
  992. ::grpc::CompletionQueue* cq) {
  993. return std::unique_ptr<::grpc::ClientAsyncResponseReaderInterface<
  994. ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq));
  995. }
  996. std::unique_ptr<
  997. ::grpc::ClientAsyncResponseReaderInterface<::grpc::testing::Response>>
  998. PrepareAsyncMethodB1(::grpc::ClientContext* context,
  999. const ::grpc::testing::Request& request,
  1000. ::grpc::CompletionQueue* cq) {
  1001. return std::unique_ptr<::grpc::ClientAsyncResponseReaderInterface<
  1002. ::grpc::testing::Response>>(
  1003. PrepareAsyncMethodB1Raw(context, request, cq));
  1004. }
  1005. // MethodB1 trailing comment 1
  1006. class experimental_async_interface {
  1007. public:
  1008. virtual ~experimental_async_interface() {}
  1009. // MethodB1 leading comment 1
  1010. virtual void MethodB1(::grpc::ClientContext* context,
  1011. const ::grpc::testing::Request* request,
  1012. ::grpc::testing::Response* response,
  1013. std::function<void(::grpc::Status)>) = 0;
  1014. // MethodB1 trailing comment 1
  1015. };
  1016. virtual class experimental_async_interface* experimental_async() {
  1017. return nullptr;
  1018. }
  1019. private:
  1020. virtual ::grpc::ClientAsyncResponseReaderInterface<
  1021. ::grpc::testing::Response>*
  1022. AsyncMethodB1Raw(::grpc::ClientContext* context,
  1023. const ::grpc::testing::Request& request,
  1024. ::grpc::CompletionQueue* cq) = 0;
  1025. virtual ::grpc::ClientAsyncResponseReaderInterface<
  1026. ::grpc::testing::Response>*
  1027. PrepareAsyncMethodB1Raw(::grpc::ClientContext* context,
  1028. const ::grpc::testing::Request& request,
  1029. ::grpc::CompletionQueue* cq) = 0;
  1030. };
  1031. class Stub final : public StubInterface {
  1032. public:
  1033. Stub(const std::shared_ptr<::grpc::ChannelInterface>& channel);
  1034. ::grpc::Status MethodB1(::grpc::ClientContext* context,
  1035. const ::grpc::testing::Request& request,
  1036. ::grpc::testing::Response* response) override;
  1037. std::unique_ptr<
  1038. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>
  1039. AsyncMethodB1(::grpc::ClientContext* context,
  1040. const ::grpc::testing::Request& request,
  1041. ::grpc::CompletionQueue* cq) {
  1042. return std::unique_ptr<
  1043. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>(
  1044. AsyncMethodB1Raw(context, request, cq));
  1045. }
  1046. std::unique_ptr<
  1047. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>
  1048. PrepareAsyncMethodB1(::grpc::ClientContext* context,
  1049. const ::grpc::testing::Request& request,
  1050. ::grpc::CompletionQueue* cq) {
  1051. return std::unique_ptr<
  1052. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>>(
  1053. PrepareAsyncMethodB1Raw(context, request, cq));
  1054. }
  1055. class experimental_async final
  1056. : public StubInterface::experimental_async_interface {
  1057. public:
  1058. void MethodB1(::grpc::ClientContext* context,
  1059. const ::grpc::testing::Request* request,
  1060. ::grpc::testing::Response* response,
  1061. std::function<void(::grpc::Status)>) override;
  1062. private:
  1063. friend class Stub;
  1064. explicit experimental_async(Stub* stub) : stub_(stub) {}
  1065. Stub* stub() { return stub_; }
  1066. Stub* stub_;
  1067. };
  1068. class experimental_async_interface* experimental_async() override {
  1069. return &async_stub_;
  1070. }
  1071. private:
  1072. std::shared_ptr<::grpc::ChannelInterface> channel_;
  1073. class experimental_async async_stub_ {
  1074. this
  1075. };
  1076. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>*
  1077. AsyncMethodB1Raw(::grpc::ClientContext* context,
  1078. const ::grpc::testing::Request& request,
  1079. ::grpc::CompletionQueue* cq) override;
  1080. ::grpc::ClientAsyncResponseReader<::grpc::testing::Response>*
  1081. PrepareAsyncMethodB1Raw(::grpc::ClientContext* context,
  1082. const ::grpc::testing::Request& request,
  1083. ::grpc::CompletionQueue* cq) override;
  1084. const ::grpc::internal::RpcMethod rpcmethod_MethodB1_;
  1085. };
  1086. static std::unique_ptr<Stub> NewStub(
  1087. const std::shared_ptr<::grpc::ChannelInterface>& channel,
  1088. const ::grpc::StubOptions& options = ::grpc::StubOptions());
  1089. class Service : public ::grpc::Service {
  1090. public:
  1091. Service();
  1092. virtual ~Service();
  1093. // MethodB1 leading comment 1
  1094. virtual ::grpc::Status MethodB1(::grpc::ServerContext* context,
  1095. const ::grpc::testing::Request* request,
  1096. ::grpc::testing::Response* response);
  1097. // MethodB1 trailing comment 1
  1098. };
  1099. template <class BaseClass>
  1100. class WithAsyncMethod_MethodB1 : public BaseClass {
  1101. private:
  1102. void BaseClassMustBeDerivedFromService(const Service* service) {}
  1103. public:
  1104. WithAsyncMethod_MethodB1() { ::grpc::Service::MarkMethodAsync(0); }
  1105. ~WithAsyncMethod_MethodB1() override {
  1106. BaseClassMustBeDerivedFromService(this);
  1107. }
  1108. // disable synchronous version of this method
  1109. ::grpc::Status MethodB1(::grpc::ServerContext* context,
  1110. const ::grpc::testing::Request* request,
  1111. ::grpc::testing::Response* response) override {
  1112. abort();
  1113. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1114. }
  1115. void RequestMethodB1(
  1116. ::grpc::ServerContext* context, ::grpc::testing::Request* request,
  1117. ::grpc::ServerAsyncResponseWriter<::grpc::testing::Response>* response,
  1118. ::grpc::CompletionQueue* new_call_cq,
  1119. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  1120. ::grpc::Service::RequestAsyncUnary(0, context, request, response,
  1121. new_call_cq, notification_cq, tag);
  1122. }
  1123. };
  1124. typedef WithAsyncMethod_MethodB1<Service> AsyncService;
  1125. template <class BaseClass>
  1126. class ExperimentalWithCallbackMethod_MethodB1 : public BaseClass {
  1127. private:
  1128. void BaseClassMustBeDerivedFromService(const Service* service) {}
  1129. public:
  1130. ExperimentalWithCallbackMethod_MethodB1() {
  1131. ::grpc::Service::experimental().MarkMethodCallback(
  1132. 0, new ::grpc::internal::CallbackUnaryHandler<
  1133. ExperimentalWithCallbackMethod_MethodB1<BaseClass>,
  1134. ::grpc::testing::Request, ::grpc::testing::Response>(
  1135. [this](::grpc::ServerContext* context,
  1136. const ::grpc::testing::Request* request,
  1137. ::grpc::testing::Response* response,
  1138. ::grpc::experimental::ServerCallbackRpcController*
  1139. controller) {
  1140. this->MethodB1(context, request, response, controller);
  1141. },
  1142. this));
  1143. }
  1144. ~ExperimentalWithCallbackMethod_MethodB1() override {
  1145. BaseClassMustBeDerivedFromService(this);
  1146. }
  1147. // disable synchronous version of this method
  1148. ::grpc::Status MethodB1(::grpc::ServerContext* context,
  1149. const ::grpc::testing::Request* request,
  1150. ::grpc::testing::Response* response) override {
  1151. abort();
  1152. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1153. }
  1154. virtual void MethodB1(
  1155. ::grpc::ServerContext* context, const ::grpc::testing::Request* request,
  1156. ::grpc::testing::Response* response,
  1157. ::grpc::experimental::ServerCallbackRpcController* controller) {
  1158. controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""));
  1159. }
  1160. };
  1161. typedef ExperimentalWithCallbackMethod_MethodB1<Service>
  1162. ExperimentalCallbackService;
  1163. template <class BaseClass>
  1164. class WithGenericMethod_MethodB1 : public BaseClass {
  1165. private:
  1166. void BaseClassMustBeDerivedFromService(const Service* service) {}
  1167. public:
  1168. WithGenericMethod_MethodB1() { ::grpc::Service::MarkMethodGeneric(0); }
  1169. ~WithGenericMethod_MethodB1() override {
  1170. BaseClassMustBeDerivedFromService(this);
  1171. }
  1172. // disable synchronous version of this method
  1173. ::grpc::Status MethodB1(::grpc::ServerContext* context,
  1174. const ::grpc::testing::Request* request,
  1175. ::grpc::testing::Response* response) override {
  1176. abort();
  1177. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1178. }
  1179. };
  1180. template <class BaseClass>
  1181. class WithRawMethod_MethodB1 : public BaseClass {
  1182. private:
  1183. void BaseClassMustBeDerivedFromService(const Service* service) {}
  1184. public:
  1185. WithRawMethod_MethodB1() { ::grpc::Service::MarkMethodRaw(0); }
  1186. ~WithRawMethod_MethodB1() override {
  1187. BaseClassMustBeDerivedFromService(this);
  1188. }
  1189. // disable synchronous version of this method
  1190. ::grpc::Status MethodB1(::grpc::ServerContext* context,
  1191. const ::grpc::testing::Request* request,
  1192. ::grpc::testing::Response* response) override {
  1193. abort();
  1194. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1195. }
  1196. void RequestMethodB1(
  1197. ::grpc::ServerContext* context, ::grpc::ByteBuffer* request,
  1198. ::grpc::ServerAsyncResponseWriter<::grpc::ByteBuffer>* response,
  1199. ::grpc::CompletionQueue* new_call_cq,
  1200. ::grpc::ServerCompletionQueue* notification_cq, void* tag) {
  1201. ::grpc::Service::RequestAsyncUnary(0, context, request, response,
  1202. new_call_cq, notification_cq, tag);
  1203. }
  1204. };
  1205. template <class BaseClass>
  1206. class ExperimentalWithRawCallbackMethod_MethodB1 : public BaseClass {
  1207. private:
  1208. void BaseClassMustBeDerivedFromService(const Service* service) {}
  1209. public:
  1210. ExperimentalWithRawCallbackMethod_MethodB1() {
  1211. ::grpc::Service::experimental().MarkMethodRawCallback(
  1212. 0, new ::grpc::internal::CallbackUnaryHandler<
  1213. ExperimentalWithRawCallbackMethod_MethodB1<BaseClass>,
  1214. ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
  1215. [this](::grpc::ServerContext* context,
  1216. const ::grpc::ByteBuffer* request,
  1217. ::grpc::ByteBuffer* response,
  1218. ::grpc::experimental::ServerCallbackRpcController*
  1219. controller) {
  1220. this->MethodB1(context, request, response, controller);
  1221. },
  1222. this));
  1223. }
  1224. ~ExperimentalWithRawCallbackMethod_MethodB1() override {
  1225. BaseClassMustBeDerivedFromService(this);
  1226. }
  1227. // disable synchronous version of this method
  1228. ::grpc::Status MethodB1(::grpc::ServerContext* context,
  1229. const ::grpc::testing::Request* request,
  1230. ::grpc::testing::Response* response) override {
  1231. abort();
  1232. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1233. }
  1234. virtual void MethodB1(
  1235. ::grpc::ServerContext* context, const ::grpc::ByteBuffer* request,
  1236. ::grpc::ByteBuffer* response,
  1237. ::grpc::experimental::ServerCallbackRpcController* controller) {
  1238. controller->Finish(::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""));
  1239. }
  1240. };
  1241. template <class BaseClass>
  1242. class WithStreamedUnaryMethod_MethodB1 : public BaseClass {
  1243. private:
  1244. void BaseClassMustBeDerivedFromService(const Service* service) {}
  1245. public:
  1246. WithStreamedUnaryMethod_MethodB1() {
  1247. ::grpc::Service::MarkMethodStreamed(
  1248. 0, new ::grpc::internal::StreamedUnaryHandler<
  1249. ::grpc::testing::Request, ::grpc::testing::Response>(std::bind(
  1250. &WithStreamedUnaryMethod_MethodB1<BaseClass>::StreamedMethodB1,
  1251. this, std::placeholders::_1, std::placeholders::_2)));
  1252. }
  1253. ~WithStreamedUnaryMethod_MethodB1() override {
  1254. BaseClassMustBeDerivedFromService(this);
  1255. }
  1256. // disable regular version of this method
  1257. ::grpc::Status MethodB1(::grpc::ServerContext* context,
  1258. const ::grpc::testing::Request* request,
  1259. ::grpc::testing::Response* response) override {
  1260. abort();
  1261. return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
  1262. }
  1263. // replace default version of method with streamed unary
  1264. virtual ::grpc::Status StreamedMethodB1(
  1265. ::grpc::ServerContext* context,
  1266. ::grpc::ServerUnaryStreamer<::grpc::testing::Request,
  1267. ::grpc::testing::Response>*
  1268. server_unary_streamer) = 0;
  1269. };
  1270. typedef WithStreamedUnaryMethod_MethodB1<Service> StreamedUnaryService;
  1271. typedef Service SplitStreamedService;
  1272. typedef WithStreamedUnaryMethod_MethodB1<Service> StreamedService;
  1273. };
  1274. // ServiceB trailing comment 1
  1275. } // namespace testing
  1276. } // namespace grpc
  1277. #endif // GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED