34 #ifndef GRPCXX_IMPL_SERVICE_TYPE_H
35 #define GRPCXX_IMPL_SERVICE_TYPE_H
45 class CompletionQueue;
48 class ServerCompletionQueue;
65 virtual void BindCall(
Call* call) = 0;
72 method_names_(method_names),
73 method_count_(method_count),
74 request_args_(nullptr) {}
79 template <
class Message>
84 server_->RequestAsyncCall(request_args_[index], context, stream, call_cq,
85 notification_cq, tag, request);
92 server_->RequestAsyncCall(request_args_[index], context, stream, call_cq,
93 notification_cq, tag);
95 template <
class Message>
102 server_->RequestAsyncCall(request_args_[index], context, stream, call_cq,
103 notification_cq, tag, request);
109 server_->RequestAsyncCall(request_args_[index], context, stream, call_cq,
110 notification_cq, tag);
116 const char**
const method_names_;
117 size_t method_count_;
118 void** request_args_;
123 #endif // GRPCXX_IMPL_SERVICE_TYPE_H
virtual void SendInitialMetadata(void *tag)=0
~AsynchronousService()
Definition: service_type.h:76
Definition: service_type.h:68
virtual ~SynchronousService()
Definition: service_type.h:53
Definition: service_type.h:57
void RequestClientStreaming(int index, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag)
Definition: service_type.h:87
Definition: service_type.h:51
Definition: rpc_service_method.h:248
Models a gRPC server.
Definition: server.h:63
void RequestServerStreaming(int index, ServerContext *context, Message *request, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag)
Definition: service_type.h:96
Definition: server_context.h:89
AsynchronousService(const char **method_names, size_t method_count)
Definition: service_type.h:70
A thin wrapper around grpc_completion_queue (see / src/core/surface/completion_queue.h).
Definition: completion_queue.h:81
virtual RpcService * service()=0
void RequestBidiStreaming(int index, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag)
Definition: service_type.h:105
virtual ~ServerAsyncStreamingInterface()
Definition: service_type.h:59
A specific type of completion queue used by the processing of notifications by servers.
Definition: completion_queue.h:204
void RequestAsyncUnary(int index, ServerContext *context, Message *request, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag)
Definition: service_type.h:80
::google::protobuf::Message Message
Definition: config_protobuf.h:60