aboutsummaryrefslogtreecommitdiff
path: root/src/core/lib/channel/channel_stack.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/lib/channel/channel_stack.cc')
-rw-r--r--src/core/lib/channel/channel_stack.cc17
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);
+ }
+}