fb3b378b7d2a61364c470a66fbcee9b3dffdd513
[pithos-ms-client] / trunk / Pithos.Interfaces / IStatusChecker.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Diagnostics.Contracts;
4 using System.Linq;
5 using System.Text;
6 using System.Threading;
7
8 namespace Pithos.Interfaces
9 {
10     [ContractClass(typeof(IStatusCheckerContract))]
11     public interface IStatusChecker
12     {
13         FileOverlayStatus GetFileOverlayStatus(string path);
14
15         PithosStatus GetPithosStatus();
16
17     }
18
19     [ContractClassFor(typeof(IStatusChecker))]
20     public abstract class IStatusCheckerContract:IStatusChecker
21     {
22         public FileOverlayStatus GetFileOverlayStatus(string path)
23         {
24             Contract.Requires(!String.IsNullOrWhiteSpace(path),"Null or empty paths not allowed");
25
26             return default(FileOverlayStatus);
27         }
28
29         public PithosStatus GetPithosStatus()
30         {
31             return default(PithosStatus);
32         }
33
34     }
35
36     public enum FileOverlayStatus
37     {
38         Deleted=-2,
39         Unversioned=-1,
40         Normal=0,
41         Modified=1,
42         Conflict=2
43     }
44
45     public enum PithosStatus
46     {
47         InSynch,
48         Syncing,
49         SyncPaused,
50         HasConflicts,
51         Disconnected
52     }
53 }