diff options
author | 2015-02-12 14:33:54 -0800 | |
---|---|---|
committer | 2015-02-12 14:33:54 -0800 | |
commit | 3d6ceb646178ce7a5b0de38c38ba75da448fae39 (patch) | |
tree | b2a7c62ba6eab5ff26e57377578a7948ec13cd62 /include/grpc++/server_context.h | |
parent | 984b09087f77b9aa1b64c3b23fa50b9cf06b5e0b (diff) |
Async server dispatch
Diffstat (limited to 'include/grpc++/server_context.h')
-rw-r--r-- | include/grpc++/server_context.h | 54 |
1 files changed, 36 insertions, 18 deletions
diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h index e976e11814..fcca85594a 100644 --- a/include/grpc++/server_context.h +++ b/include/grpc++/server_context.h @@ -39,43 +39,61 @@ #include "config.h" -struct grpc_metadata; struct gpr_timespec; +struct grpc_metadata; +struct grpc_call; namespace grpc { -template <class R> class ServerAsyncReader; -template <class W> class ServerAsyncWriter; -template <class R, class W> class ServerAsyncReaderWriter; -template <class R> class ServerReader; -template <class W> class ServerWriter; -template <class R, class W> class ServerReaderWriter; +template <class R> +class ServerAsyncReader; +template <class W> +class ServerAsyncWriter; +template <class R, class W> +class ServerAsyncReaderWriter; +template <class R> +class ServerReader; +template <class W> +class ServerWriter; +template <class R, class W> +class ServerReaderWriter; class CallOpBuffer; class Server; // Interface of server side rpc context. -class ServerContext { +class ServerContext final { public: - virtual ~ServerContext() {} + ServerContext(); // for async calls + ~ServerContext(); - std::chrono::system_clock::time_point absolute_deadline() { return deadline_; } + std::chrono::system_clock::time_point absolute_deadline() { + return deadline_; + } void AddInitialMetadata(const grpc::string& key, const grpc::string& value); void AddTrailingMetadata(const grpc::string& key, const grpc::string& value); private: friend class ::grpc::Server; - template <class R> friend class ::grpc::ServerAsyncReader; - template <class W> friend class ::grpc::ServerAsyncWriter; - template <class R, class W> friend class ::grpc::ServerAsyncReaderWriter; - template <class R> friend class ::grpc::ServerReader; - template <class W> friend class ::grpc::ServerWriter; - template <class R, class W> friend class ::grpc::ServerReaderWriter; + template <class R> + friend class ::grpc::ServerAsyncReader; + template <class W> + friend class ::grpc::ServerAsyncWriter; + template <class R, class W> + friend class ::grpc::ServerAsyncReaderWriter; + template <class R> + friend class ::grpc::ServerReader; + template <class W> + friend class ::grpc::ServerWriter; + template <class R, class W> + friend class ::grpc::ServerReaderWriter; - ServerContext(gpr_timespec deadline, grpc_metadata *metadata, size_t metadata_count); + ServerContext(gpr_timespec deadline, grpc_metadata* metadata, + size_t metadata_count); - const std::chrono::system_clock::time_point deadline_; + std::chrono::system_clock::time_point deadline_; + grpc_call* call_ = nullptr; bool sent_initial_metadata_ = false; std::multimap<grpc::string, grpc::string> client_metadata_; std::multimap<grpc::string, grpc::string> initial_metadata_; |