wabbajack/Compression.BSA/Interfaces/IFile.cs

38 lines
975 B
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading.Tasks;
2020-03-23 12:57:18 +00:00
using Wabbajack.Common;
namespace Compression.BSA
{
public interface IFile
{
/// <summary>
/// The path of the file inside the archive
/// </summary>
2020-03-23 12:57:18 +00:00
RelativePath Path { get; }
/// <summary>
/// The uncompressed file size
/// </summary>
uint Size { get; }
/// <summary>
/// Get the metadata for the file.
/// </summary>
FileStateObject State { get; }
/// <summary>
/// Copies this entry to the given stream. 100% thread safe, the .bsa will be opened multiple times
/// in order to maintain thread-safe access.
/// </summary>
/// <param name="output"></param>
ValueTask CopyDataTo(Stream output);
void Dump(Action<string> print);
ValueTask<IStreamFactory> GetStreamFactory();
}
}