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 27#include "src/proto/grpc/testing/compiler_test.pb.h" 28 29#include <functional> 30#include <grpcpp/generic/async_generic_service.h> 31#include <grpcpp/support/async_stream.h> 32#include <grpcpp/support/async_unary_call.h> 33#include <grpcpp/support/client_callback.h> 34#include <grpcpp/client_context.h> 35#include <grpcpp/completion_queue.h> 36#include <grpcpp/support/message_allocator.h> 37#include <grpcpp/support/method_handler.h> 38#include <grpcpp/impl/proto_utils.h> 39#include <grpcpp/impl/rpc_method.h> 40#include <grpcpp/support/server_callback.h> 41#include <grpcpp/impl/server_callback_handlers.h> 42#include <grpcpp/server_context.h> 43#include <grpcpp/impl/service_type.h> 44#include <grpcpp/support/status.h> 45#include <grpcpp/support/stub_options.h> 46#include <grpcpp/support/sync_stream.h> 47 48namespace grpc { 49namespace testing { 50 51// ServiceA detached comment 1 52// 53// ServiceA detached comment 2 54// 55// Comments may contain special characters like "^[a-z0-9-]{1,63}$" and $$ 56// 57// ServiceA leading comment 1 58class ServiceA final { 59 public: 60 static constexpr char const* service_full_name() { 61 return "grpc.testing.ServiceA"; 62 } 63 class StubInterface { 64 public: 65 virtual ~StubInterface() {} 66 // MethodA1 leading comment 1 67 virtual ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0; 68 std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 69 return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq)); 70 } 71 std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> PrepareAsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 72 return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(PrepareAsyncMethodA1Raw(context, request, cq)); 73 } 74 // MethodA1 trailing comment 1 75 // MethodA2 detached leading comment 1 76 // 77 // Method A2 leading comment 1 78 // Method A2 leading comment 2 79 std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) { 80 return std::unique_ptr< ::grpc::ClientWriterInterface< ::grpc::testing::Request>>(MethodA2Raw(context, response)); 81 } 82 std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) { 83 return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); 84 } 85 std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>> PrepareAsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) { 86 return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>>(PrepareAsyncMethodA2Raw(context, response, cq)); 87 } 88 // MethodA2 trailing comment 1 89 // Method A3 leading comment 1 90 std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::testing::Response>> MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request) { 91 return std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::testing::Response>>(MethodA3Raw(context, request)); 92 } 93 std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>> AsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) { 94 return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>>(AsyncMethodA3Raw(context, request, cq, tag)); 95 } 96 std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>> PrepareAsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 97 return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>>(PrepareAsyncMethodA3Raw(context, request, cq)); 98 } 99 // Method A3 trailing comment 1 100 // Method A4 leading comment 1 101 std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> MethodA4(::grpc::ClientContext* context) { 102 return std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(MethodA4Raw(context)); 103 } 104 std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) { 105 return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(AsyncMethodA4Raw(context, cq, tag)); 106 } 107 std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> PrepareAsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) { 108 return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(PrepareAsyncMethodA4Raw(context, cq)); 109 } 110 // Method A4 trailing comment 1 111 class async_interface { 112 public: 113 virtual ~async_interface() {} 114 // MethodA1 leading comment 1 115 virtual void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) = 0; 116 virtual void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) = 0; 117 // MethodA1 trailing comment 1 118 // MethodA2 detached leading comment 1 119 // 120 // Method A2 leading comment 1 121 // Method A2 leading comment 2 122 virtual void MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::ClientWriteReactor< ::grpc::testing::Request>* reactor) = 0; 123 // MethodA2 trailing comment 1 124 // Method A3 leading comment 1 125 virtual void MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::ClientReadReactor< ::grpc::testing::Response>* reactor) = 0; 126 // Method A3 trailing comment 1 127 // Method A4 leading comment 1 128 virtual void MethodA4(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::grpc::testing::Request,::grpc::testing::Response>* reactor) = 0; 129 // Method A4 trailing comment 1 130 }; 131 typedef class async_interface experimental_async_interface; 132 virtual class async_interface* async() { return nullptr; } 133 class async_interface* experimental_async() { return async(); } 134 private: 135 virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; 136 virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* PrepareAsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; 137 virtual ::grpc::ClientWriterInterface< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) = 0; 138 virtual ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) = 0; 139 virtual ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>* PrepareAsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) = 0; 140 virtual ::grpc::ClientReaderInterface< ::grpc::testing::Response>* MethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request) = 0; 141 virtual ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>* AsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) = 0; 142 virtual ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>* PrepareAsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; 143 virtual ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4Raw(::grpc::ClientContext* context) = 0; 144 virtual ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* AsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) = 0; 145 virtual ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* PrepareAsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) = 0; 146 }; 147 class Stub final : public StubInterface { 148 public: 149 Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); 150 ::grpc::Status MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) override; 151 std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 152 return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodA1Raw(context, request, cq)); 153 } 154 std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> PrepareAsyncMethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 155 return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(PrepareAsyncMethodA1Raw(context, request, cq)); 156 } 157 std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>> MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response) { 158 return std::unique_ptr< ::grpc::ClientWriter< ::grpc::testing::Request>>(MethodA2Raw(context, response)); 159 } 160 std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) { 161 return std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); 162 } 163 std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>> PrepareAsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) { 164 return std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>>(PrepareAsyncMethodA2Raw(context, response, cq)); 165 } 166 std::unique_ptr< ::grpc::ClientReader< ::grpc::testing::Response>> MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request) { 167 return std::unique_ptr< ::grpc::ClientReader< ::grpc::testing::Response>>(MethodA3Raw(context, request)); 168 } 169 std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>> AsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) { 170 return std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>>(AsyncMethodA3Raw(context, request, cq, tag)); 171 } 172 std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>> PrepareAsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 173 return std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>>(PrepareAsyncMethodA3Raw(context, request, cq)); 174 } 175 std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> MethodA4(::grpc::ClientContext* context) { 176 return std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(MethodA4Raw(context)); 177 } 178 std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) { 179 return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(AsyncMethodA4Raw(context, cq, tag)); 180 } 181 std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> PrepareAsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) { 182 return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(PrepareAsyncMethodA4Raw(context, cq)); 183 } 184 class async final : 185 public StubInterface::async_interface { 186 public: 187 void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) override; 188 void MethodA1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) override; 189 void MethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::ClientWriteReactor< ::grpc::testing::Request>* reactor) override; 190 void MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::ClientReadReactor< ::grpc::testing::Response>* reactor) override; 191 void MethodA4(::grpc::ClientContext* context, ::grpc::ClientBidiReactor< ::grpc::testing::Request,::grpc::testing::Response>* reactor) override; 192 private: 193 friend class Stub; 194 explicit async(Stub* stub): stub_(stub) { } 195 Stub* stub() { return stub_; } 196 Stub* stub_; 197 }; 198 class async* async() override { return &async_stub_; } 199 200 private: 201 std::shared_ptr< ::grpc::ChannelInterface> channel_; 202 class async async_stub_{this}; 203 ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override; 204 ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* PrepareAsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override; 205 ::grpc::ClientWriter< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) override; 206 ::grpc::ClientAsyncWriter< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) override; 207 ::grpc::ClientAsyncWriter< ::grpc::testing::Request>* PrepareAsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq) override; 208 ::grpc::ClientReader< ::grpc::testing::Response>* MethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request) override; 209 ::grpc::ClientAsyncReader< ::grpc::testing::Response>* AsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) override; 210 ::grpc::ClientAsyncReader< ::grpc::testing::Response>* PrepareAsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override; 211 ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4Raw(::grpc::ClientContext* context) override; 212 ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* AsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) override; 213 ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* PrepareAsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq) override; 214 const ::grpc::internal::RpcMethod rpcmethod_MethodA1_; 215 const ::grpc::internal::RpcMethod rpcmethod_MethodA2_; 216 const ::grpc::internal::RpcMethod rpcmethod_MethodA3_; 217 const ::grpc::internal::RpcMethod rpcmethod_MethodA4_; 218 }; 219 static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); 220 221 class Service : public ::grpc::Service { 222 public: 223 Service(); 224 virtual ~Service(); 225 // MethodA1 leading comment 1 226 virtual ::grpc::Status MethodA1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response); 227 // MethodA1 trailing comment 1 228 // MethodA2 detached leading comment 1 229 // 230 // Method A2 leading comment 1 231 // Method A2 leading comment 2 232 virtual ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response); 233 // MethodA2 trailing comment 1 234 // Method A3 leading comment 1 235 virtual ::grpc::Status MethodA3(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::ServerWriter< ::grpc::testing::Response>* writer); 236 // Method A3 trailing comment 1 237 // Method A4 leading comment 1 238 virtual ::grpc::Status MethodA4(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* stream); 239 // Method A4 trailing comment 1 240 }; 241 template <class BaseClass> 242 class WithAsyncMethod_MethodA1 : public BaseClass { 243 private: 244 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 245 public: 246 WithAsyncMethod_MethodA1() { 247 ::grpc::Service::MarkMethodAsync(0); 248 } 249 ~WithAsyncMethod_MethodA1() override { 250 BaseClassMustBeDerivedFromService(this); 251 } 252 // disable synchronous version of this method 253 ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 254 abort(); 255 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 256 } 257 void RequestMethodA1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 258 ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); 259 } 260 }; 261 template <class BaseClass> 262 class WithAsyncMethod_MethodA2 : public BaseClass { 263 private: 264 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 265 public: 266 WithAsyncMethod_MethodA2() { 267 ::grpc::Service::MarkMethodAsync(1); 268 } 269 ~WithAsyncMethod_MethodA2() override { 270 BaseClassMustBeDerivedFromService(this); 271 } 272 // disable synchronous version of this method 273 ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override { 274 abort(); 275 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 276 } 277 void RequestMethodA2(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::testing::Response, ::grpc::testing::Request>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 278 ::grpc::Service::RequestAsyncClientStreaming(1, context, reader, new_call_cq, notification_cq, tag); 279 } 280 }; 281 template <class BaseClass> 282 class WithAsyncMethod_MethodA3 : public BaseClass { 283 private: 284 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 285 public: 286 WithAsyncMethod_MethodA3() { 287 ::grpc::Service::MarkMethodAsync(2); 288 } 289 ~WithAsyncMethod_MethodA3() override { 290 BaseClassMustBeDerivedFromService(this); 291 } 292 // disable synchronous version of this method 293 ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override { 294 abort(); 295 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 296 } 297 void RequestMethodA3(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncWriter< ::grpc::testing::Response>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 298 ::grpc::Service::RequestAsyncServerStreaming(2, context, request, writer, new_call_cq, notification_cq, tag); 299 } 300 }; 301 template <class BaseClass> 302 class WithAsyncMethod_MethodA4 : public BaseClass { 303 private: 304 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 305 public: 306 WithAsyncMethod_MethodA4() { 307 ::grpc::Service::MarkMethodAsync(3); 308 } 309 ~WithAsyncMethod_MethodA4() override { 310 BaseClassMustBeDerivedFromService(this); 311 } 312 // disable synchronous version of this method 313 ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/) override { 314 abort(); 315 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 316 } 317 void RequestMethodA4(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 318 ::grpc::Service::RequestAsyncBidiStreaming(3, context, stream, new_call_cq, notification_cq, tag); 319 } 320 }; 321 typedef WithAsyncMethod_MethodA1<WithAsyncMethod_MethodA2<WithAsyncMethod_MethodA3<WithAsyncMethod_MethodA4<Service > > > > AsyncService; 322 template <class BaseClass> 323 class WithCallbackMethod_MethodA1 : public BaseClass { 324 private: 325 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 326 public: 327 WithCallbackMethod_MethodA1() { 328 ::grpc::Service::MarkMethodCallback(0, 329 new ::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>( 330 [this]( 331 ::grpc::CallbackServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) { return this->MethodA1(context, request, response); }));} 332 void SetMessageAllocatorFor_MethodA1( 333 ::grpc::MessageAllocator< ::grpc::testing::Request, ::grpc::testing::Response>* allocator) { 334 ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); 335 static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>*>(handler) 336 ->SetMessageAllocator(allocator); 337 } 338 ~WithCallbackMethod_MethodA1() override { 339 BaseClassMustBeDerivedFromService(this); 340 } 341 // disable synchronous version of this method 342 ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 343 abort(); 344 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 345 } 346 virtual ::grpc::ServerUnaryReactor* MethodA1( 347 ::grpc::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) { return nullptr; } 348 }; 349 template <class BaseClass> 350 class WithCallbackMethod_MethodA2 : public BaseClass { 351 private: 352 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 353 public: 354 WithCallbackMethod_MethodA2() { 355 ::grpc::Service::MarkMethodCallback(1, 356 new ::grpc::internal::CallbackClientStreamingHandler< ::grpc::testing::Request, ::grpc::testing::Response>( 357 [this]( 358 ::grpc::CallbackServerContext* context, ::grpc::testing::Response* response) { return this->MethodA2(context, response); })); 359 } 360 ~WithCallbackMethod_MethodA2() override { 361 BaseClassMustBeDerivedFromService(this); 362 } 363 // disable synchronous version of this method 364 ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override { 365 abort(); 366 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 367 } 368 virtual ::grpc::ServerReadReactor< ::grpc::testing::Request>* MethodA2( 369 ::grpc::CallbackServerContext* /*context*/, ::grpc::testing::Response* /*response*/) { return nullptr; } 370 }; 371 template <class BaseClass> 372 class WithCallbackMethod_MethodA3 : public BaseClass { 373 private: 374 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 375 public: 376 WithCallbackMethod_MethodA3() { 377 ::grpc::Service::MarkMethodCallback(2, 378 new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::testing::Request, ::grpc::testing::Response>( 379 [this]( 380 ::grpc::CallbackServerContext* context, const ::grpc::testing::Request* request) { return this->MethodA3(context, request); })); 381 } 382 ~WithCallbackMethod_MethodA3() override { 383 BaseClassMustBeDerivedFromService(this); 384 } 385 // disable synchronous version of this method 386 ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override { 387 abort(); 388 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 389 } 390 virtual ::grpc::ServerWriteReactor< ::grpc::testing::Response>* MethodA3( 391 ::grpc::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/) { return nullptr; } 392 }; 393 template <class BaseClass> 394 class WithCallbackMethod_MethodA4 : public BaseClass { 395 private: 396 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 397 public: 398 WithCallbackMethod_MethodA4() { 399 ::grpc::Service::MarkMethodCallback(3, 400 new ::grpc::internal::CallbackBidiHandler< ::grpc::testing::Request, ::grpc::testing::Response>( 401 [this]( 402 ::grpc::CallbackServerContext* context) { return this->MethodA4(context); })); 403 } 404 ~WithCallbackMethod_MethodA4() override { 405 BaseClassMustBeDerivedFromService(this); 406 } 407 // disable synchronous version of this method 408 ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/) override { 409 abort(); 410 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 411 } 412 virtual ::grpc::ServerBidiReactor< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4( 413 ::grpc::CallbackServerContext* /*context*/) 414 { return nullptr; } 415 }; 416 typedef WithCallbackMethod_MethodA1<WithCallbackMethod_MethodA2<WithCallbackMethod_MethodA3<WithCallbackMethod_MethodA4<Service > > > > CallbackService; 417 typedef CallbackService ExperimentalCallbackService; 418 template <class BaseClass> 419 class WithGenericMethod_MethodA1 : public BaseClass { 420 private: 421 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 422 public: 423 WithGenericMethod_MethodA1() { 424 ::grpc::Service::MarkMethodGeneric(0); 425 } 426 ~WithGenericMethod_MethodA1() override { 427 BaseClassMustBeDerivedFromService(this); 428 } 429 // disable synchronous version of this method 430 ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 431 abort(); 432 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 433 } 434 }; 435 template <class BaseClass> 436 class WithGenericMethod_MethodA2 : public BaseClass { 437 private: 438 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 439 public: 440 WithGenericMethod_MethodA2() { 441 ::grpc::Service::MarkMethodGeneric(1); 442 } 443 ~WithGenericMethod_MethodA2() override { 444 BaseClassMustBeDerivedFromService(this); 445 } 446 // disable synchronous version of this method 447 ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override { 448 abort(); 449 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 450 } 451 }; 452 template <class BaseClass> 453 class WithGenericMethod_MethodA3 : public BaseClass { 454 private: 455 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 456 public: 457 WithGenericMethod_MethodA3() { 458 ::grpc::Service::MarkMethodGeneric(2); 459 } 460 ~WithGenericMethod_MethodA3() override { 461 BaseClassMustBeDerivedFromService(this); 462 } 463 // disable synchronous version of this method 464 ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override { 465 abort(); 466 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 467 } 468 }; 469 template <class BaseClass> 470 class WithGenericMethod_MethodA4 : public BaseClass { 471 private: 472 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 473 public: 474 WithGenericMethod_MethodA4() { 475 ::grpc::Service::MarkMethodGeneric(3); 476 } 477 ~WithGenericMethod_MethodA4() override { 478 BaseClassMustBeDerivedFromService(this); 479 } 480 // disable synchronous version of this method 481 ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/) override { 482 abort(); 483 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 484 } 485 }; 486 template <class BaseClass> 487 class WithRawMethod_MethodA1 : public BaseClass { 488 private: 489 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 490 public: 491 WithRawMethod_MethodA1() { 492 ::grpc::Service::MarkMethodRaw(0); 493 } 494 ~WithRawMethod_MethodA1() override { 495 BaseClassMustBeDerivedFromService(this); 496 } 497 // disable synchronous version of this method 498 ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 499 abort(); 500 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 501 } 502 void RequestMethodA1(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 503 ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); 504 } 505 }; 506 template <class BaseClass> 507 class WithRawMethod_MethodA2 : public BaseClass { 508 private: 509 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 510 public: 511 WithRawMethod_MethodA2() { 512 ::grpc::Service::MarkMethodRaw(1); 513 } 514 ~WithRawMethod_MethodA2() override { 515 BaseClassMustBeDerivedFromService(this); 516 } 517 // disable synchronous version of this method 518 ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override { 519 abort(); 520 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 521 } 522 void RequestMethodA2(::grpc::ServerContext* context, ::grpc::ServerAsyncReader< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* reader, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 523 ::grpc::Service::RequestAsyncClientStreaming(1, context, reader, new_call_cq, notification_cq, tag); 524 } 525 }; 526 template <class BaseClass> 527 class WithRawMethod_MethodA3 : public BaseClass { 528 private: 529 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 530 public: 531 WithRawMethod_MethodA3() { 532 ::grpc::Service::MarkMethodRaw(2); 533 } 534 ~WithRawMethod_MethodA3() override { 535 BaseClassMustBeDerivedFromService(this); 536 } 537 // disable synchronous version of this method 538 ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override { 539 abort(); 540 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 541 } 542 void RequestMethodA3(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 543 ::grpc::Service::RequestAsyncServerStreaming(2, context, request, writer, new_call_cq, notification_cq, tag); 544 } 545 }; 546 template <class BaseClass> 547 class WithRawMethod_MethodA4 : public BaseClass { 548 private: 549 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 550 public: 551 WithRawMethod_MethodA4() { 552 ::grpc::Service::MarkMethodRaw(3); 553 } 554 ~WithRawMethod_MethodA4() override { 555 BaseClassMustBeDerivedFromService(this); 556 } 557 // disable synchronous version of this method 558 ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/) override { 559 abort(); 560 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 561 } 562 void RequestMethodA4(::grpc::ServerContext* context, ::grpc::ServerAsyncReaderWriter< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* stream, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 563 ::grpc::Service::RequestAsyncBidiStreaming(3, context, stream, new_call_cq, notification_cq, tag); 564 } 565 }; 566 template <class BaseClass> 567 class WithRawCallbackMethod_MethodA1 : public BaseClass { 568 private: 569 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 570 public: 571 WithRawCallbackMethod_MethodA1() { 572 ::grpc::Service::MarkMethodRawCallback(0, 573 new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( 574 [this]( 575 ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->MethodA1(context, request, response); })); 576 } 577 ~WithRawCallbackMethod_MethodA1() override { 578 BaseClassMustBeDerivedFromService(this); 579 } 580 // disable synchronous version of this method 581 ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 582 abort(); 583 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 584 } 585 virtual ::grpc::ServerUnaryReactor* MethodA1( 586 ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } 587 }; 588 template <class BaseClass> 589 class WithRawCallbackMethod_MethodA2 : public BaseClass { 590 private: 591 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 592 public: 593 WithRawCallbackMethod_MethodA2() { 594 ::grpc::Service::MarkMethodRawCallback(1, 595 new ::grpc::internal::CallbackClientStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( 596 [this]( 597 ::grpc::CallbackServerContext* context, ::grpc::ByteBuffer* response) { return this->MethodA2(context, response); })); 598 } 599 ~WithRawCallbackMethod_MethodA2() override { 600 BaseClassMustBeDerivedFromService(this); 601 } 602 // disable synchronous version of this method 603 ::grpc::Status MethodA2(::grpc::ServerContext* /*context*/, ::grpc::ServerReader< ::grpc::testing::Request>* /*reader*/, ::grpc::testing::Response* /*response*/) override { 604 abort(); 605 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 606 } 607 virtual ::grpc::ServerReadReactor< ::grpc::ByteBuffer>* MethodA2( 608 ::grpc::CallbackServerContext* /*context*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } 609 }; 610 template <class BaseClass> 611 class WithRawCallbackMethod_MethodA3 : public BaseClass { 612 private: 613 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 614 public: 615 WithRawCallbackMethod_MethodA3() { 616 ::grpc::Service::MarkMethodRawCallback(2, 617 new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( 618 [this]( 619 ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->MethodA3(context, request); })); 620 } 621 ~WithRawCallbackMethod_MethodA3() override { 622 BaseClassMustBeDerivedFromService(this); 623 } 624 // disable synchronous version of this method 625 ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override { 626 abort(); 627 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 628 } 629 virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* MethodA3( 630 ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/) { return nullptr; } 631 }; 632 template <class BaseClass> 633 class WithRawCallbackMethod_MethodA4 : public BaseClass { 634 private: 635 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 636 public: 637 WithRawCallbackMethod_MethodA4() { 638 ::grpc::Service::MarkMethodRawCallback(3, 639 new ::grpc::internal::CallbackBidiHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( 640 [this]( 641 ::grpc::CallbackServerContext* context) { return this->MethodA4(context); })); 642 } 643 ~WithRawCallbackMethod_MethodA4() override { 644 BaseClassMustBeDerivedFromService(this); 645 } 646 // disable synchronous version of this method 647 ::grpc::Status MethodA4(::grpc::ServerContext* /*context*/, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* /*stream*/) override { 648 abort(); 649 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 650 } 651 virtual ::grpc::ServerBidiReactor< ::grpc::ByteBuffer, ::grpc::ByteBuffer>* MethodA4( 652 ::grpc::CallbackServerContext* /*context*/) 653 { return nullptr; } 654 }; 655 template <class BaseClass> 656 class WithStreamedUnaryMethod_MethodA1 : public BaseClass { 657 private: 658 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 659 public: 660 WithStreamedUnaryMethod_MethodA1() { 661 ::grpc::Service::MarkMethodStreamed(0, 662 new ::grpc::internal::StreamedUnaryHandler< 663 ::grpc::testing::Request, ::grpc::testing::Response>( 664 [this](::grpc::ServerContext* context, 665 ::grpc::ServerUnaryStreamer< 666 ::grpc::testing::Request, ::grpc::testing::Response>* streamer) { 667 return this->StreamedMethodA1(context, 668 streamer); 669 })); 670 } 671 ~WithStreamedUnaryMethod_MethodA1() override { 672 BaseClassMustBeDerivedFromService(this); 673 } 674 // disable regular version of this method 675 ::grpc::Status MethodA1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 676 abort(); 677 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 678 } 679 // replace default version of method with streamed unary 680 virtual ::grpc::Status StreamedMethodA1(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_unary_streamer) = 0; 681 }; 682 typedef WithStreamedUnaryMethod_MethodA1<Service > StreamedUnaryService; 683 template <class BaseClass> 684 class WithSplitStreamingMethod_MethodA3 : public BaseClass { 685 private: 686 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 687 public: 688 WithSplitStreamingMethod_MethodA3() { 689 ::grpc::Service::MarkMethodStreamed(2, 690 new ::grpc::internal::SplitServerStreamingHandler< 691 ::grpc::testing::Request, ::grpc::testing::Response>( 692 [this](::grpc::ServerContext* context, 693 ::grpc::ServerSplitStreamer< 694 ::grpc::testing::Request, ::grpc::testing::Response>* streamer) { 695 return this->StreamedMethodA3(context, 696 streamer); 697 })); 698 } 699 ~WithSplitStreamingMethod_MethodA3() override { 700 BaseClassMustBeDerivedFromService(this); 701 } 702 // disable regular version of this method 703 ::grpc::Status MethodA3(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::ServerWriter< ::grpc::testing::Response>* /*writer*/) override { 704 abort(); 705 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 706 } 707 // replace default version of method with split streamed 708 virtual ::grpc::Status StreamedMethodA3(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_split_streamer) = 0; 709 }; 710 typedef WithSplitStreamingMethod_MethodA3<Service > SplitStreamedService; 711 typedef WithStreamedUnaryMethod_MethodA1<WithSplitStreamingMethod_MethodA3<Service > > StreamedService; 712}; 713 714// ServiceB leading comment 1 715class ServiceB final { 716 public: 717 static constexpr char const* service_full_name() { 718 return "grpc.testing.ServiceB"; 719 } 720 class StubInterface { 721 public: 722 virtual ~StubInterface() {} 723 // MethodB1 leading comment 1 724 virtual ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) = 0; 725 std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 726 return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq)); 727 } 728 std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>> PrepareAsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 729 return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>>(PrepareAsyncMethodB1Raw(context, request, cq)); 730 } 731 // MethodB1 trailing comment 1 732 class async_interface { 733 public: 734 virtual ~async_interface() {} 735 // MethodB1 leading comment 1 736 virtual void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) = 0; 737 virtual void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) = 0; 738 // MethodB1 trailing comment 1 739 }; 740 typedef class async_interface experimental_async_interface; 741 virtual class async_interface* async() { return nullptr; } 742 class async_interface* experimental_async() { return async(); } 743 private: 744 virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; 745 virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* PrepareAsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; 746 }; 747 class Stub final : public StubInterface { 748 public: 749 Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); 750 ::grpc::Status MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::testing::Response* response) override; 751 std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> AsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 752 return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(AsyncMethodB1Raw(context, request, cq)); 753 } 754 std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>> PrepareAsyncMethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) { 755 return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>>(PrepareAsyncMethodB1Raw(context, request, cq)); 756 } 757 class async final : 758 public StubInterface::async_interface { 759 public: 760 void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, std::function<void(::grpc::Status)>) override; 761 void MethodB1(::grpc::ClientContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response, ::grpc::ClientUnaryReactor* reactor) override; 762 private: 763 friend class Stub; 764 explicit async(Stub* stub): stub_(stub) { } 765 Stub* stub() { return stub_; } 766 Stub* stub_; 767 }; 768 class async* async() override { return &async_stub_; } 769 770 private: 771 std::shared_ptr< ::grpc::ChannelInterface> channel_; 772 class async async_stub_{this}; 773 ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override; 774 ::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* PrepareAsyncMethodB1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override; 775 const ::grpc::internal::RpcMethod rpcmethod_MethodB1_; 776 }; 777 static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); 778 779 class Service : public ::grpc::Service { 780 public: 781 Service(); 782 virtual ~Service(); 783 // MethodB1 leading comment 1 784 virtual ::grpc::Status MethodB1(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response); 785 // MethodB1 trailing comment 1 786 }; 787 template <class BaseClass> 788 class WithAsyncMethod_MethodB1 : public BaseClass { 789 private: 790 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 791 public: 792 WithAsyncMethod_MethodB1() { 793 ::grpc::Service::MarkMethodAsync(0); 794 } 795 ~WithAsyncMethod_MethodB1() override { 796 BaseClassMustBeDerivedFromService(this); 797 } 798 // disable synchronous version of this method 799 ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 800 abort(); 801 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 802 } 803 void RequestMethodB1(::grpc::ServerContext* context, ::grpc::testing::Request* request, ::grpc::ServerAsyncResponseWriter< ::grpc::testing::Response>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 804 ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); 805 } 806 }; 807 typedef WithAsyncMethod_MethodB1<Service > AsyncService; 808 template <class BaseClass> 809 class WithCallbackMethod_MethodB1 : public BaseClass { 810 private: 811 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 812 public: 813 WithCallbackMethod_MethodB1() { 814 ::grpc::Service::MarkMethodCallback(0, 815 new ::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>( 816 [this]( 817 ::grpc::CallbackServerContext* context, const ::grpc::testing::Request* request, ::grpc::testing::Response* response) { return this->MethodB1(context, request, response); }));} 818 void SetMessageAllocatorFor_MethodB1( 819 ::grpc::MessageAllocator< ::grpc::testing::Request, ::grpc::testing::Response>* allocator) { 820 ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); 821 static_cast<::grpc::internal::CallbackUnaryHandler< ::grpc::testing::Request, ::grpc::testing::Response>*>(handler) 822 ->SetMessageAllocator(allocator); 823 } 824 ~WithCallbackMethod_MethodB1() override { 825 BaseClassMustBeDerivedFromService(this); 826 } 827 // disable synchronous version of this method 828 ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 829 abort(); 830 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 831 } 832 virtual ::grpc::ServerUnaryReactor* MethodB1( 833 ::grpc::CallbackServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) { return nullptr; } 834 }; 835 typedef WithCallbackMethod_MethodB1<Service > CallbackService; 836 typedef CallbackService ExperimentalCallbackService; 837 template <class BaseClass> 838 class WithGenericMethod_MethodB1 : public BaseClass { 839 private: 840 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 841 public: 842 WithGenericMethod_MethodB1() { 843 ::grpc::Service::MarkMethodGeneric(0); 844 } 845 ~WithGenericMethod_MethodB1() override { 846 BaseClassMustBeDerivedFromService(this); 847 } 848 // disable synchronous version of this method 849 ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 850 abort(); 851 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 852 } 853 }; 854 template <class BaseClass> 855 class WithRawMethod_MethodB1 : public BaseClass { 856 private: 857 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 858 public: 859 WithRawMethod_MethodB1() { 860 ::grpc::Service::MarkMethodRaw(0); 861 } 862 ~WithRawMethod_MethodB1() override { 863 BaseClassMustBeDerivedFromService(this); 864 } 865 // disable synchronous version of this method 866 ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 867 abort(); 868 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 869 } 870 void RequestMethodB1(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { 871 ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); 872 } 873 }; 874 template <class BaseClass> 875 class WithRawCallbackMethod_MethodB1 : public BaseClass { 876 private: 877 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 878 public: 879 WithRawCallbackMethod_MethodB1() { 880 ::grpc::Service::MarkMethodRawCallback(0, 881 new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( 882 [this]( 883 ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->MethodB1(context, request, response); })); 884 } 885 ~WithRawCallbackMethod_MethodB1() override { 886 BaseClassMustBeDerivedFromService(this); 887 } 888 // disable synchronous version of this method 889 ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 890 abort(); 891 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 892 } 893 virtual ::grpc::ServerUnaryReactor* MethodB1( 894 ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } 895 }; 896 template <class BaseClass> 897 class WithStreamedUnaryMethod_MethodB1 : public BaseClass { 898 private: 899 void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} 900 public: 901 WithStreamedUnaryMethod_MethodB1() { 902 ::grpc::Service::MarkMethodStreamed(0, 903 new ::grpc::internal::StreamedUnaryHandler< 904 ::grpc::testing::Request, ::grpc::testing::Response>( 905 [this](::grpc::ServerContext* context, 906 ::grpc::ServerUnaryStreamer< 907 ::grpc::testing::Request, ::grpc::testing::Response>* streamer) { 908 return this->StreamedMethodB1(context, 909 streamer); 910 })); 911 } 912 ~WithStreamedUnaryMethod_MethodB1() override { 913 BaseClassMustBeDerivedFromService(this); 914 } 915 // disable regular version of this method 916 ::grpc::Status MethodB1(::grpc::ServerContext* /*context*/, const ::grpc::testing::Request* /*request*/, ::grpc::testing::Response* /*response*/) override { 917 abort(); 918 return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); 919 } 920 // replace default version of method with streamed unary 921 virtual ::grpc::Status StreamedMethodB1(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_unary_streamer) = 0; 922 }; 923 typedef WithStreamedUnaryMethod_MethodB1<Service > StreamedUnaryService; 924 typedef Service SplitStreamedService; 925 typedef WithStreamedUnaryMethod_MethodB1<Service > StreamedService; 926}; 927// ServiceB trailing comment 1 928 929} // namespace testing 930} // namespace grpc 931 932 933#endif // GRPC_src_2fproto_2fgrpc_2ftesting_2fcompiler_5ftest_2eproto__INCLUDED 934