Merge branch 'cg-msg-size' into cg-server-call-tracer

pull/35249/head
Craig Tiller 1 year ago
commit 6390ea41ab
  1. 2
      src/core/lib/channel/channel_stack.h
  2. 45
      src/core/lib/channel/promise_based_filter.h

@ -133,7 +133,7 @@ struct grpc_channel_filter {
// There is an on-going migration to move all filters to providing this, and
// then to drop start_transport_stream_op_batch.
void (*init_call)(grpc_channel_element* elem,
grpc_core::CallSpine* call_spine);
grpc_core::CallSpineInterface* call_spine);
// Called to handle channel level operations - e.g. new calls, or transport
// closure.
// See grpc_channel_next_op on how to call the next element in the stack

@ -345,11 +345,11 @@ inline auto RunCall(
}
template <typename Derived>
inline auto RunCall(ServerMetadataHandle (Derived::Call::*fn)(
ClientMetadata& md, Derived* channel),
CallArgs call_args, NextPromiseFactory next_promise_factory,
FilterCallData<Derived>* call_data)
-> ArenaPromise<ServerMetadataHandle> {
inline auto RunCall(
ServerMetadataHandle (Derived::Call::*fn)(ClientMetadata& md,
Derived* channel),
CallArgs call_args, NextPromiseFactory next_promise_factory,
FilterCallData<Derived>* call_data) -> ArenaPromise<ServerMetadataHandle> {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
auto return_md = call_data->call.OnClientInitialMetadata(
*call_args.client_initial_metadata, call_data->channel);
@ -403,7 +403,7 @@ inline void InterceptClientToServerMessage(
}
inline void InterceptClientToServerMessage(const NoInterceptor*, void*, void*,
CallSpine*) {}
CallSpineInterface*) {}
template <typename Derived>
inline void InterceptClientToServerMessage(
@ -433,12 +433,12 @@ inline void InterceptClientToServerMessage(
}
inline void InterceptClientInitialMetadata(const NoInterceptor*, void*, void*,
CallSpine*) {}
CallSpineInterface*) {}
template <typename Derived>
inline void InterceptClientInitialMetadata(
void (Derived::Call::*fn)(ClientMetadata& md), typename Derived::Call* call,
Derived* channel, CallSpine* call_spine) {
Derived* channel, CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
call_spine->client_initial_metadata().receiver.InterceptAndMap(
[call](ClientMetadataHandle md) -> absl::optional<ClientMetadataHandle> {
@ -450,7 +450,8 @@ inline void InterceptClientInitialMetadata(
template <typename Derived>
inline void InterceptClientInitialMetadata(
void (Derived::Call::*fn)(ClientMetadata& md, Derived* channel),
typename Derived::Call* call, Derived* channel, CallSpine* call_spine) {
typename Derived::Call* call, Derived* channel,
CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
call_spine->client_initial_metadata().receiver.InterceptAndMap(
[call, channel](
@ -463,7 +464,8 @@ inline void InterceptClientInitialMetadata(
template <typename Derived>
inline void InterceptClientInitialMetadata(
ServerMetadataHandle (Derived::Call::*fn)(ClientMetadata& md),
typename Derived::Call* call, Derived* channel, CallSpine* call_spine) {
typename Derived::Call* call, Derived* channel,
CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
call_spine->client_initial_metadata().receiver.InterceptAndMap(
[call_spine,
@ -478,7 +480,8 @@ template <typename Derived>
inline void InterceptClientInitialMetadata(
ServerMetadataHandle (Derived::Call::*fn)(ClientMetadata& md,
Derived* channel),
typename Derived::Call* call, Derived* channel, CallSpine* call_spine) {
typename Derived::Call* call, Derived* channel,
CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnClientInitialMetadata);
call_spine->client_initial_metadata().receiver.InterceptAndMap(
[call_spine, call, channel](
@ -523,12 +526,12 @@ inline void InterceptServerInitialMetadata(
}
inline void InterceptServerInitialMetadata(const NoInterceptor*, void*, void*,
CallSpine*) {}
CallSpineInterface*) {}
template <typename Derived>
inline void InterceptServerInitialMetadata(
void (Derived::Call::*fn)(ServerMetadata&), typename Derived::Call* call,
Derived* channel, CallSpine* call_spine) {
Derived* channel, CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnServerInitialMetadata);
call_spine->server_initial_metadata().sender.InterceptAndMap(
[call](ServerMetadataHandle md) -> absl::optional<ServerMetadataHandle> {
@ -540,7 +543,8 @@ inline void InterceptServerInitialMetadata(
template <typename Derived>
inline void InterceptServerInitialMetadata(
absl::Status (Derived::Call::*fn)(ServerMetadata&),
typename Derived::Call* call, Derived* channel, CallSpine* call_spine) {
typename Derived::Call* call, Derived* channel,
CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnServerInitialMetadata);
call_spine->server_initial_metadata().sender.InterceptAndMap(
[call, call_spine](
@ -586,7 +590,7 @@ inline void InterceptServerToClientMessage(
}
inline void InterceptServerToClientMessage(const NoInterceptor*, void*, void*,
CallSpine*) {}
CallSpineInterface*) {}
template <typename Derived>
inline void InterceptServerToClientMessage(
@ -616,12 +620,12 @@ inline void InterceptServerToClientMessage(
}
inline void InterceptServerTrailingMetadata(const NoInterceptor*, void*, void*,
CallSpine*) {}
CallSpineInterface*) {}
template <typename Derived>
inline void InterceptServerTrailingMetadata(
void (Derived::Call::*fn)(ServerMetadata&), typename Derived::Call* call,
Derived* channel, CallSpine* call_spine) {
Derived* channel, CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnServerTrailingMetadata);
call_spine->server_trailing_metadata().sender.InterceptAndMap(
[call](ServerMetadataHandle md) -> absl::optional<ServerMetadataHandle> {
@ -633,7 +637,8 @@ inline void InterceptServerTrailingMetadata(
template <typename Derived>
inline void InterceptServerTrailingMetadata(
absl::Status (Derived::Call::*fn)(ServerMetadata&),
typename Derived::Call* call, Derived* channel, CallSpine* call_spine) {
typename Derived::Call* call, Derived* channel,
CallSpineInterface* call_spine) {
GPR_DEBUG_ASSERT(fn == &Derived::Call::OnServerTrailingMetadata);
call_spine->server_trailing_metadata().sender.InterceptAndMap(
[call](ServerMetadataHandle md) -> absl::optional<ServerMetadataHandle> {
@ -729,7 +734,7 @@ MakeFilterCall(Derived* derived) {
template <typename Derived>
class ImplementChannelFilter : public ChannelFilter {
public:
void InitCall(CallSpine* call_spine) {
void InitCall(CallSpineInterface* call_spine) {
typename Derived::Call* call =
GetContext<Arena>()
->ManagedNew<promise_filter_detail::CallWrapper<Derived>>(
@ -1619,7 +1624,7 @@ MakePromiseBasedFilter(const char* name) {
promise_filter_detail::BaseCallDataMethods::StartTransportStreamOpBatch,
// make_call_promise
promise_filter_detail::ChannelFilterMethods::MakeCallPromise,
[](grpc_channel_element* elem, CallSpine* args) {
[](grpc_channel_element* elem, CallSpineInterface* args) {
static_cast<F*>(elem->channel_data)->InitCall(args);
},
// start_transport_op

Loading…
Cancel
Save