Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
        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];
        }