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