MoltenMercury/libWyvernzora/IO/Packaging/PackageBase.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*===================================================
 * LibHex2\\IO\\Packaging\\PackageBase.cs
 * Base class for all the archive managing classes.
 * -------------------------------------------------------------------------------
 * Copyright (C) Aragorn Wyvernzora 2011
 *      MODIFIED FROM Firefly.Core.Packaging.PackageBase class
 *      ORIGINALLY WRITTEN BY F.R.C IN 2010
 * -------------------------------------------------------------------------------
 *  This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * ===================================================
 */

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace libWyvernzora.IO.Packaging
{
    public abstract class ReadonlyPackageBase : IDisposable
    {
        /// <summary>
        /// Archive Base Class
        /// </summary>
        protected ExStreamBase m_bs;

        protected List<PackageEntry> m_entries = new List<PackageEntry>();
        protected Dictionary<PackageEntry, Int32> m_map = new Dictionary<PackageEntry, int>();

        protected ReadonlyPackageBase() { }
        protected ReadonlyPackageBase(ExStreamBase bs)
        {
            m_bs = bs;
        }

        protected PackageEntry m_root = new PackageEntry("", PackageEntry.EntryType.Directory, -1, 0);

        public PackageEntry Root
        { get { return m_root; } }
        public IEnumerable<PackageEntry> Entries
        { get { return m_entries; } }
        public Int32 EntriesCount { get { return m_entries.Count; } }

        protected virtual void PushEntry(PackageEntry f)
        {
            PushEntry(f, m_root);
        }
        protected virtual void PushEntry(PackageEntry f, PackageEntry dir)
        {
后面还有 148 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。