34 #ifndef GRPCXX_COMPLETION_QUEUE_H
35 #define GRPCXX_COMPLETION_QUEUE_H
37 #include <grpc/support/time.h>
38 #include <grpc++/impl/client_unary_call.h>
39 #include <grpc++/impl/grpc_library.h>
40 #include <grpc++/time.h>
50 template <
class R,
class W>
51 class ClientReaderWriter;
56 template <
class R,
class W>
72 virtual bool FinalizeResult(
void** tag,
bool* status) = 0;
83 enum NextStatus { SHUTDOWN, GOT_EVENT, TIMEOUT };
88 NextStatus AsyncNext(
void** tag,
bool* ok,
const T& deadline) {
90 return AsyncNextInternal(tag, ok, deadline_tp.raw_time());
96 bool Next(
void** tag,
bool* ok) {
97 return (AsyncNextInternal(tag, ok, gpr_inf_future) != SHUTDOWN);
110 friend class ::grpc::ClientReader;
112 friend class ::grpc::ClientWriter;
113 template <
class R,
class W>
114 friend class ::grpc::ClientReaderWriter;
116 friend class ::grpc::ServerReader;
118 friend class ::grpc::ServerWriter;
119 template <
class R,
class W>
120 friend class ::grpc::ServerReaderWriter;
121 friend class ::grpc::Server;
122 friend class ::grpc::ServerContext;
126 const grpc::protobuf::Message&
request,
127 grpc::protobuf::Message* result);
129 NextStatus AsyncNextInternal(
void** tag,
bool* ok,
gpr_timespec deadline);
149 #endif // GRPCXX_COMPLETION_QUEUE_H
Definition: completion_queue.h:76
Definition: channel_interface.h:52
Definition: completion_queue.h:53
Definition: completion_queue.h:64
Definition: completion_queue.h:141
Definition: completion_queue.h:55
Definition: client_context.h:72
Definition: completion_queue.c:61
Definition: completion_queue.h:57
Definition: rpc_method.h:39
Definition: server_builder.h:54
Definition: server_context.h:70
Definition: channel_create.c:62
Definition: grpc_library.h:41