Exemplo n.º 1
0
        public static IEnumerable <WorkItem> ProcessCompressedWorkItems(CompressedWorkItems compressedWorkItems)
        {
            using var stream = new MemoryStream(DecompressWorkItems(compressedWorkItems));

            foreach (var workItem in ReadWorkItems(stream))
            {
                yield return(workItem);
            }
        }
Exemplo n.º 2
0
        private static byte[] DecompressWorkItems(CompressedWorkItems compressedWorkItems)
        {
            var decompressedData   = new byte[compressedWorkItems.UncompressedSize];
            var decompressedLength = 0;

            using (var memory = new MemoryStream(compressedWorkItems.Bytes))
            {
                using var inflater = new InflaterInputStream(memory);
                decompressedLength = inflater.Read(decompressedData, 0, decompressedData.Length);
            }

            if (decompressedLength != compressedWorkItems.UncompressedSize)
            {
                throw new InvalidDataException("incorrect decompressed data size");
            }

            return(decompressedData);
        }