34 #ifndef GRPCXX_IMPL_SERVICE_TYPE_H
35 #define GRPCXX_IMPL_SERVICE_TYPE_H
37 #include <grpc++/config.h>
45 class ServerCompletionQueue;
59 virtual void SendInitialMetadata(
void* tag) = 0;
63 virtual void BindCall(
Call* call) = 0;
73 ::grpc::protobuf::Message*
request,
81 : dispatch_impl_(nullptr),
82 method_names_(method_names),
83 method_count_(method_count),
84 request_args_(nullptr) {}
89 void RequestAsyncUnary(
int index, ServerContext* context,
90 grpc::protobuf::Message*
request,
91 ServerAsyncStreamingInterface*
stream,
93 ServerCompletionQueue* notification_cq,
void* tag) {
94 dispatch_impl_->RequestAsyncCall(request_args_[index], context, request,
95 stream, call_cq, notification_cq, tag);
97 void RequestClientStreaming(
int index, ServerContext* context,
98 ServerAsyncStreamingInterface* stream,
100 ServerCompletionQueue* notification_cq,
102 dispatch_impl_->RequestAsyncCall(request_args_[index], context,
nullptr,
103 stream, call_cq, notification_cq, tag);
105 void RequestServerStreaming(
int index, ServerContext* context,
106 grpc::protobuf::Message* request,
107 ServerAsyncStreamingInterface* stream,
109 ServerCompletionQueue* notification_cq,
111 dispatch_impl_->RequestAsyncCall(request_args_[index], context, request,
112 stream, call_cq, notification_cq, tag);
114 void RequestBidiStreaming(
int index, ServerContext* context,
115 ServerAsyncStreamingInterface* stream,
117 ServerCompletionQueue* notification_cq,
void* tag) {
118 dispatch_impl_->RequestAsyncCall(request_args_[index], context,
nullptr,
119 stream, call_cq, notification_cq, tag);
124 DispatchImpl* dispatch_impl_;
125 const char**
const method_names_;
126 size_t method_count_;
127 void** request_args_;
132 #endif // GRPCXX_IMPL_SERVICE_TYPE_H
Definition: service_type.h:66
Definition: completion_queue.h:76
Definition: _completion_queue.h:40
Definition: service_type.h:49
Definition: completion_queue.h:141
Definition: chttp2_transport.c:307
Definition: service_type.h:69
Definition: rpc_service_method.h:192
Definition: server_context.h:70
Definition: channel_create.c:62
Definition: service_type.h:55