|
|
|
@ -89,10 +89,30 @@ class ServiceA final { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); |
|
|
|
|
} |
|
|
|
|
// MethodA2 trailing comment 1 |
|
|
|
|
// Method A3 leading comment 1 |
|
|
|
|
std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::testing::Response>> MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::testing::Response>>(MethodA3Raw(context, request)); |
|
|
|
|
} |
|
|
|
|
std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>> AsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>>(AsyncMethodA3Raw(context, request, cq, tag)); |
|
|
|
|
} |
|
|
|
|
// Method A3 trailing comment 1 |
|
|
|
|
// Method A4 leading comment 1 |
|
|
|
|
std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> MethodA4(::grpc::ClientContext* context) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(MethodA4Raw(context)); |
|
|
|
|
} |
|
|
|
|
std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>> AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>>(AsyncMethodA4Raw(context, cq, tag)); |
|
|
|
|
} |
|
|
|
|
// Method A4 trailing comment 1 |
|
|
|
|
private: |
|
|
|
|
virtual ::grpc::ClientAsyncResponseReaderInterface< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) = 0; |
|
|
|
|
virtual ::grpc::ClientWriterInterface< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) = 0; |
|
|
|
|
virtual ::grpc::ClientAsyncWriterInterface< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) = 0; |
|
|
|
|
virtual ::grpc::ClientReaderInterface< ::grpc::testing::Response>* MethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request) = 0; |
|
|
|
|
virtual ::grpc::ClientAsyncReaderInterface< ::grpc::testing::Response>* AsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) = 0; |
|
|
|
|
virtual ::grpc::ClientReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4Raw(::grpc::ClientContext* context) = 0; |
|
|
|
|
virtual ::grpc::ClientAsyncReaderWriterInterface< ::grpc::testing::Request, ::grpc::testing::Response>* AsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) = 0; |
|
|
|
|
}; |
|
|
|
|
class Stub final : public StubInterface { |
|
|
|
|
public: |
|
|
|
@ -107,14 +127,32 @@ class ServiceA final { |
|
|
|
|
std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>> AsyncMethodA2(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientAsyncWriter< ::grpc::testing::Request>>(AsyncMethodA2Raw(context, response, cq, tag)); |
|
|
|
|
} |
|
|
|
|
std::unique_ptr< ::grpc::ClientReader< ::grpc::testing::Response>> MethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientReader< ::grpc::testing::Response>>(MethodA3Raw(context, request)); |
|
|
|
|
} |
|
|
|
|
std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>> AsyncMethodA3(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::testing::Response>>(AsyncMethodA3Raw(context, request, cq, tag)); |
|
|
|
|
} |
|
|
|
|
std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> MethodA4(::grpc::ClientContext* context) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(MethodA4Raw(context)); |
|
|
|
|
} |
|
|
|
|
std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>> AsyncMethodA4(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) { |
|
|
|
|
return std::unique_ptr< ::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>>(AsyncMethodA4Raw(context, cq, tag)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
std::shared_ptr< ::grpc::ChannelInterface> channel_; |
|
|
|
|
::grpc::ClientAsyncResponseReader< ::grpc::testing::Response>* AsyncMethodA1Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq) override; |
|
|
|
|
::grpc::ClientWriter< ::grpc::testing::Request>* MethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response) override; |
|
|
|
|
::grpc::ClientAsyncWriter< ::grpc::testing::Request>* AsyncMethodA2Raw(::grpc::ClientContext* context, ::grpc::testing::Response* response, ::grpc::CompletionQueue* cq, void* tag) override; |
|
|
|
|
::grpc::ClientReader< ::grpc::testing::Response>* MethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request) override; |
|
|
|
|
::grpc::ClientAsyncReader< ::grpc::testing::Response>* AsyncMethodA3Raw(::grpc::ClientContext* context, const ::grpc::testing::Request& request, ::grpc::CompletionQueue* cq, void* tag) override; |
|
|
|
|
::grpc::ClientReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* MethodA4Raw(::grpc::ClientContext* context) override; |
|
|
|
|
::grpc::ClientAsyncReaderWriter< ::grpc::testing::Request, ::grpc::testing::Response>* AsyncMethodA4Raw(::grpc::ClientContext* context, ::grpc::CompletionQueue* cq, void* tag) override; |
|
|
|
|
const ::grpc::RpcMethod rpcmethod_MethodA1_; |
|
|
|
|
const ::grpc::RpcMethod rpcmethod_MethodA2_; |
|
|
|
|
const ::grpc::RpcMethod rpcmethod_MethodA3_; |
|
|
|
|
const ::grpc::RpcMethod rpcmethod_MethodA4_; |
|
|
|
|
}; |
|
|
|
|
static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); |
|
|
|
|
|
|
|
|
@ -131,6 +169,12 @@ class ServiceA final { |
|
|
|
|
// Method A2 leading comment 2 |
|
|
|
|
virtual ::grpc::Status MethodA2(::grpc::ServerContext* context, ::grpc::ServerReader< ::grpc::testing::Request>* reader, ::grpc::testing::Response* response); |
|
|
|
|
// MethodA2 trailing comment 1 |
|
|
|
|
// Method A3 leading comment 1 |
|
|
|
|
virtual ::grpc::Status MethodA3(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::ServerWriter< ::grpc::testing::Response>* writer); |
|
|
|
|
// Method A3 trailing comment 1 |
|
|
|
|
// Method A4 leading comment 1 |
|
|
|
|
virtual ::grpc::Status MethodA4(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* stream); |
|
|
|
|
// Method A4 trailing comment 1 |
|
|
|
|
}; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithAsyncMethod_MethodA1 : public BaseClass { |
|
|
|
@ -172,7 +216,47 @@ class ServiceA final { |
|
|
|
|
::grpc::Service::RequestAsyncClientStreaming(1, context, reader, new_call_cq, notification_cq, tag); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
typedef WithAsyncMethod_MethodA1<WithAsyncMethod_MethodA2<Service > > AsyncService; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithAsyncMethod_MethodA3 : public BaseClass { |
|
|
|
|
private: |
|
|
|
|
void BaseClassMustBeDerivedFromService(const Service *service) {} |
|
|
|
|
public: |
|
|
|
|
WithAsyncMethod_MethodA3() { |
|
|
|
|
::grpc::Service::MarkMethodAsync(2); |
|
|
|
|
} |
|
|
|
|
~WithAsyncMethod_MethodA3() override { |
|
|
|
|
BaseClassMustBeDerivedFromService(this); |
|
|
|
|
} |
|
|
|
|
// disable synchronous version of this method |
|
|
|
|
::grpc::Status MethodA3(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::ServerWriter< ::grpc::testing::Response>* writer) final override { |
|
|
|
|
abort(); |
|
|
|
|
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); |
|
|
|
|
} |
|
|
|
|
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) { |
|
|
|
|
::grpc::Service::RequestAsyncServerStreaming(2, context, request, writer, new_call_cq, notification_cq, tag); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithAsyncMethod_MethodA4 : public BaseClass { |
|
|
|
|
private: |
|
|
|
|
void BaseClassMustBeDerivedFromService(const Service *service) {} |
|
|
|
|
public: |
|
|
|
|
WithAsyncMethod_MethodA4() { |
|
|
|
|
::grpc::Service::MarkMethodAsync(3); |
|
|
|
|
} |
|
|
|
|
~WithAsyncMethod_MethodA4() override { |
|
|
|
|
BaseClassMustBeDerivedFromService(this); |
|
|
|
|
} |
|
|
|
|
// disable synchronous version of this method |
|
|
|
|
::grpc::Status MethodA4(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* stream) final override { |
|
|
|
|
abort(); |
|
|
|
|
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); |
|
|
|
|
} |
|
|
|
|
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) { |
|
|
|
|
::grpc::Service::RequestAsyncBidiStreaming(3, context, stream, new_call_cq, notification_cq, tag); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
typedef WithAsyncMethod_MethodA1<WithAsyncMethod_MethodA2<WithAsyncMethod_MethodA3<WithAsyncMethod_MethodA4<Service > > > > AsyncService; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithGenericMethod_MethodA1 : public BaseClass { |
|
|
|
|
private: |
|
|
|
@ -208,6 +292,40 @@ class ServiceA final { |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithGenericMethod_MethodA3 : public BaseClass { |
|
|
|
|
private: |
|
|
|
|
void BaseClassMustBeDerivedFromService(const Service *service) {} |
|
|
|
|
public: |
|
|
|
|
WithGenericMethod_MethodA3() { |
|
|
|
|
::grpc::Service::MarkMethodGeneric(2); |
|
|
|
|
} |
|
|
|
|
~WithGenericMethod_MethodA3() override { |
|
|
|
|
BaseClassMustBeDerivedFromService(this); |
|
|
|
|
} |
|
|
|
|
// disable synchronous version of this method |
|
|
|
|
::grpc::Status MethodA3(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::ServerWriter< ::grpc::testing::Response>* writer) final override { |
|
|
|
|
abort(); |
|
|
|
|
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithGenericMethod_MethodA4 : public BaseClass { |
|
|
|
|
private: |
|
|
|
|
void BaseClassMustBeDerivedFromService(const Service *service) {} |
|
|
|
|
public: |
|
|
|
|
WithGenericMethod_MethodA4() { |
|
|
|
|
::grpc::Service::MarkMethodGeneric(3); |
|
|
|
|
} |
|
|
|
|
~WithGenericMethod_MethodA4() override { |
|
|
|
|
BaseClassMustBeDerivedFromService(this); |
|
|
|
|
} |
|
|
|
|
// disable synchronous version of this method |
|
|
|
|
::grpc::Status MethodA4(::grpc::ServerContext* context, ::grpc::ServerReaderWriter< ::grpc::testing::Response, ::grpc::testing::Request>* stream) final override { |
|
|
|
|
abort(); |
|
|
|
|
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithStreamedUnaryMethod_MethodA1 : public BaseClass { |
|
|
|
|
private: |
|
|
|
|
void BaseClassMustBeDerivedFromService(const Service *service) {} |
|
|
|
@ -228,8 +346,28 @@ class ServiceA final { |
|
|
|
|
virtual ::grpc::Status StreamedMethodA1(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_unary_streamer) = 0; |
|
|
|
|
}; |
|
|
|
|
typedef WithStreamedUnaryMethod_MethodA1<Service > StreamedUnaryService; |
|
|
|
|
typedef Service SplitStreamedService; |
|
|
|
|
typedef WithStreamedUnaryMethod_MethodA1<Service > StreamedService; |
|
|
|
|
template <class BaseClass> |
|
|
|
|
class WithSplitStreamingMethod_MethodA3 : public BaseClass { |
|
|
|
|
private: |
|
|
|
|
void BaseClassMustBeDerivedFromService(const Service *service) {} |
|
|
|
|
public: |
|
|
|
|
WithSplitStreamingMethod_MethodA3() { |
|
|
|
|
::grpc::Service::MarkMethodStreamed(2, |
|
|
|
|
new ::grpc::SplitServerStreamingHandler< ::grpc::testing::Request, ::grpc::testing::Response>(std::bind(&WithSplitStreamingMethod_MethodA3<BaseClass>::StreamedMethodA3, this, std::placeholders::_1, std::placeholders::_2))); |
|
|
|
|
} |
|
|
|
|
~WithSplitStreamingMethod_MethodA3() override { |
|
|
|
|
BaseClassMustBeDerivedFromService(this); |
|
|
|
|
} |
|
|
|
|
// disable regular version of this method |
|
|
|
|
::grpc::Status MethodA3(::grpc::ServerContext* context, const ::grpc::testing::Request* request, ::grpc::ServerWriter< ::grpc::testing::Response>* writer) final override { |
|
|
|
|
abort(); |
|
|
|
|
return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); |
|
|
|
|
} |
|
|
|
|
// replace default version of method with split streamed |
|
|
|
|
virtual ::grpc::Status StreamedMethodA3(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::grpc::testing::Request,::grpc::testing::Response>* server_split_streamer) = 0; |
|
|
|
|
}; |
|
|
|
|
typedef WithSplitStreamingMethod_MethodA3<Service > SplitStreamedService; |
|
|
|
|
typedef WithStreamedUnaryMethod_MethodA1<WithSplitStreamingMethod_MethodA3<Service > > StreamedService; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// ServiceB leading comment 1 |
|
|
|
|