-
[pithos-ms-client] / trunk / Pithos.Core / IStatusKeeper.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Diagnostics.Contracts;
4 using System.Linq;
5 using Pithos.Interfaces;
6
7 namespace Pithos.Core
8 {
9     [ContractClass(typeof(IStatusKeeperContract))]
10     public interface IStatusKeeper
11     {
12         void SetFileOverlayStatus(string path,FileOverlayStatus status);
13         void UpdateFileChecksum(string path, string checksum);
14         void RemoveFileOverlayStatus(string path);
15         void SetFileStatus(string path, FileStatus status);
16         FileStatus GetFileStatus(string path);
17         void ClearFileStatus(string path);
18         void SetPithosStatus(PithosStatus status);
19         FileOverlayStatus GetFileOverlayStatus(string path);
20         IEnumerable<string> StoreUnversionedFiles(ParallelQuery<string> paths);
21     }
22
23     [ContractClassFor(typeof(IStatusKeeper))]
24     public abstract class IStatusKeeperContract : IStatusKeeper
25     {
26         public void SetFileOverlayStatus(string path, FileOverlayStatus status)
27         {
28             Contract.Requires(!String.IsNullOrWhiteSpace(path));
29         }
30
31         public void UpdateFileChecksum(string path, string checksum)
32         {
33             Contract.Requires(!String.IsNullOrWhiteSpace(path));
34             Contract.Requires(checksum!=null);
35         }
36
37         public void RemoveFileOverlayStatus(string path)
38         {
39             Contract.Requires(!String.IsNullOrWhiteSpace(path));
40         }
41
42         public void RenameFileOverlayStatus(string oldPath, string newPath)
43         {
44             Contract.Requires(!String.IsNullOrWhiteSpace(oldPath));
45             Contract.Requires(!String.IsNullOrWhiteSpace(newPath));
46
47         }
48
49         public void SetFileStatus(string path, FileStatus status)
50         {
51             Contract.Requires(!String.IsNullOrWhiteSpace(path));
52         }
53
54         public FileStatus GetFileStatus(string path)
55         {
56             Contract.Requires(!String.IsNullOrWhiteSpace(path));
57
58             return default(FileStatus);
59         }
60
61         public FileOverlayStatus GetFileOverlayStatus(string path)
62         {
63             Contract.Requires(!String.IsNullOrWhiteSpace(path));
64
65             return default(FileOverlayStatus);
66         }
67
68         public IEnumerable<string> StoreUnversionedFiles(ParallelQuery<string> paths)
69         {
70             Contract.Requires(paths!=null);
71
72             return default(IEnumerable<string>);
73         }
74
75         public void ClearFileStatus(string path)
76         {
77             Contract.Requires(!String.IsNullOrWhiteSpace(path));
78         }
79
80         public void SetPithosStatus(PithosStatus status)
81         {
82         }
83     }
84 }