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

@@ -21,13 +21,15 @@ namespace OpenRA.FileSystem
{
public sealed class BagFile : IReadOnlyPackage
{
readonly string bagFilename;
public string Name { get; private set; }
public IEnumerable<string> Contents { get { return index.Keys; } }
readonly Stream s;
readonly Dictionary<string, IdxEntry> index;
public BagFile(FileSystem context, string filename)
{
bagFilename = filename;
Name = filename;
// A bag file is always accompanied with an .idx counterpart
// For example: audio.bag requires the audio.idx file
@@ -45,9 +47,7 @@ namespace OpenRA.FileSystem
s = context.Open(filename);
}
public string Name { get { return bagFilename; } }
public Stream GetContent(string filename)
public Stream GetStream(string filename)
{
IdxEntry entry;
if (!index.TryGetValue(filename, out entry))
@@ -113,16 +113,11 @@ namespace OpenRA.FileSystem
return mergedStream;
}
public bool Exists(string filename)
public bool Contains(string filename)
{
return index.ContainsKey(filename);
}
public IEnumerable<string> AllFileNames()
{
return index.Keys;
}
public void Dispose()
{
s.Dispose();