diff options
author | yangg <yangg@google.com> | 2015-01-06 10:16:15 -0800 |
---|---|---|
committer | Nicolas Noble <nnoble@google.com> | 2015-01-06 17:45:46 -0800 |
commit | ed5e7e006b1a60ef01a0ee1db144e959436b53d7 (patch) | |
tree | 4166d8504d804d00ff96e8ce47ae4e6ecf7e2152 /src | |
parent | c87b1c533f84a9bed94143908b00b0cc498cfda5 (diff) |
Add deadline API on server side.
Change on 2015/01/06 by yangg <yangg@google.com>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=83351442
Diffstat (limited to 'src')
-rw-r--r-- | src/cpp/server/server_context_impl.cc | 2 | ||||
-rw-r--r-- | src/cpp/server/server_context_impl.h | 14 | ||||
-rw-r--r-- | src/cpp/server/server_rpc_handler.cc | 2 | ||||
-rw-r--r-- | src/cpp/util/time.cc | 3 |
4 files changed, 17 insertions, 4 deletions
diff --git a/src/cpp/server/server_context_impl.cc b/src/cpp/server/server_context_impl.cc index a229fcb6c9..13f2a3ae1a 100644 --- a/src/cpp/server/server_context_impl.cc +++ b/src/cpp/server/server_context_impl.cc @@ -35,6 +35,4 @@ namespace grpc { -ServerContextImpl::ServerContextImpl() {} - } // namespace grpc diff --git a/src/cpp/server/server_context_impl.h b/src/cpp/server/server_context_impl.h index 58c4293b4f..c6016b7635 100644 --- a/src/cpp/server/server_context_impl.h +++ b/src/cpp/server/server_context_impl.h @@ -36,12 +36,24 @@ #include <grpc++/server_context.h> +#include <chrono> + +#include <grpc/support/time.h> + namespace grpc { class ServerContextImpl : public ServerContext { public: - ServerContextImpl(); + explicit ServerContextImpl(std::chrono::system_clock::time_point deadline) + : absolute_deadline_(deadline) {} ~ServerContextImpl() {} + + std::chrono::system_clock::time_point absolute_deadline() const { + return absolute_deadline_; + } + + private: + std::chrono::system_clock::time_point absolute_deadline_; }; } // namespace grpc diff --git a/src/cpp/server/server_rpc_handler.cc b/src/cpp/server/server_rpc_handler.cc index c32722f81a..3954f04f97 100644 --- a/src/cpp/server/server_rpc_handler.cc +++ b/src/cpp/server/server_rpc_handler.cc @@ -53,7 +53,7 @@ void ServerRpcHandler::StartRpc() { return; } - ServerContextImpl user_context; + ServerContextImpl user_context(async_server_context_->absolute_deadline()); if (method_->method_type() == RpcMethod::NORMAL_RPC) { // Start the rpc on this dedicated completion queue. diff --git a/src/cpp/util/time.cc b/src/cpp/util/time.cc index 6976fa1b32..e58dde82a3 100644 --- a/src/cpp/util/time.cc +++ b/src/cpp/util/time.cc @@ -53,6 +53,9 @@ void Timepoint2Timespec(const system_clock::time_point& from, } system_clock::time_point Timespec2Timepoint(gpr_timespec t) { + if (gpr_time_cmp(t, gpr_inf_future) == 0) { + return system_clock::time_point::max(); + } system_clock::time_point tp; tp += duration_cast<system_clock::time_point::duration>(seconds(t.tv_sec)); tp += |