Tidy IReadOnlyPackage interface and implementations.

This commit is contained in:
Paul Chote
2016-01-20 23:22:58 +00:00
parent feab81bdea
commit 00945dc9ef
13 changed files with 98 additions and 128 deletions

View File

@@ -29,14 +29,16 @@ namespace OpenRA.FileSystem
}
}
public string Name { get; private set; }
public IEnumerable<string> Contents { get { return index.Keys; } }
readonly Dictionary<string, Entry> index = new Dictionary<string, Entry>();
readonly Stream s;
readonly long dataStart = 255;
readonly string filename;
public InstallShieldPackage(FileSystem context, string filename)
{
this.filename = filename;
Name = filename;
s = context.Open(filename);
try
@@ -104,7 +106,7 @@ namespace OpenRA.FileSystem
s.Position += chunkSize - nameLength - 30;
}
public Stream GetContent(string filename)
public Stream GetStream(string filename)
{
Entry e;
if (!index.TryGetValue(filename, out e))
@@ -116,18 +118,11 @@ namespace OpenRA.FileSystem
return new MemoryStream(Blast.Decompress(data));
}
public IEnumerable<string> AllFileNames()
{
return index.Keys;
}
public bool Exists(string filename)
public bool Contains(string filename)
{
return index.ContainsKey(filename);
}
public string Name { get { return filename; } }
public void Dispose()
{
s.Dispose();