using System; using System.Diagnostics.Contracts; using Pithos.Interfaces; namespace Pithos.Core { [ContractClass(typeof(IStatusKeeperContract))] public interface IStatusKeeper { void SetFileOverlayStatus(string path,FileOverlayStatus status); void UpdateFileChecksum(string path, string checksum); void RemoveFileOverlayStatus(string path); void SetFileStatus(string path, FileStatus status); FileStatus GetFileStatus(string path); void ClearFileStatus(string path); void SetPithosStatus(PithosStatus status); } [ContractClassFor(typeof(IStatusKeeper))] public abstract class IStatusKeeperContract : IStatusKeeper { public void SetFileOverlayStatus(string path, FileOverlayStatus status) { Contract.Requires(!String.IsNullOrWhiteSpace(path)); } public void UpdateFileChecksum(string path, string checksum) { Contract.Requires(!String.IsNullOrWhiteSpace(path)); Contract.Requires(checksum!=null); } public void RemoveFileOverlayStatus(string path) { Contract.Requires(!String.IsNullOrWhiteSpace(path)); } public void RenameFileOverlayStatus(string oldPath, string newPath) { Contract.Requires(!String.IsNullOrWhiteSpace(oldPath)); Contract.Requires(!String.IsNullOrWhiteSpace(newPath)); } public void SetFileStatus(string path, FileStatus status) { Contract.Requires(!String.IsNullOrWhiteSpace(path)); } public FileStatus GetFileStatus(string path) { Contract.Requires(!String.IsNullOrWhiteSpace(path)); return default(FileStatus); } public void ClearFileStatus(string path) { Contract.Requires(!String.IsNullOrWhiteSpace(path)); } public void SetPithosStatus(PithosStatus status) { } } }