// For internal intermediate representation use only. internal static ReleaseManifestDirectoryDescriptor ReadRMDirectoryDescriptor(this BinaryReader reader) { var result = new ReleaseManifestDirectoryDescriptor(); result.NameIndex = reader.ReadUInt32(); result.SubdirectoryStart = reader.ReadUInt32(); result.SubdirectoryCount = reader.ReadUInt32(); result.FileStart = reader.ReadUInt32(); result.FileCount = reader.ReadUInt32(); return(result); }
internal ReleaseManifestDirectoryEntry( uint directoryId, ReleaseManifest releaseManifest, ReleaseManifestDirectoryDescriptor descriptor, ReleaseManifestDirectoryEntry parent) : base(releaseManifest.StringTable[descriptor.NameIndex]) { m_id = directoryId; m_releaseManifest = releaseManifest; m_descriptor = descriptor; m_parent = parent; if (m_parent != null) { m_parent.m_directories.Add(this); m_parent.AddChild(this); // TODO: Override to remove duplication } m_directories = new List <ReleaseManifestDirectoryEntry>((int)descriptor.SubdirectoryCount); m_files = new List <ReleaseManifestFileEntry>((int)descriptor.FileCount); this.Name = releaseManifest.StringTable[descriptor.NameIndex]; }