private void Load(StructureValueCollection values, ThirdGenCacheFileReference[] externalFiles)
        {
            int fileIndex = (int)values.GetInteger("shared cache file index");
            if (fileIndex >= 0 && fileIndex < externalFiles.Length)
                _externalFile = externalFiles[fileIndex];

            Offset = (int)values.GetInteger("compressed block offset");
            CompressedSize = (int)values.GetInteger("compressed block size");
            UncompressedSize = (int)values.GetInteger("uncompressed block size");
        }
        private void LoadPageInfo(StructureValueCollection values, IReader reader, FileSegmentGroup metaArea, BuildInformation buildInfo, ThirdGenCacheFileReference[] fileReferences)
        {
            int count = (int)values.GetInteger("number of raw pages");
            uint address = values.GetInteger("raw page table address");
            var layout = buildInfo.GetLayout("raw page table entry");
            var entries = ReflexiveReader.ReadReflexive(count, address, reader, layout, metaArea);

            Pages = (from entry in entries
                        select new ThirdGenResourcePage(entry, fileReferences)).ToArray();
        }
 public ThirdGenResourcePage(StructureValueCollection values, ThirdGenCacheFileReference[] externalFiles)
 {
     Load(values, externalFiles);
 }