using System.IO;
using System.Linq;
using System.Threading;
+using System.Threading.Tasks;
using Pithos.Interfaces;
namespace Pithos.Core
[ContractClass(typeof(IStatusKeeperContract))]
public interface IStatusKeeper
{
- void SetFileOverlayStatus(string path,FileOverlayStatus status);
- void UpdateFileChecksum(string path, string checksum);
+ Task SetFileOverlayStatus(string path, FileOverlayStatus status, string shortHash = null);
+ void UpdateFileChecksum(string path, string shortHash, string checksum);
void SetFileStatus(string path, FileStatus status);
FileStatus GetFileStatus(string path);
void ClearFileStatus(string path);
- void SetPithosStatus(PithosStatus status);
FileOverlayStatus GetFileOverlayStatus(string path);
void ProcessExistingFiles(IEnumerable<FileInfo> paths);
void Stop();
FileState GetStateByFilePath(string path);
void ClearFolderStatus(string path);
IEnumerable<FileState> GetChildren(FileState fileState);
+ void EnsureFileState(string path);
}
[ContractClassFor(typeof(IStatusKeeper))]
public abstract class IStatusKeeperContract : IStatusKeeper
{
- public void SetFileOverlayStatus(string path, FileOverlayStatus status)
+ public Task SetFileOverlayStatus(string path, FileOverlayStatus status, string shortHash = null)
{
Contract.Requires(!String.IsNullOrWhiteSpace(path));
Contract.Requires(Path.IsPathRooted(path));
+ return default(Task);
}
- public void UpdateFileChecksum(string path, string checksum)
+ public void UpdateFileChecksum(string path, string shortHash, string checksum)
{
Contract.Requires(!String.IsNullOrWhiteSpace(path));
Contract.Requires(checksum!=null);
Contract.Ensures(Contract.Result<IEnumerable<FileState>>()!=null);
return default(IEnumerable<FileState>);
}
+
+ public void EnsureFileState(string path)
+ {
+
+ }
}
}