Statistics
| Branch: | Revision:

root / trunk / Pithos.Core / IStatusKeeper.cs @ 0eea575a

History | View | Annotate | Download (2.6 kB)

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