frostfs-sdk-csharp/src/FrostFS.SDK.ClientV2/Mappers/Netmap/PlacementPolicy.cs
Pavel Gross 6562aa27a5 [#23] Client: Refactoring to optimize memory usage
Signed-off-by: Pavel Gross <p.gross@yando.com>
2024-09-11 10:58:00 +03:00

34 lines
No EOL
831 B
C#

using System.Linq;
using FrostFS.Netmap;
namespace FrostFS.SDK.ClientV2;
public static class PlacementPolicyMapper
{
public static PlacementPolicy ToMessage(this FrostFsPlacementPolicy placementPolicy)
{
var pp = new PlacementPolicy
{
Filters = { },
Selectors = { },
Replicas = { },
Unique = placementPolicy.Unique
};
foreach (var replica in placementPolicy.Replicas)
{
pp.Replicas.Add(replica.ToMessage());
}
return pp;
}
public static FrostFsPlacementPolicy ToModel(this PlacementPolicy placementPolicy)
{
return new FrostFsPlacementPolicy(
placementPolicy.Unique,
placementPolicy.Replicas.Select(replica => replica.ToModel()).ToArray()
);
}
}