36 #ifndef GRPCXX_COMPLETION_QUEUE_H 
   37 #define GRPCXX_COMPLETION_QUEUE_H 
   39 #include <grpc/support/time.h> 
   44 struct grpc_completion_queue;
 
   52 template <
class R, 
class W>
 
   53 class ClientReaderWriter;
 
   58 template <
class R, 
class W>
 
   60 template <
class ServiceType, 
class RequestType, 
class ResponseType>
 
   62 template <
class ServiceType, 
class RequestType, 
class ResponseType>
 
   64 template <
class ServiceType, 
class RequestType, 
class ResponseType>
 
   66 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 R, 
class W>
 
  155   friend class ::grpc::ClientReaderWriter;
 
  157   friend class ::grpc::ServerReader;
 
  159   friend class ::grpc::ServerWriter;
 
  160   template <
class R, 
class W>
 
  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>
 
  176                                   const InputMessage& request,
 
  177                                   OutputMessage* result);
 
  179   NextStatus AsyncNextInternal(
void** tag, 
bool* ok, gpr_timespec deadline);
 
  188   grpc_completion_queue* cq_;  
 
  212 #endif  // GRPCXX_COMPLETION_QUEUE_H 
An interface allowing implementors to process and filter event tags. 
Definition: completion_queue.h:192
 
friend Status BlockingUnaryCall(Channel *channel, const RpcMethod &method, ClientContext *context, const InputMessage &request, OutputMessage *result)
Definition: client_unary_call.h:50
 
virtual bool FinalizeResult(void **tag, bool *status)=0
 
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:56
 
grpc_completion_queue * cq()
Returns a raw pointer to the underlying grpc_completion_queue instance. 
Definition: completion_queue.h:145
 
Definition: client_context.h:149
 
Definition: completion_queue.h:55
 
~CompletionQueue() GRPC_OVERRIDE
Destructor. Destroys the owned wrapped completion queue / instance. 
 
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: rpc_service_method.h:212
 
Definition: grpc_library.h:41
 
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
 
virtual ~CompletionQueueTag()
Definition: completion_queue.h:194
 
Models a gRPC server. 
Definition: server.h:63
 
Definition: completion_queue.h:61
 
void Shutdown()
Request the shutdown of the queue. 
 
NextStatus
Tri-state return for AsyncNext: SHUTDOWN, GOT_EVENT, TIMEOUT. 
Definition: completion_queue.h:96
 
CompletionQueue()
Default constructor. 
 
Definition: server_context.h:89
 
Definition: completion_queue.h:57
 
A thin wrapper around grpc_completion_queue (see / src/core/surface/completion_queue.h). 
Definition: completion_queue.h:81
 
Definition: completion_queue.h:63
 
Definition: rpc_method.h:43
 
Server-side interface for bi-directional streaming. 
Definition: completion_queue.h:59
 
Definition: completion_queue.h:65
 
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:204
 
#define GRPC_OVERRIDE
Definition: config.h:77
 
Definition: completion_queue.h:67
 
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:69