[#24] Client: Implement pool part1

first iteration - base classes and methods

Signed-off-by: Pavel Gross <p.gross@yadro.com>
This commit is contained in:
Pavel Gross 2024-10-21 10:48:00 +03:00
parent d1271df207
commit c9a75ea025
72 changed files with 2786 additions and 468 deletions

View file

@ -0,0 +1,40 @@
using System.Threading.Tasks;
using FrostFS.Accounting;
namespace FrostFS.SDK.ClientV2;
internal sealed class AccountingServiceProvider : ContextAccessor
{
private readonly AccountingService.AccountingServiceClient? _accountingServiceClient;
internal AccountingServiceProvider(
AccountingService.AccountingServiceClient? accountingServiceClient,
EnvironmentContext context)
: base(context)
{
_accountingServiceClient = accountingServiceClient;
}
internal async Task<Decimal> GetBallance(PrmBalance args)
{
var ctx = args.Context!;
BalanceRequest request = new()
{
Body = new()
{
OwnerId = ctx.OwnerId!.OwnerID
}
};
request.AddMetaHeader(args.XHeaders);
request.Sign(ctx.Key!);
var response = await _accountingServiceClient!.BalanceAsync(request, null, ctx.Deadline, ctx.CancellationToken);
Verifier.CheckResponse(response);
return response.Body.Balance;
}
}