From 4e1e1bc28e9c95333a730889bc1a09581731ae2b Mon Sep 17 00:00:00 2001 From: vjpai <vpai@google.com> Date: Fri, 27 Feb 2015 23:47:12 -0800 Subject: [PATCH] Revert "Use typedefs to avoid triply-nested function templates" This reverts commit 45b0bc4bec5d0b701dbe5ae98542473ef3eaa4e4. This revert is being done because the compilers on Travis don't understand the C++11 template/using syntax. --- test/cpp/qps/client_async.cc | 19 ++++++------------- test/cpp/qps/server_async.cc | 29 ++++++++++++++++------------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc index 0bd0f176a8..9ea9cfe8b9 100644 --- a/test/cpp/qps/client_async.cc +++ b/test/cpp/qps/client_async.cc @@ -105,24 +105,17 @@ class ClientRpcContext { } virtual void report_stats(gpr_histogram *hist) = 0; }; - -template <class RequestType, class ResponseType> -using StartMethod = std::function< - std::unique_ptr<grpc::ClientAsyncResponseReader - <ResponseType>>(TestService::Stub *, grpc::ClientContext *, - const RequestType &, void *)> ; - -template <class ResponseType> using DoneMethod = - std::function<void(grpc::Status, ResponseType *)>; - template <class RequestType, class ResponseType> class ClientRpcContextUnaryImpl : public ClientRpcContext { public: ClientRpcContextUnaryImpl( TestService::Stub *stub, const RequestType &req, - StartMethod<RequestType,ResponseType> start_req, - DoneMethod<ResponseType> on_done) + std::function< + std::unique_ptr<grpc::ClientAsyncResponseReader<ResponseType>>( + TestService::Stub *, grpc::ClientContext *, const RequestType &, + void *)> start_req, + std::function<void(grpc::Status, ResponseType *)> on_done) : context_(), stub_(stub), req_(req), @@ -157,7 +150,7 @@ class ClientRpcContextUnaryImpl : public ClientRpcContext { RequestType req_; ResponseType response_; bool (ClientRpcContextUnaryImpl::*next_state_)(); - DoneMethod<ResponseType> callback_; + std::function<void(grpc::Status, ResponseType *)> callback_; grpc::Status status_; double start_; std::unique_ptr<grpc::ClientAsyncResponseReader<ResponseType>> diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc index 3d6379b73f..c797d8af96 100644 --- a/test/cpp/qps/server_async.cc +++ b/test/cpp/qps/server_async.cc @@ -183,19 +183,15 @@ class AsyncQpsServerTest { return reinterpret_cast<ServerRpcContext *>(tag); } - template<class RequestType, class ResponseType> - using RequestMethod = std::function<void(ServerContext *, RequestType *, - grpc::ServerAsyncResponseWriter<ResponseType> *, - void *)>; - template<class RequestType, class ResponseType> using InvokeMethod = - std::function<grpc::Status(const RequestType *, ResponseType *)>; - template <class RequestType, class ResponseType> class ServerRpcContextUnaryImpl : public ServerRpcContext { public: ServerRpcContextUnaryImpl( - RequestMethod<RequestType,ResponseType> request_method, - InvokeMethod<RequestType,ResponseType> invoke_method) + std::function<void(ServerContext *, RequestType *, + grpc::ServerAsyncResponseWriter<ResponseType> *, + void *)> request_method, + std::function<grpc::Status(const RequestType *, ResponseType *)> + invoke_method) : next_state_(&ServerRpcContextUnaryImpl::invoker), request_method_(request_method), invoke_method_(invoke_method), @@ -233,8 +229,11 @@ class AsyncQpsServerTest { ServerContext srv_ctx_; RequestType req_; bool (ServerRpcContextUnaryImpl::*next_state_)(); - RequestMethod<RequestType,ResponseType> request_method_; - InvokeMethod<RequestType,ResponseType> invoke_method_; + std::function<void(ServerContext *, RequestType *, + grpc::ServerAsyncResponseWriter<ResponseType> *, void *)> + request_method_; + std::function<grpc::Status(const RequestType *, ResponseType *)> + invoke_method_; grpc::ServerAsyncResponseWriter<ResponseType> response_writer_; }; @@ -262,8 +261,12 @@ class AsyncQpsServerTest { CompletionQueue srv_cq_; TestService::AsyncService async_service_; std::unique_ptr<Server> server_; - RequestMethod<SimpleRequest, SimpleResponse> request_unary_; - RequestMethod<StatsRequest, ServerStats> request_stats_; + std::function<void(ServerContext *, SimpleRequest *, + grpc::ServerAsyncResponseWriter<SimpleResponse> *, void *)> + request_unary_; + std::function<void(ServerContext *, StatsRequest *, + grpc::ServerAsyncResponseWriter<ServerStats> *, void *)> + request_stats_; std::forward_list<ServerRpcContext *> contexts_; }; -- GitLab