diff options
author | leonidlazarev <leonidlazarev@yandex-team.com> | 2023-07-17 19:35:29 +0300 |
---|---|---|
committer | leonidlazarev <leonidlazarev@yandex-team.com> | 2023-07-17 19:35:29 +0300 |
commit | cb8e9a6330e4e5d9a0e2f8506e7469bbd641ec63 (patch) | |
tree | eddb7b81e7d1f5a7ac8078591799509e95572f4e /contrib/libs/grpc/include/grpcpp/impl/intercepted_channel.h | |
parent | 029cf29f3669091012394221f00dfa0f3631d91b (diff) | |
download | ydb-cb8e9a6330e4e5d9a0e2f8506e7469bbd641ec63.tar.gz |
feat grpc: update to grpc 1.53.1
update grpc to 1.53.1
update grpcio/py3 to 1.53.1
Added patches:
22-grpc-code-output.patch - allow translation of grpc code to internal string type.
23-max-thread-limitation.patch - to provide interface for settings of thread number limit, as
grpc::DynamicThreadPool doesn't provide interface to limit thread number anymore.
24-support_for-non-abort-grpc.patch - generate exception instead of application crash
25-forkable-destruction-order.patch - correct forkable logic for TimerManager
27-skip-child-post-fork-operations.patch - allow to skip child post fork operations to exclude UB (used for unified agent only)
pr33495_fox_nested_fork.patch - fix issues with nested forks
pr33582_fork_handler.patch - disable fork handler support if it is not requested intentionally
Diffstat (limited to 'contrib/libs/grpc/include/grpcpp/impl/intercepted_channel.h')
-rw-r--r-- | contrib/libs/grpc/include/grpcpp/impl/intercepted_channel.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/contrib/libs/grpc/include/grpcpp/impl/intercepted_channel.h b/contrib/libs/grpc/include/grpcpp/impl/intercepted_channel.h new file mode 100644 index 0000000000..908655a6e4 --- /dev/null +++ b/contrib/libs/grpc/include/grpcpp/impl/intercepted_channel.h @@ -0,0 +1,83 @@ +// +// +// Copyright 2018 gRPC authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// + +#ifndef GRPCPP_IMPL_INTERCEPTED_CHANNEL_H +#define GRPCPP_IMPL_INTERCEPTED_CHANNEL_H + +#include <grpcpp/impl/channel_interface.h> + +namespace grpc { +class CompletionQueue; + +namespace internal { + +class InterceptorBatchMethodsImpl; + +/// An InterceptedChannel is available to client Interceptors. An +/// InterceptedChannel is unique to an interceptor, and when an RPC is started +/// on this channel, only those interceptors that come after this interceptor +/// see the RPC. +class InterceptedChannel : public ChannelInterface { + public: + ~InterceptedChannel() override { channel_ = nullptr; } + + /// Get the current channel state. If the channel is in IDLE and + /// \a try_to_connect is set to true, try to connect. + grpc_connectivity_state GetState(bool try_to_connect) override { + return channel_->GetState(try_to_connect); + } + + private: + InterceptedChannel(ChannelInterface* channel, size_t pos) + : channel_(channel), interceptor_pos_(pos) {} + + Call CreateCall(const RpcMethod& method, grpc::ClientContext* context, + grpc::CompletionQueue* cq) override { + return channel_->CreateCallInternal(method, context, cq, interceptor_pos_); + } + + void PerformOpsOnCall(CallOpSetInterface* ops, Call* call) override { + return channel_->PerformOpsOnCall(ops, call); + } + void* RegisterMethod(const char* method) override { + return channel_->RegisterMethod(method); + } + + void NotifyOnStateChangeImpl(grpc_connectivity_state last_observed, + gpr_timespec deadline, grpc::CompletionQueue* cq, + void* tag) override { + return channel_->NotifyOnStateChangeImpl(last_observed, deadline, cq, tag); + } + bool WaitForStateChangeImpl(grpc_connectivity_state last_observed, + gpr_timespec deadline) override { + return channel_->WaitForStateChangeImpl(last_observed, deadline); + } + + grpc::CompletionQueue* CallbackCQ() override { + return channel_->CallbackCQ(); + } + + ChannelInterface* channel_; + size_t interceptor_pos_; + + friend class InterceptorBatchMethodsImpl; +}; +} // namespace internal +} // namespace grpc + +#endif // GRPCPP_IMPL_INTERCEPTED_CHANNEL_H |