34 #ifndef GRPCXX_IMPL_CODEGEN_SERVER_INTERFACE_H
35 #define GRPCXX_IMPL_CODEGEN_SERVER_INTERFACE_H
37 #include <grpc/impl/codegen/grpc_types.h>
44 class AsyncGenericService;
45 class GenericServerContext;
47 class ServerAsyncStreamingInterface;
48 class ServerCompletionQueue;
50 class ServerCredentials;
52 class ThreadPoolInterface;
78 virtual void Wait() = 0;
116 virtual void RunRpc() = 0;
125 virtual grpc_server*
server() = 0;
134 bool delete_on_finalize);
159 void IssueRequest(
void* registered_method, grpc_byte_buffer** payload,
171 IssueRequest(registered_method,
nullptr, notification_cq);
177 template <
class Message>
188 IssueRequest(registered_method, &payload_, notification_cq);
192 bool serialization_status =
193 *status && payload_ &&
197 *status = serialization_status&&* status;
202 grpc_byte_buffer* payload_;
212 bool delete_on_finalize);
217 grpc_call_details call_details_;
220 template <
class Message>
228 stream, call_cq, notification_cq, tag,
238 call_cq, notification_cq, tag);
253 #endif // GRPCXX_IMPL_CODEGEN_SERVER_INTERFACE_H
PayloadAsyncRequest(void *registered_method, ServerInterface *server, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag, Message *request)
Definition: server_interface.h:180
virtual ~ServerInterface()
Definition: server_interface.h:59
An interface allowing implementors to process and filter event tags.
Definition: completion_queue_tag.h:40
Definition: server_interface.h:163
void Shutdown()
Shutdown the server, waiting for all rpc processing to finish.
Definition: server_interface.h:72
bool FinalizeResult(void **tag, bool *status) GRPC_OVERRIDE
std::string string
Definition: config.h:112
An abstract collection of call ops, used to generate the grpc_call_op structure to pass down to the l...
Definition: call.h:494
bool FinalizeResult(void **tag, bool *status) GRPC_OVERRIDE
Definition: server_interface.h:178
ServerInterface *const server_
Definition: server_interface.h:140
Definition: service_type.h:63
virtual void ShutdownInternal(gpr_timespec deadline)=0
Definition: server_interface.h:150
Definition: service_type.h:52
RegisteredAsyncRequest(ServerInterface *server, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, void *tag)
Definition: async_generic_service.h:60
virtual void RunRpc()=0
Process one or more incoming calls.
virtual ~BaseAsyncRequest()
Definition: server_interface.h:135
Definition: rpc_service_method.h:73
void RequestAsyncCall(RpcServiceMethod *method, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag)
Definition: server_interface.h:232
Defines how to serialize and deserialize some type.
Definition: serialization_traits.h:64
virtual grpc_server * server()=0
Definition: server_credentials.h:49
virtual void PerformOpsOnCall(CallOpSetInterface *ops, Call *call)=0
const bool delete_on_finalize_
Definition: server_interface.h:145
grpc_metadata_array initial_metadata_array_
Definition: server_interface.h:147
bool FinalizeResult(void **tag, bool *status) GRPC_OVERRIDE
Definition: server_interface.h:191
Definition: server_context.h:90
Models a gRPC server.
Definition: server_interface.h:57
grpc_call * call_
Definition: server_interface.h:146
CompletionQueue *const call_cq_
Definition: server_interface.h:143
virtual bool RegisterService(const grpc::string *host, Service *service)=0
Register a service.
ServerAsyncStreamingInterface *const stream_
Definition: server_interface.h:142
Definition: async_generic_service.h:47
A thin wrapper around grpc_completion_queue (see / src/core/surface/completion_queue.h).
Definition: completion_queue.h:81
#define GRPC_FINAL
Definition: config.h:71
virtual int max_message_size() const =0
void Shutdown(const T &deadline)
Shutdown the server, blocking until all rpc processing finishes.
Definition: server_interface.h:67
BaseAsyncRequest(ServerInterface *server, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, void *tag, bool delete_on_finalize)
virtual void ScheduleCallback()=0
Schedule RunRpc to run in the threadpool.
ServerContext *const context_
Definition: server_interface.h:141
virtual void RegisterAsyncGenericService(AsyncGenericService *service)=0
Register a generic service.
virtual int AddListeningPort(const grpc::string &addr, ServerCredentials *creds)=0
Tries to bind server to the given addr.
void * server_tag() const
Definition: rpc_service_method.h:81
Definition: server_interface.h:206
void RequestAsyncGenericCall(GenericServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag)
Definition: server_interface.h:241
void *const tag_
Definition: server_interface.h:144
void IssueRequest(void *registered_method, grpc_byte_buffer **payload, ServerCompletionQueue *notification_cq)
virtual void Wait()=0
Block waiting for all work to complete.
A specific type of completion queue used by the processing of notifications by servers.
Definition: completion_queue.h:194
GenericAsyncRequest(ServerInterface *server, GenericServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag, bool delete_on_finalize)
NoPayloadAsyncRequest(void *registered_method, ServerInterface *server, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag)
Definition: server_interface.h:165
Channel and Server implement this to allow them to hook performing ops.
Definition: call_hook.h:43
#define GRPC_OVERRIDE
Definition: config.h:77
Definition: server_interface.h:129
void RequestAsyncCall(RpcServiceMethod *method, ServerContext *context, ServerAsyncStreamingInterface *stream, CompletionQueue *call_cq, ServerCompletionQueue *notification_cq, void *tag, Message *message)
Definition: server_interface.h:221
virtual bool Start(ServerCompletionQueue **cqs, size_t num_cqs)=0
Start the server.
::google::protobuf::Message Message
Definition: config_protobuf.h:60