private SnapshotHeader ParseSnapshotHeader(ArraySegment<byte> headerBytes)
{
using (var headerIn = new MemoryStream(headerBytes.Array, headerBytes.Offset, headerBytes.Count, false))
{
var serializerId = ReadInt(headerIn);
var remainingBytesCount = headerIn.Length - headerIn.Position;
string manifest = null;
if (remainingBytesCount != 0L)
{
var manifestBytes = new byte[remainingBytesCount];
headerIn.Read(manifestBytes, 0, manifestBytes.Length);
manifest = Encoding.UTF8.GetString(manifestBytes);
}
return new SnapshotHeader(serializerId, manifest);
}
}