diff options
author | Vijay Pai <vpai@google.com> | 2018-12-18 22:43:49 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-18 22:43:49 -0800 |
commit | 8cd1c0e379dda453ad544dcde529c97265179f1b (patch) | |
tree | 3c83e27e6bdede473b238da68e52bc7cda2b2b9b /include/grpcpp/impl/codegen/client_interceptor.h | |
parent | 5763add7c9ede9664946212bf2980723376d7b5f (diff) | |
parent | cfe08f35f30d272a8f2e851fb9e069498b264f5f (diff) |
Merge pull request #17552 from vjpai/interceptor_comments
Document purpose and validity of interception API
Diffstat (limited to 'include/grpcpp/impl/codegen/client_interceptor.h')
-rw-r--r-- | include/grpcpp/impl/codegen/client_interceptor.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/grpcpp/impl/codegen/client_interceptor.h b/include/grpcpp/impl/codegen/client_interceptor.h index da75bde499..7dfe2290a3 100644 --- a/include/grpcpp/impl/codegen/client_interceptor.h +++ b/include/grpcpp/impl/codegen/client_interceptor.h @@ -58,11 +58,16 @@ extern experimental::ClientInterceptorFactoryInterface* g_global_client_interceptor_factory; } +/// ClientRpcInfo represents the state of a particular RPC as it +/// appears to an interceptor. It is created and owned by the library and +/// passed to the CreateClientInterceptor method of the application's +/// ClientInterceptorFactoryInterface implementation namespace experimental { class ClientRpcInfo { public: // TODO(yashykt): Stop default-constructing ClientRpcInfo and remove UNKNOWN // from the list of possible Types. + /// Type categorizes RPCs by unary or streaming type enum class Type { UNARY, CLIENT_STREAMING, @@ -73,13 +78,23 @@ class ClientRpcInfo { ~ClientRpcInfo(){}; + // Delete copy constructor but allow default move constructor ClientRpcInfo(const ClientRpcInfo&) = delete; ClientRpcInfo(ClientRpcInfo&&) = default; // Getter methods + + /// Return the fully-specified method name const char* method() const { return method_; } + + /// Return a pointer to the channel on which the RPC is being sent ChannelInterface* channel() { return channel_; } + + /// Return a pointer to the underlying ClientContext structure associated + /// with the RPC to support features that apply to it grpc::ClientContext* client_context() { return ctx_; } + + /// Return the type of the RPC (unary or a streaming flavor) Type type() const { return type_; } private: |