Initial SDK structure #1
2 changed files with 55 additions and 4 deletions
|
@ -3,6 +3,23 @@ using FrostFS.SDK.ModelsV2;
|
||||||
|
|
||||||
namespace FrostFS.SDK.ClientV2.Mappers.GRPC;
|
namespace FrostFS.SDK.ClientV2.Mappers.GRPC;
|
||||||
|
|
||||||
|
public static class ObjectAttributeMapper
|
||||||
|
{
|
||||||
|
public static Header.Types.Attribute ToGrpcMessage(this ObjectAttribute attribute)
|
||||||
|
{
|
||||||
|
return new Header.Types.Attribute
|
||||||
|
{
|
||||||
|
Key = attribute.Key,
|
||||||
|
Value = attribute.Value
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ObjectAttribute ToModel(this Header.Types.Attribute attribute)
|
||||||
|
{
|
||||||
|
return new ObjectAttribute(attribute.Key, attribute.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class ObjectHeadMapper
|
public static class ObjectHeadMapper
|
||||||
{
|
{
|
||||||
public static Header ToGrpcMessage(this ObjectHeader header)
|
public static Header ToGrpcMessage(this ObjectHeader header)
|
||||||
|
@ -12,11 +29,19 @@ public static class ObjectHeadMapper
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"Unknown ObjectType. Value: '{header.ObjectType}'.");
|
throw new ArgumentException($"Unknown ObjectType. Value: '{header.ObjectType}'.");
|
||||||
}
|
}
|
||||||
return new Header
|
|
||||||
|
var head = new Header
|
||||||
{
|
{
|
||||||
|
Attributes = { },
|
||||||
ContainerId = header.ContainerId.ToGrpcMessage(),
|
ContainerId = header.ContainerId.ToGrpcMessage(),
|
||||||
ObjectType = Enum.Parse<ObjectType>(objTypeName)
|
ObjectType = Enum.Parse<ObjectType>(objTypeName)
|
||||||
};
|
};
|
||||||
|
foreach (var attribute in header.Attributes)
|
||||||
|
{
|
||||||
|
head.Attributes.Add(attribute.ToGrpcMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
return head;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ObjectHeader ToModel(this Header header)
|
public static ObjectHeader ToModel(this Header header)
|
||||||
|
@ -26,13 +51,21 @@ public static class ObjectHeadMapper
|
||||||
{
|
{
|
||||||
throw new ArgumentException($"Unknown ObjectType. Value: '{header.ObjectType}'.");
|
throw new ArgumentException($"Unknown ObjectType. Value: '{header.ObjectType}'.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var attributes = new List<ObjectAttribute>();
|
||||||
|
foreach (var attribute in header.Attributes)
|
||||||
|
{
|
||||||
|
attributes.Add(attribute.ToModel());
|
||||||
|
}
|
||||||
|
|
||||||
return new ObjectHeader(
|
return new ObjectHeader(
|
||||||
ContainerId.FromHash(header.ContainerId.Value.ToByteArray()),
|
ContainerId.FromHash(header.ContainerId.Value.ToByteArray()),
|
||||||
Enum.Parse<ModelsV2.Enums.ObjectType>(objTypeName)
|
Enum.Parse<ModelsV2.Enums.ObjectType>(objTypeName),
|
||||||
|
attributes.ToArray()
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
Size = (long)header.PayloadLength,
|
Size = (long)header.PayloadLength,
|
||||||
Version = header.Version.ToModel()
|
Version = header.Version.ToModel()
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,15 +2,33 @@ using FrostFS.SDK.ModelsV2.Enums;
|
||||||
|
|
||||||
namespace FrostFS.SDK.ModelsV2;
|
namespace FrostFS.SDK.ModelsV2;
|
||||||
|
|
||||||
|
public class ObjectAttribute
|
||||||
|
{
|
||||||
|
public string Key { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
|
||||||
|
public ObjectAttribute(string key, string value)
|
||||||
|
{
|
||||||
|
Key = key;
|
||||||
|
Value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ObjectHeader
|
public class ObjectHeader
|
||||||
{
|
{
|
||||||
|
public ObjectAttribute[] Attributes { get; set; }
|
||||||
public ContainerId ContainerId { get; set; }
|
public ContainerId ContainerId { get; set; }
|
||||||
public long Size { get; set; }
|
public long Size { get; set; }
|
||||||
public ObjectType ObjectType { get; set; }
|
public ObjectType ObjectType { get; set; }
|
||||||
public Version Version { get; set; }
|
public Version Version { get; set; }
|
||||||
|
|
||||||
public ObjectHeader(ContainerId containerId, ObjectType type = ObjectType.Regular)
|
public ObjectHeader(
|
||||||
|
ContainerId containerId,
|
||||||
|
ObjectType type = ObjectType.Regular,
|
||||||
|
params ObjectAttribute[] attributes
|
||||||
|
)
|
||||||
{
|
{
|
||||||
|
Attributes = attributes;
|
||||||
ContainerId = containerId;
|
ContainerId = containerId;
|
||||||
ObjectType = type;
|
ObjectType = type;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue