[#24] Client: Add Ape manager

Signed-off-by: Pavel Gross <p.gross@yadro.com>
This commit is contained in:
Pavel Gross 2024-09-23 10:20:40 +03:00
parent 704ce41173
commit d7dbbf8da8
21 changed files with 411 additions and 381 deletions

View file

@ -0,0 +1,37 @@
using System;
using Frostfs.V2.Ape;
namespace FrostFS.SDK.ClientV2
{
public struct FrostFsChainTarget(FrostFsTargetType type, string name)
{
private ChainTarget? chainTarget;
public FrostFsTargetType Type { get; } = type;
public string Name { get; } = name;
internal ChainTarget GetChainTarget()
{
return chainTarget ??= new ChainTarget
{
Type = GetTargetType(Type),
Name = Name
};
}
private static TargetType GetTargetType(FrostFsTargetType type)
{
return type switch
{
FrostFsTargetType.Undefined => TargetType.Undefined,
FrostFsTargetType.Namespace => TargetType.Namespace,
FrostFsTargetType.Container => TargetType.Container,
FrostFsTargetType.User => TargetType.User,
FrostFsTargetType.Group => TargetType.Group,
_ => throw new ArgumentException("Unexpected value for TargetType", nameof(type)),
};
}
}
}