@@ -19,12 +19,19 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider {
1919protected:
2020 using TRequestFiller = std::function<void (TRequest&)>;
2121
22+ using TSimpleRpc =
23+ typename NYdbGrpc::TSimpleRequestProcessor<
24+ typename TService::Stub,
25+ TRequest,
26+ TResponse>::TAsyncRequest;
27+
2228private:
2329 class TImpl : public std ::enable_shared_from_this<TGrpcIamCredentialsProvider<TRequest, TResponse, TService>::TImpl> {
2430 public:
25- TImpl (const TIamEndpoint& iamEndpoint, const TRequestFiller& requestFiller)
31+ TImpl (const TIamEndpoint& iamEndpoint, const TRequestFiller& requestFiller, TSimpleRpc rpc )
2632 : Client(std::make_unique<NYdbGrpc::TGRpcClientLow>())
2733 , Connection_(nullptr )
34+ , Rpc_(rpc)
2835 , Ticket_(" " )
2936 , NextTicketUpdate_(TInstant::Zero())
3037 , IamEndpoint_(iamEndpoint)
@@ -67,7 +74,7 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider {
6774 Connection_->template DoRequest <TRequest, TResponse>(
6875 std::move (req),
6976 std::move (cb),
70- &TService::Stub::AsyncCreate ,
77+ Rpc_ ,
7178 { {}, {}, IamEndpoint_.RequestTimeout }
7279 );
7380
@@ -142,9 +149,9 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider {
142149 }
143150
144151 private:
145-
146152 std::unique_ptr<NYdbGrpc::TGRpcClientLow> Client;
147153 std::unique_ptr<NYdbGrpc::TServiceConnection<TService>> Connection_;
154+ TSimpleRpc Rpc_;
148155 std::string Ticket_;
149156 TInstant NextTicketUpdate_;
150157 const TIamEndpoint IamEndpoint_;
@@ -157,8 +164,8 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider {
157164 };
158165
159166public:
160- TGrpcIamCredentialsProvider (const TIamEndpoint& endpoint, const TRequestFiller& requestFiller)
161- : Impl_(std::make_shared<TImpl>(endpoint, requestFiller))
167+ TGrpcIamCredentialsProvider (const TIamEndpoint& endpoint, const TRequestFiller& requestFiller, TSimpleRpc rpc )
168+ : Impl_(std::make_shared<TImpl>(endpoint, requestFiller, rpc ))
162169 {
163170 Impl_->UpdateTicket (true );
164171 }
@@ -186,7 +193,7 @@ class TIamJwtCredentialsProvider : public TGrpcIamCredentialsProvider<TRequest,
186193 : TGrpcIamCredentialsProvider<TRequest, TResponse, TService>(params,
187194 [jwtParams = params.JwtParams](TRequest& req) {
188195 req.set_jwt (MakeSignedJwt (jwtParams));
189- }) {}
196+ }, &TService::Stub::AsyncCreate ) {}
190197};
191198
192199template <typename TRequest, typename TResponse, typename TService>
@@ -196,7 +203,7 @@ class TIamOAuthCredentialsProvider : public TGrpcIamCredentialsProvider<TRequest
196203 : TGrpcIamCredentialsProvider<TRequest, TResponse, TService>(params,
197204 [token = params.OAuthToken](TRequest& req) {
198205 req.set_yandex_passport_oauth_token (TStringType{token});
199- }) {}
206+ }, &TService::Stub::AsyncCreate ) {}
200207};
201208
202209template <typename TRequest, typename TResponse, typename TService>
0 commit comments