|
|
@ -564,7 +564,8 @@ inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
template <typename Derived> |
|
|
|
inline auto InterceptClientToServerMessageHandler( |
|
|
|
inline auto InterceptClientToServerMessageHandler( |
|
|
|
absl::StatusOr<MessageHandle> (Derived::Call::*fn)(MessageHandle, Derived*), |
|
|
|
absl::StatusOr<MessageHandle> (Derived::Call::* fn)(MessageHandle, |
|
|
|
|
|
|
|
Derived*), |
|
|
|
FilterCallData<Derived>* call_data, const CallArgs&) { |
|
|
|
FilterCallData<Derived>* call_data, const CallArgs&) { |
|
|
|
DCHECK(fn == &Derived::Call::OnClientToServerMessage); |
|
|
|
DCHECK(fn == &Derived::Call::OnClientToServerMessage); |
|
|
|
return [call_data](MessageHandle msg) -> absl::optional<MessageHandle> { |
|
|
|
return [call_data](MessageHandle msg) -> absl::optional<MessageHandle> { |
|
|
@ -725,7 +726,8 @@ inline void InterceptServerToClientMessage( |
|
|
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
template <typename Derived> |
|
|
|
inline void InterceptServerToClientMessage( |
|
|
|
inline void InterceptServerToClientMessage( |
|
|
|
absl::StatusOr<MessageHandle> (Derived::Call::*fn)(MessageHandle, Derived*), |
|
|
|
absl::StatusOr<MessageHandle> (Derived::Call::* fn)(MessageHandle, |
|
|
|
|
|
|
|
Derived*), |
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
DCHECK(fn == &Derived::Call::OnServerToClientMessage); |
|
|
|
DCHECK(fn == &Derived::Call::OnServerToClientMessage); |
|
|
|
call_args.server_to_client_messages->InterceptAndMap( |
|
|
|
call_args.server_to_client_messages->InterceptAndMap( |
|
|
@ -1659,7 +1661,7 @@ template <typename F, FilterEndpoint kEndpoint, uint8_t kFlags = 0> |
|
|
|
absl::enable_if_t<std::is_base_of<ChannelFilter, F>::value && |
|
|
|
absl::enable_if_t<std::is_base_of<ChannelFilter, F>::value && |
|
|
|
!std::is_base_of<ImplementChannelFilterTag, F>::value, |
|
|
|
!std::is_base_of<ImplementChannelFilterTag, F>::value, |
|
|
|
grpc_channel_filter> |
|
|
|
grpc_channel_filter> |
|
|
|
MakePromiseBasedFilter(const char* name) { |
|
|
|
MakePromiseBasedFilter() { |
|
|
|
using CallData = promise_filter_detail::CallData<kEndpoint>; |
|
|
|
using CallData = promise_filter_detail::CallData<kEndpoint>; |
|
|
|
|
|
|
|
|
|
|
|
return grpc_channel_filter{ |
|
|
|
return grpc_channel_filter{ |
|
|
@ -1690,14 +1692,14 @@ MakePromiseBasedFilter(const char* name) { |
|
|
|
// get_channel_info
|
|
|
|
// get_channel_info
|
|
|
|
promise_filter_detail::ChannelFilterMethods::GetChannelInfo, |
|
|
|
promise_filter_detail::ChannelFilterMethods::GetChannelInfo, |
|
|
|
// name
|
|
|
|
// name
|
|
|
|
name, |
|
|
|
UniqueTypeNameFor<F>(), |
|
|
|
}; |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
template <typename F, FilterEndpoint kEndpoint, uint8_t kFlags = 0> |
|
|
|
template <typename F, FilterEndpoint kEndpoint, uint8_t kFlags = 0> |
|
|
|
absl::enable_if_t<std::is_base_of<ImplementChannelFilterTag, F>::value, |
|
|
|
absl::enable_if_t<std::is_base_of<ImplementChannelFilterTag, F>::value, |
|
|
|
grpc_channel_filter> |
|
|
|
grpc_channel_filter> |
|
|
|
MakePromiseBasedFilter(const char* name) { |
|
|
|
MakePromiseBasedFilter() { |
|
|
|
using CallData = promise_filter_detail::CallData<kEndpoint>; |
|
|
|
using CallData = promise_filter_detail::CallData<kEndpoint>; |
|
|
|
|
|
|
|
|
|
|
|
return grpc_channel_filter{ |
|
|
|
return grpc_channel_filter{ |
|
|
@ -1728,7 +1730,7 @@ MakePromiseBasedFilter(const char* name) { |
|
|
|
// get_channel_info
|
|
|
|
// get_channel_info
|
|
|
|
promise_filter_detail::ChannelFilterMethods::GetChannelInfo, |
|
|
|
promise_filter_detail::ChannelFilterMethods::GetChannelInfo, |
|
|
|
// name
|
|
|
|
// name
|
|
|
|
name, |
|
|
|
UniqueTypeNameFor<F>(), |
|
|
|
}; |
|
|
|
}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|