1dc9df59d8f59613792544986faa27bd7747b531
[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
7 namespace Pithos.Interfaces
8 {
9     [ContractClass(typeof(IStatusCheckerContract))]
10     public interface IStatusChecker
11     {
12         FileOverlayStatus GetFileOverlayStatus(string path);
13
14         PithosStatus GetPithosStatus();
15
16     }
17
18     [ContractClassFor(typeof(IStatusChecker))]
19     public abstract class IStatusCheckerContract:IStatusChecker
20     {
21         public FileOverlayStatus GetFileOverlayStatus(string path)
22         {
23             Contract.Requires(!String.IsNullOrWhiteSpace(path),"Null or empty paths not allowed");
24
25             return default(FileOverlayStatus);
26         }
27
28         public PithosStatus GetPithosStatus()
29         {
30             return default(PithosStatus);
31         }
32     }
33
34     public enum FileOverlayStatus
35     {
36         Deleted=-2,
37         Unversioned=-1,
38         Normal=0,
39         Modified,
40         Conflict,
41         Synch       
42     }
43
44     public enum PithosStatus
45     {
46         InSynch,
47         Syncing,
48         SyncPaused,
49         HasConflicts,
50         Disconnected
51     }
52 }