initial commit

This commit is contained in:
what 2021-07-26 13:04:16 -07:00
commit 1b60743303
274 changed files with 25866 additions and 0 deletions

View file

@ -0,0 +1,21 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.IVirtualFile
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
using System.IO;
namespace SEGATools.VirtualFile
{
public interface IVirtualFile
{
string OriginalFileName { get; set; }
string VirtualName { get; }
System.IO.Stream FileInputStream { get; }
System.IO.Stream FileOutputStream { get; }
}
}

View file

@ -0,0 +1,13 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.IVirtualFile`1
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
namespace SEGATools.VirtualFile
{
public interface IVirtualFile<T> : IVirtualFile
{
T WrappedObject { get; }
}
}

View file

@ -0,0 +1,43 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.VirtualFileBase`1
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
using System;
using System.IO;
namespace SEGATools.VirtualFile
{
internal abstract class VirtualFileBase<T> :
IVirtualFile<T>,
IVirtualFile,
IEquatable<IVirtualFile>
{
public string OriginalFileName { get; set; }
public string VirtualName { get; private set; }
public abstract T WrappedObject { get; internal set; }
public abstract System.IO.Stream FileInputStream { get; }
public abstract System.IO.Stream FileOutputStream { get; }
protected VirtualFileBase(string OriginalFileName, string VirtualName)
{
this.OriginalFileName = OriginalFileName;
this.VirtualName = VirtualName;
}
public override int GetHashCode() => 1 + 17 * this.OriginalFileName.GetHashCode() + 31 * this.VirtualName.GetHashCode();
public override bool Equals(object obj)
{
IVirtualFile virtualFileBase = obj as IVirtualFile;
return !object.ReferenceEquals((object) virtualFileBase, (object) null) && this.Equals(virtualFileBase);
}
public bool Equals(IVirtualFile virtualFileBase) => string.Equals(this.VirtualName, virtualFileBase.VirtualName, StringComparison.Ordinal) && string.Equals(this.OriginalFileName, virtualFileBase.OriginalFileName, StringComparison.Ordinal);
}
}

View file

@ -0,0 +1,32 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.VirtualFileDirectoryRecord
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
using ImageReader.ISO9660.DirectoryRecords;
using SEGATools.DiscFileSystem;
using System.IO;
namespace SEGATools.VirtualFile
{
internal class VirtualFileDirectoryRecord : VirtualFileBase<DirectoryRecord>
{
public override DirectoryRecord WrappedObject { get; internal set; }
private IDiscFileSystem DiscFileSystem { get; set; }
public VirtualFileDirectoryRecord(
DirectoryRecord DirectoryRecord,
IDiscFileSystem DiscFileSystem)
: base(DiscFileSystem.FileName, DirectoryRecord.Name)
{
this.WrappedObject = DirectoryRecord;
this.DiscFileSystem = DiscFileSystem;
}
public override System.IO.Stream FileInputStream => (System.IO.Stream) this.DiscFileSystem.GetDiscStreamForDirectoryRecord(this.WrappedObject);
public override System.IO.Stream FileOutputStream => (System.IO.Stream) null;
}
}

View file

@ -0,0 +1,38 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.VirtualFileFactory
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
using ImageReader.ISO9660.DirectoryRecords;
using SEGATools.DiscFileSystem;
using SEGATools.Security;
using System.IO;
namespace SEGATools.VirtualFile
{
public class VirtualFileFactory
{
public static IVirtualFile<string> createVirtualFile(string FileName) => (IVirtualFile<string>) new VirtualFileOnDisc(FileName);
public static IVirtualFile<DirectoryRecord> createVirtualFile(
DirectoryRecord DirectoryRecord,
IDiscFileSystem DiscFileSystem)
{
return (IVirtualFile<DirectoryRecord>) new VirtualFileDirectoryRecord(DirectoryRecord, DiscFileSystem);
}
public static IVirtualFile<InitialProgramExtended> createVirtualFile(
InitialProgramExtended InitialProgramExtended)
{
return (IVirtualFile<InitialProgramExtended>) new VirtualFileInitialProgramExtended(InitialProgramExtended);
}
public static IVirtualFile<System.IO.Stream> createVirtualFile(
System.IO.Stream FileStream,
string OriginalFileName)
{
return (IVirtualFile<System.IO.Stream>) new VirtualFileStream(FileStream, OriginalFileName);
}
}
}

View file

@ -0,0 +1,24 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.VirtualFileInitialProgramExtended
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
using SEGATools.Security;
using System.IO;
namespace SEGATools.VirtualFile
{
internal class VirtualFileInitialProgramExtended : VirtualFileBase<InitialProgramExtended>
{
public override InitialProgramExtended WrappedObject { get; internal set; }
public VirtualFileInitialProgramExtended(InitialProgramExtended InitialProgram)
: base(string.Empty, InitialProgram.FileName)
=> this.WrappedObject = InitialProgram;
public override System.IO.Stream FileInputStream => this.WrappedObject.Stream;
public override System.IO.Stream FileOutputStream => (System.IO.Stream) null;
}
}

View file

@ -0,0 +1,23 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.VirtualFileOnDisc
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
using System.IO;
namespace SEGATools.VirtualFile
{
internal class VirtualFileOnDisc : VirtualFileBase<string>
{
public override string WrappedObject { get; internal set; }
public VirtualFileOnDisc(string FileName)
: base(FileName, Path.GetFileName(FileName))
=> this.WrappedObject = FileName;
public override System.IO.Stream FileInputStream => (System.IO.Stream) File.Open(this.OriginalFileName, FileMode.Open, FileAccess.Read, FileShare.Read);
public override System.IO.Stream FileOutputStream => (System.IO.Stream) File.Open(this.OriginalFileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
}
}

View file

@ -0,0 +1,23 @@
// Decompiled with JetBrains decompiler
// Type: SEGATools.VirtualFile.VirtualFileStream
// Assembly: SEGATools, Version=1.0.3.0, Culture=neutral, PublicKeyToken=611be24fdeb07e08
// MVID: D631183F-57B1-40A1-B502-5364D288307A
// Assembly location: SEGATools.dll
using System.IO;
namespace SEGATools.VirtualFile
{
internal class VirtualFileStream : VirtualFileBase<System.IO.Stream>
{
public override System.IO.Stream WrappedObject { get; internal set; }
public VirtualFileStream(System.IO.Stream FileStream, string FileName)
: base(FileName, Path.GetFileName(FileName))
=> this.WrappedObject = FileStream;
public override System.IO.Stream FileInputStream => this.WrappedObject;
public override System.IO.Stream FileOutputStream => (System.IO.Stream) null;
}
}