Skip to content

Commit dad7c61

Browse files
Gazizonokigithub-actions[bot]
authored andcommitted
[C++ SDK] Replaced function pointers to lambdas in IAM cred provider (#26860)
1 parent b295ede commit dad7c61

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

.github/last_commit.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
b37a11ff0c3f3c8efdbf2c4abe7d7c8a4b0e0ca9
1+
834977fc44faac0d4668f39ffec80dcbbc74fbaf

include/ydb-cpp-sdk/client/iam/common/generic_provider.h

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class TGrpcIamCredentialsProvider : public ICredentialsProvider {
2424
protected:
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

2929
private:
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

223225
template<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

233237
template<typename TRequest, typename TResponse, typename TService>

src/client/iam_private/common/iam.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ class TIamServiceCredentialsProviderFactory : public ICredentialsProviderFactory
1818
req.set_resource_type(params.ResourceType);
1919
req.set_target_service_account_id(params.TargetServiceAccountId);
2020
},
21-
&TService::Stub::async_interface::CreateForService,
21+
[](typename TService::Stub* stub, grpc::ClientContext* context, const TRequest* request, TResponse* response, std::function<void(grpc::Status)> cb) {
22+
stub->async()->CreateForService(context, request, response, std::move(cb));
23+
},
2224
params.SystemServiceAccountCredentials->CreateProvider()) {}
2325
};
2426

0 commit comments

Comments
 (0)