@@ -24,7 +24,7 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider {
2424protected:
2525 using TRequestFiller = std::function<void (TRequest&)>;
2626 using TAsyncInterface = typename TService::Stub::async_interface;
27- using TAsyncRpc = void (TAsyncInterface::*)( grpc::ClientContext*, const TRequest*, TResponse*, std::function<void (grpc::Status)>);
27+ using TAsyncRpc = std::function< void ( typename TService::Stub*, grpc::ClientContext*, const TRequest*, TResponse*, std::function<void (grpc::Status)>)> ;
2828
2929private:
3030 class TImpl : public std ::enable_shared_from_this<TGrpcIamCredentialsProvider<TRequest, TResponse, TService>::TImpl> {
@@ -96,7 +96,7 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider {
9696 context->AddMetadata (" authorization" , " Bearer " + AuthTokenProvider_->GetAuthInfo ());
9797 }
9898
99- (Stub_-> async ()->*Rpc_)( context.get (), &req, response.get (), std::move (cb));
99+ Rpc_ (Stub_. get (), context.get (), &req, response.get (), std::move (cb));
100100
101101 if (sync) {
102102 resultPromise.GetFuture ().Wait (2 * IamEndpoint_.RequestTimeout );
@@ -217,7 +217,9 @@ class TIamJwtCredentialsProvider : public TGrpcIamCredentialsProvider<TRequest,
217217 : TGrpcIamCredentialsProvider<TRequest, TResponse, TService>(params,
218218 [jwtParams = params.JwtParams](TRequest& req) {
219219 req.set_jwt (MakeSignedJwt (jwtParams));
220- }, &TService::Stub::async_interface::Create) {}
220+ }, [](typename TService::Stub* stub, grpc::ClientContext* context, const TRequest* request, TResponse* response, std::function<void (grpc::Status)> cb) {
221+ stub->async ()->Create (context, request, response, std::move (cb));
222+ }) {}
221223};
222224
223225template <typename TRequest, typename TResponse, typename TService>
@@ -227,7 +229,9 @@ class TIamOAuthCredentialsProvider : public TGrpcIamCredentialsProvider<TRequest
227229 : TGrpcIamCredentialsProvider<TRequest, TResponse, TService>(params,
228230 [token = params.OAuthToken](TRequest& req) {
229231 req.set_yandex_passport_oauth_token (TStringType{token});
230- }, &TService::Stub::async_interface::Create) {}
232+ }, [](typename TService::Stub* stub, grpc::ClientContext* context, const TRequest* request, TResponse* response, std::function<void (grpc::Status)> cb) {
233+ stub->async ()->Create (context, request, response, std::move (cb));
234+ }) {}
231235};
232236
233237template <typename TRequest, typename TResponse, typename TService>
0 commit comments