Exemple #1
0
        public static CacheHeaderStruct Read(Stream stream)
        {
            StructSerializer <CacheHeaderStruct> minimumStructSerializer = GetStructSerializer(CacheFormatVersion.Two);

            stream.Seek(-minimumStructSerializer.ItemSizeOnDisk, SeekOrigin.End);
            CacheHeaderStruct minimumStruct = minimumStructSerializer.ReadArray(stream, 1)[0];
            StructSerializer <CacheHeaderStruct> actualStructSerializer =
                GetStructSerializer(minimumStruct.formatVersion);

            if (actualStructSerializer.ItemSizeOnDisk == minimumStructSerializer.ItemSizeOnDisk)
            {
                return(minimumStruct);
            }
            stream.Seek(-actualStructSerializer.ItemSizeOnDisk, SeekOrigin.End);
            return(actualStructSerializer.ReadArray(stream, 1)[0]);
        }
Exemple #2
0
        public static CacheFormat FromCacheHeader(CacheHeaderStruct cacheHeader)
        {
            var formatVersion = cacheHeader.formatVersion;

            if (formatVersion >= CacheHeaderStruct.WithStructSizes)
            {
                return(new CacheFormat()
                {
                    FormatVersion = formatVersion,
                    CachedFileSize = cacheHeader.cachedFileSize,
                    ChromGroupHeaderSize = cacheHeader.chromGroupHeaderSize,
                    ChromPeakSize = cacheHeader.chromPeakSize,
                    ChromTransitionSize = cacheHeader.chromTransitionSize,
                    VersionRequired = cacheHeader.versionRequired
                });
            }
            return(FromVersion(formatVersion));
        }