diff options
author | yang-g <yangg@google.com> | 2015-07-06 14:05:54 -0700 |
---|---|---|
committer | yang-g <yangg@google.com> | 2015-07-06 14:05:54 -0700 |
commit | 5ea46ab2482c3724fbc7fd0aab55f324fb65999c (patch) | |
tree | 55eebc4aae8f06f931c8f75ddf84d56595f99fa1 /include/grpc++/completion_queue.h | |
parent | 3abe60b9d08ff5a784a39f7c4a10c631547c3526 (diff) | |
parent | d426864934ac60f46e538ba81932e405fa8949b1 (diff) |
merge with upstream and resolve conflicts
Diffstat (limited to 'include/grpc++/completion_queue.h')
-rw-r--r-- | include/grpc++/completion_queue.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/include/grpc++/completion_queue.h b/include/grpc++/completion_queue.h index e8429c8f41..f32cbff06c 100644 --- a/include/grpc++/completion_queue.h +++ b/include/grpc++/completion_queue.h @@ -35,8 +35,8 @@ #define GRPCXX_COMPLETION_QUEUE_H #include <grpc/support/time.h> -#include <grpc++/impl/client_unary_call.h> #include <grpc++/impl/grpc_library.h> +#include <grpc++/status.h> #include <grpc++/time.h> struct grpc_completion_queue; @@ -55,8 +55,19 @@ template <class W> class ServerWriter; template <class R, class W> class ServerReaderWriter; - +template <class ServiceType, class RequestType, class ResponseType> +class RpcMethodHandler; +template <class ServiceType, class RequestType, class ResponseType> +class ClientStreamingHandler; +template <class ServiceType, class RequestType, class ResponseType> +class ServerStreamingHandler; +template <class ServiceType, class RequestType, class ResponseType> +class BidiStreamingHandler; + +class ChannelInterface; +class ClientContext; class CompletionQueue; +class RpcMethod; class Server; class ServerBuilder; class ServerContext; @@ -84,7 +95,7 @@ class CompletionQueue : public GrpcLibrary { // Nonblocking (until deadline) read from queue. // Cannot rely on result of tag or ok if return is TIMEOUT - template<typename T> + template <typename T> NextStatus AsyncNext(void** tag, bool* ok, const T& deadline) { TimePoint<T> deadline_tp(deadline); return AsyncNextInternal(tag, ok, deadline_tp.raw_time()); @@ -118,13 +129,22 @@ class CompletionQueue : public GrpcLibrary { friend class ::grpc::ServerWriter; template <class R, class W> friend class ::grpc::ServerReaderWriter; + template <class ServiceType, class RequestType, class ResponseType> + friend class RpcMethodHandler; + template <class ServiceType, class RequestType, class ResponseType> + friend class ClientStreamingHandler; + template <class ServiceType, class RequestType, class ResponseType> + friend class ServerStreamingHandler; + template <class ServiceType, class RequestType, class ResponseType> + friend class BidiStreamingHandler; friend class ::grpc::Server; friend class ::grpc::ServerContext; + template <class InputMessage, class OutputMessage> friend Status BlockingUnaryCall(ChannelInterface* channel, const RpcMethod& method, ClientContext* context, - const grpc::protobuf::Message& request, - grpc::protobuf::Message* result); + const InputMessage& request, + OutputMessage* result); NextStatus AsyncNextInternal(void** tag, bool* ok, gpr_timespec deadline); |