diff options
Diffstat (limited to 'src/core/lib/channel/channel_stack.cc')
-rw-r--r-- | src/core/lib/channel/channel_stack.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/lib/channel/channel_stack.cc b/src/core/lib/channel/channel_stack.cc index e71fe67784..3f8edc6dc4 100644 --- a/src/core/lib/channel/channel_stack.cc +++ b/src/core/lib/channel/channel_stack.cc @@ -28,6 +28,7 @@ #include <grpc/support/log.h> #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/channel/channel_fwd.h" #include "src/core/lib/channel/channel_stack_trace.h" #include "src/core/lib/gpr/alloc.h" #include "src/core/lib/surface/channel_init.h" @@ -320,3 +321,19 @@ grpc_channel_stack::MakeServerCallPromise(grpc_core::CallArgs call_args) { return ServerNext(grpc_channel_stack_element(this, this->count - 1))( std::move(call_args)); } + +void grpc_channel_stack::InitClientCallSpine( + grpc_core::CallSpineInterface* call) { + for (size_t i = 0; i < count; i++) { + auto* elem = grpc_channel_stack_element(this, i); + elem->filter->init_call(elem, call); + } +} + +void grpc_channel_stack::InitServerCallSpine( + grpc_core::CallSpineInterface* call) { + for (size_t i = 0; i < count; i++) { + auto* elem = grpc_channel_stack_element(this, count - 1 - i); + elem->filter->init_call(elem, call); + } +} |