|
|
|
@ -345,7 +345,7 @@ auto MapResult(const NoInterceptor*, Promise x, void*) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename Promise, typename Derived> |
|
|
|
|
auto MapResult(absl::Status (Derived::Call::*fn)(ServerMetadata&), Promise x, |
|
|
|
|
auto MapResult(absl::Status (Derived::Call::* fn)(ServerMetadata&), Promise x, |
|
|
|
|
FilterCallData<Derived>* call_data) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerTrailingMetadata); |
|
|
|
|
return OnCancel(Map(std::move(x), |
|
|
|
@ -366,7 +366,7 @@ auto MapResult(absl::Status (Derived::Call::*fn)(ServerMetadata&), Promise x, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename Promise, typename Derived> |
|
|
|
|
auto MapResult(void (Derived::Call::*fn)(ServerMetadata&), Promise x, |
|
|
|
|
auto MapResult(void (Derived::Call::* fn)(ServerMetadata&), Promise x, |
|
|
|
|
FilterCallData<Derived>* call_data) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerTrailingMetadata); |
|
|
|
|
return OnCancel(Map(std::move(x), |
|
|
|
@ -383,7 +383,7 @@ auto MapResult(void (Derived::Call::*fn)(ServerMetadata&), Promise x, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename Promise, typename Derived> |
|
|
|
|
auto MapResult(void (Derived::Call::*fn)(ServerMetadata&, Derived*), Promise x, |
|
|
|
|
auto MapResult(void (Derived::Call::* fn)(ServerMetadata&, Derived*), Promise x, |
|
|
|
|
FilterCallData<Derived>* call_data) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerTrailingMetadata); |
|
|
|
|
return OnCancel( |
|
|
|
@ -513,7 +513,7 @@ auto RunCall(Interceptor interceptor, CallArgs call_args, |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
void (Derived::Call::*fn)(const Message&), |
|
|
|
|
void (Derived::Call::* fn)(const Message&), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs&) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnClientToServerMessage); |
|
|
|
|
return [call_data](MessageHandle msg) -> absl::optional<MessageHandle> { |
|
|
|
@ -524,7 +524,7 @@ inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
ServerMetadataHandle (Derived::Call::*fn)(const Message&), |
|
|
|
|
ServerMetadataHandle (Derived::Call::* fn)(const Message&), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs&) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnClientToServerMessage); |
|
|
|
|
return [call_data](MessageHandle msg) -> absl::optional<MessageHandle> { |
|
|
|
@ -538,7 +538,7 @@ inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
ServerMetadataHandle (Derived::Call::*fn)(const Message&, Derived*), |
|
|
|
|
ServerMetadataHandle (Derived::Call::* fn)(const Message&, Derived*), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs&) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnClientToServerMessage); |
|
|
|
|
return [call_data](MessageHandle msg) -> absl::optional<MessageHandle> { |
|
|
|
@ -553,7 +553,7 @@ inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
MessageHandle (Derived::Call::*fn)(MessageHandle, Derived*), |
|
|
|
|
MessageHandle (Derived::Call::* fn)(MessageHandle, Derived*), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs&) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnClientToServerMessage); |
|
|
|
|
return [call_data](MessageHandle msg) -> absl::optional<MessageHandle> { |
|
|
|
@ -564,7 +564,8 @@ inline auto InterceptClientToServerMessageHandler( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
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&) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnClientToServerMessage); |
|
|
|
|
return [call_data](MessageHandle msg) -> absl::optional<MessageHandle> { |
|
|
|
@ -608,7 +609,7 @@ inline void InterceptServerInitialMetadata(const NoInterceptor*, void*, |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerInitialMetadata( |
|
|
|
|
void (Derived::Call::*fn)(ServerMetadata&), |
|
|
|
|
void (Derived::Call::* fn)(ServerMetadata&), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerInitialMetadata); |
|
|
|
|
call_args.server_initial_metadata->InterceptAndMap( |
|
|
|
@ -620,7 +621,7 @@ inline void InterceptServerInitialMetadata( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerInitialMetadata( |
|
|
|
|
absl::Status (Derived::Call::*fn)(ServerMetadata&), |
|
|
|
|
absl::Status (Derived::Call::* fn)(ServerMetadata&), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerInitialMetadata); |
|
|
|
|
call_args.server_initial_metadata->InterceptAndMap( |
|
|
|
@ -637,7 +638,7 @@ inline void InterceptServerInitialMetadata( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerInitialMetadata( |
|
|
|
|
void (Derived::Call::*fn)(ServerMetadata&, Derived*), |
|
|
|
|
void (Derived::Call::* fn)(ServerMetadata&, Derived*), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerInitialMetadata); |
|
|
|
|
call_args.server_initial_metadata->InterceptAndMap( |
|
|
|
@ -649,7 +650,7 @@ inline void InterceptServerInitialMetadata( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerInitialMetadata( |
|
|
|
|
absl::Status (Derived::Call::*fn)(ServerMetadata&, Derived*), |
|
|
|
|
absl::Status (Derived::Call::* fn)(ServerMetadata&, Derived*), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerInitialMetadata); |
|
|
|
|
call_args.server_initial_metadata->InterceptAndMap( |
|
|
|
@ -670,7 +671,7 @@ inline void InterceptServerToClientMessage(const NoInterceptor*, void*, |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerToClientMessage( |
|
|
|
|
void (Derived::Call::*fn)(const Message&), |
|
|
|
|
void (Derived::Call::* fn)(const Message&), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerToClientMessage); |
|
|
|
|
call_args.server_to_client_messages->InterceptAndMap( |
|
|
|
@ -682,7 +683,7 @@ inline void InterceptServerToClientMessage( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerToClientMessage( |
|
|
|
|
ServerMetadataHandle (Derived::Call::*fn)(const Message&), |
|
|
|
|
ServerMetadataHandle (Derived::Call::* fn)(const Message&), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerToClientMessage); |
|
|
|
|
call_args.server_to_client_messages->InterceptAndMap( |
|
|
|
@ -697,7 +698,7 @@ inline void InterceptServerToClientMessage( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerToClientMessage( |
|
|
|
|
ServerMetadataHandle (Derived::Call::*fn)(const Message&, Derived*), |
|
|
|
|
ServerMetadataHandle (Derived::Call::* fn)(const Message&, Derived*), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerToClientMessage); |
|
|
|
|
call_args.server_to_client_messages->InterceptAndMap( |
|
|
|
@ -713,7 +714,7 @@ inline void InterceptServerToClientMessage( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
inline void InterceptServerToClientMessage( |
|
|
|
|
MessageHandle (Derived::Call::*fn)(MessageHandle, Derived*), |
|
|
|
|
MessageHandle (Derived::Call::* fn)(MessageHandle, Derived*), |
|
|
|
|
FilterCallData<Derived>* call_data, const CallArgs& call_args) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerToClientMessage); |
|
|
|
|
call_args.server_to_client_messages->InterceptAndMap( |
|
|
|
@ -725,7 +726,8 @@ inline void InterceptServerToClientMessage( |
|
|
|
|
|
|
|
|
|
template <typename Derived> |
|
|
|
|
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) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnServerToClientMessage); |
|
|
|
|
call_args.server_to_client_messages->InterceptAndMap( |
|
|
|
@ -742,7 +744,7 @@ inline void InterceptServerToClientMessage( |
|
|
|
|
inline void InterceptFinalize(const NoInterceptor*, void*, void*) {} |
|
|
|
|
|
|
|
|
|
template <class Call> |
|
|
|
|
inline void InterceptFinalize(void (Call::*fn)(const grpc_call_final_info*), |
|
|
|
|
inline void InterceptFinalize(void (Call::* fn)(const grpc_call_final_info*), |
|
|
|
|
void*, Call* call) { |
|
|
|
|
DCHECK(fn == &Call::OnFinalize); |
|
|
|
|
GetContext<CallFinalization>()->Add( |
|
|
|
@ -753,7 +755,7 @@ inline void InterceptFinalize(void (Call::*fn)(const grpc_call_final_info*), |
|
|
|
|
|
|
|
|
|
template <class Derived> |
|
|
|
|
inline void InterceptFinalize( |
|
|
|
|
void (Derived::Call::*fn)(const grpc_call_final_info*, Derived*), |
|
|
|
|
void (Derived::Call::* fn)(const grpc_call_final_info*, Derived*), |
|
|
|
|
Derived* channel, typename Derived::Call* call) { |
|
|
|
|
DCHECK(fn == &Derived::Call::OnFinalize); |
|
|
|
|
GetContext<CallFinalization>()->Add( |
|
|
|
@ -1659,7 +1661,7 @@ template <typename F, FilterEndpoint kEndpoint, uint8_t kFlags = 0> |
|
|
|
|
absl::enable_if_t<std::is_base_of<ChannelFilter, F>::value && |
|
|
|
|
!std::is_base_of<ImplementChannelFilterTag, F>::value, |
|
|
|
|
grpc_channel_filter> |
|
|
|
|
MakePromiseBasedFilter(const char* name) { |
|
|
|
|
MakePromiseBasedFilter() { |
|
|
|
|
using CallData = promise_filter_detail::CallData<kEndpoint>; |
|
|
|
|
|
|
|
|
|
return grpc_channel_filter{ |
|
|
|
@ -1690,14 +1692,14 @@ MakePromiseBasedFilter(const char* name) { |
|
|
|
|
// get_channel_info
|
|
|
|
|
promise_filter_detail::ChannelFilterMethods::GetChannelInfo, |
|
|
|
|
// name
|
|
|
|
|
name, |
|
|
|
|
UniqueTypeNameFor<F>(), |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename F, FilterEndpoint kEndpoint, uint8_t kFlags = 0> |
|
|
|
|
absl::enable_if_t<std::is_base_of<ImplementChannelFilterTag, F>::value, |
|
|
|
|
grpc_channel_filter> |
|
|
|
|
MakePromiseBasedFilter(const char* name) { |
|
|
|
|
MakePromiseBasedFilter() { |
|
|
|
|
using CallData = promise_filter_detail::CallData<kEndpoint>; |
|
|
|
|
|
|
|
|
|
return grpc_channel_filter{ |
|
|
|
@ -1728,7 +1730,7 @@ MakePromiseBasedFilter(const char* name) { |
|
|
|
|
// get_channel_info
|
|
|
|
|
promise_filter_detail::ChannelFilterMethods::GetChannelInfo, |
|
|
|
|
// name
|
|
|
|
|
name, |
|
|
|
|
UniqueTypeNameFor<F>(), |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|