36 #ifndef GRPCXX_IMPL_CODEGEN_COMPLETION_QUEUE_H
37 #define GRPCXX_IMPL_CODEGEN_COMPLETION_QUEUE_H
43 struct grpc_completion_queue;
51 template <
class W,
class R>
52 class ClientReaderWriter;
57 template <
class W,
class R>
59 template <
class ServiceType,
class RequestType,
class ResponseType>
61 template <
class ServiceType,
class RequestType,
class ResponseType>
63 template <
class ServiceType,
class RequestType,
class ResponseType>
65 template <
class ServiceType,
class RequestType,
class ResponseType>
113 template <
typename T>
116 return AsyncNextInternal(tag, ok, deadline_tp.
raw_time());
126 bool Next(
void** tag,
bool* ok) {
127 return (AsyncNextInternal(tag, ok, gpr_inf_future(GPR_CLOCK_REALTIME)) !=
145 grpc_completion_queue*
cq() {
return cq_; }
151 friend class ::grpc::ClientReader;
153 friend class ::grpc::ClientWriter;
154 template <
class W,
class R>
155 friend class ::grpc::ClientReaderWriter;
157 friend class ::grpc::ServerReader;
159 friend class ::grpc::ServerWriter;
160 template <
class W,
class R>
161 friend class ::grpc::ServerReaderWriter;
162 template <
class ServiceType,
class RequestType,
class ResponseType>
164 template <
class ServiceType,
class RequestType,
class ResponseType>
166 template <
class ServiceType,
class RequestType,
class ResponseType>
168 template <
class ServiceType,
class RequestType,
class ResponseType>
171 friend class ::grpc::Server;
172 friend class ::grpc::ServerContext;
173 template <
class InputMessage,
class OutputMessage>
177 const InputMessage& request,
178 OutputMessage* result);
180 NextStatus AsyncNextInternal(
void** tag,
bool* ok, gpr_timespec deadline);
189 grpc_completion_queue* cq_;
202 #endif // GRPCXX_IMPL_CODEGEN_COMPLETION_QUEUE_H
An interface allowing implementors to process and filter event tags.
Definition: completion_queue_tag.h:40
friend Status BlockingUnaryCall(ChannelInterface *channel, const RpcMethod &method, ClientContext *context, const InputMessage &request, OutputMessage *result)
Definition: client_unary_call.h:51
Got a new event; tag will be filled in with its associated value; ok indicating its success...
Definition: completion_queue.h:98
The completion queue has been shutdown.
Definition: completion_queue.h:97
gpr_timespec raw_time()
Definition: time.h:57
grpc_completion_queue * cq()
Returns a raw pointer to the underlying grpc_completion_queue instance.
Definition: completion_queue.h:145
Definition: client_context.h:152
Definition: completion_queue.h:54
bool Next(void **tag, bool *ok)
Read from the queue, blocking until an event is available or the queue is shutting down...
Definition: completion_queue.h:126
Definition: method_handler_impl.h:181
Definition: grpc_library.h:49
NextStatus AsyncNext(void **tag, bool *ok, const T &deadline)
Read from the queue, blocking up to deadline (or the queue's shutdown).
Definition: completion_queue.h:114
~CompletionQueue()
Destructor. Destroys the owned wrapped completion queue / instance.
Models a gRPC server.
Definition: server.h:65
Definition: completion_queue.h:60
void Shutdown()
Request the shutdown of the queue.
Codegen interface for grpc::Channel.
Definition: channel_interface.h:64
NextStatus
Tri-state return for AsyncNext: SHUTDOWN, GOT_EVENT, TIMEOUT.
Definition: completion_queue.h:96
CompletionQueue()
Default constructor.
Definition: server_context.h:90
Definition: completion_queue.h:56
A thin wrapper around grpc_completion_queue (see / src/core/surface/completion_queue.h).
Definition: completion_queue.h:81
Definition: completion_queue.h:62
Definition: rpc_method.h:43
Server-side interface for bi-directional streaming.
Definition: completion_queue.h:58
Definition: completion_queue.h:64
Did it work? If it didn't, why?
Definition: status.h:45
A specific type of completion queue used by the processing of notifications by servers.
Definition: completion_queue.h:194
Definition: completion_queue.h:66
A builder class for the creation and startup of grpc::Server instances.
Definition: server_builder.h:55
deadline was reached.
Definition: completion_queue.h:100
Channels represent a connection to an endpoint. Created by CreateChannel.
Definition: channel.h:49