Statistics
| Branch: | Revision:

root / trunk / Pithos.Interfaces / IStatusChecker.cs @ 049333d2

History | View | Annotate | Download (2.9 kB)

1 255f5f86 Panagiotis Kanavos
#region
2 255f5f86 Panagiotis Kanavos
/* -----------------------------------------------------------------------
3 255f5f86 Panagiotis Kanavos
 * <copyright file="IStatusChecker.cs" company="GRNet">
4 255f5f86 Panagiotis Kanavos
 * 
5 255f5f86 Panagiotis Kanavos
 * Copyright 2011-2012 GRNET S.A. All rights reserved.
6 255f5f86 Panagiotis Kanavos
 *
7 255f5f86 Panagiotis Kanavos
 * Redistribution and use in source and binary forms, with or
8 255f5f86 Panagiotis Kanavos
 * without modification, are permitted provided that the following
9 255f5f86 Panagiotis Kanavos
 * conditions are met:
10 255f5f86 Panagiotis Kanavos
 *
11 255f5f86 Panagiotis Kanavos
 *   1. Redistributions of source code must retain the above
12 255f5f86 Panagiotis Kanavos
 *      copyright notice, this list of conditions and the following
13 255f5f86 Panagiotis Kanavos
 *      disclaimer.
14 255f5f86 Panagiotis Kanavos
 *
15 255f5f86 Panagiotis Kanavos
 *   2. Redistributions in binary form must reproduce the above
16 255f5f86 Panagiotis Kanavos
 *      copyright notice, this list of conditions and the following
17 255f5f86 Panagiotis Kanavos
 *      disclaimer in the documentation and/or other materials
18 255f5f86 Panagiotis Kanavos
 *      provided with the distribution.
19 255f5f86 Panagiotis Kanavos
 *
20 255f5f86 Panagiotis Kanavos
 *
21 255f5f86 Panagiotis Kanavos
 * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
22 255f5f86 Panagiotis Kanavos
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 255f5f86 Panagiotis Kanavos
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 255f5f86 Panagiotis Kanavos
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
25 255f5f86 Panagiotis Kanavos
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 255f5f86 Panagiotis Kanavos
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 255f5f86 Panagiotis Kanavos
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
28 255f5f86 Panagiotis Kanavos
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 255f5f86 Panagiotis Kanavos
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 255f5f86 Panagiotis Kanavos
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 255f5f86 Panagiotis Kanavos
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 255f5f86 Panagiotis Kanavos
 * POSSIBILITY OF SUCH DAMAGE.
33 255f5f86 Panagiotis Kanavos
 *
34 255f5f86 Panagiotis Kanavos
 * The views and conclusions contained in the software and
35 255f5f86 Panagiotis Kanavos
 * documentation are those of the authors and should not be
36 255f5f86 Panagiotis Kanavos
 * interpreted as representing official policies, either expressed
37 255f5f86 Panagiotis Kanavos
 * or implied, of GRNET S.A.
38 255f5f86 Panagiotis Kanavos
 * </copyright>
39 255f5f86 Panagiotis Kanavos
 * -----------------------------------------------------------------------
40 255f5f86 Panagiotis Kanavos
 */
41 255f5f86 Panagiotis Kanavos
#endregion
42 255f5f86 Panagiotis Kanavos
using System;
43 d78cbf09 Panagiotis Kanavos
using System.Collections.Generic;
44 d78cbf09 Panagiotis Kanavos
using System.Diagnostics.Contracts;
45 42800be8 Panagiotis Kanavos
using System.IO;
46 d78cbf09 Panagiotis Kanavos
using System.Linq;
47 d78cbf09 Panagiotis Kanavos
using System.Text;
48 3c43ec9b Panagiotis Kanavos
using System.Threading;
49 d78cbf09 Panagiotis Kanavos
50 d78cbf09 Panagiotis Kanavos
namespace Pithos.Interfaces
51 d78cbf09 Panagiotis Kanavos
{
52 d78cbf09 Panagiotis Kanavos
    [ContractClass(typeof(IStatusCheckerContract))]
53 d78cbf09 Panagiotis Kanavos
    public interface IStatusChecker
54 d78cbf09 Panagiotis Kanavos
    {
55 d78cbf09 Panagiotis Kanavos
        FileOverlayStatus GetFileOverlayStatus(string path);
56 d78cbf09 Panagiotis Kanavos
57 d78cbf09 Panagiotis Kanavos
    }
58 d78cbf09 Panagiotis Kanavos
59 d78cbf09 Panagiotis Kanavos
    [ContractClassFor(typeof(IStatusChecker))]
60 d78cbf09 Panagiotis Kanavos
    public abstract class IStatusCheckerContract:IStatusChecker
61 d78cbf09 Panagiotis Kanavos
    {
62 d78cbf09 Panagiotis Kanavos
        public FileOverlayStatus GetFileOverlayStatus(string path)
63 d78cbf09 Panagiotis Kanavos
        {
64 d78cbf09 Panagiotis Kanavos
            Contract.Requires(!String.IsNullOrWhiteSpace(path),"Null or empty paths not allowed");
65 d78cbf09 Panagiotis Kanavos
66 d78cbf09 Panagiotis Kanavos
            return default(FileOverlayStatus);
67 d78cbf09 Panagiotis Kanavos
        }
68 d78cbf09 Panagiotis Kanavos
69 d78cbf09 Panagiotis Kanavos
        public PithosStatus GetPithosStatus()
70 d78cbf09 Panagiotis Kanavos
        {
71 d78cbf09 Panagiotis Kanavos
            return default(PithosStatus);
72 d78cbf09 Panagiotis Kanavos
        }
73 3c43ec9b Panagiotis Kanavos
74 d78cbf09 Panagiotis Kanavos
    }
75 d78cbf09 Panagiotis Kanavos
76 d78cbf09 Panagiotis Kanavos
    public enum FileOverlayStatus
77 d78cbf09 Panagiotis Kanavos
    {
78 d78cbf09 Panagiotis Kanavos
        Deleted=-2,
79 b5061ac8 Panagiotis Kanavos
        Unversioned=-1,
80 d78cbf09 Panagiotis Kanavos
        Normal=0,
81 0eea575a Panagiotis Kanavos
        Modified=1,
82 3c43ec9b Panagiotis Kanavos
        Conflict=2
83 d78cbf09 Panagiotis Kanavos
    }
84 d78cbf09 Panagiotis Kanavos
85 d78cbf09 Panagiotis Kanavos
    public enum PithosStatus
86 d78cbf09 Panagiotis Kanavos
    {
87 d78cbf09 Panagiotis Kanavos
        InSynch,
88 174bbb6e Panagiotis Kanavos
        PollSyncing,
89 174bbb6e Panagiotis Kanavos
        PollComplete,
90 174bbb6e Panagiotis Kanavos
        LocalSyncing,
91 174bbb6e Panagiotis Kanavos
        LocalComplete,
92 5bcf6d70 Panagiotis Kanavos
        SyncPaused,
93 d78cbf09 Panagiotis Kanavos
        HasConflicts,
94 d78cbf09 Panagiotis Kanavos
        Disconnected
95 d78cbf09 Panagiotis Kanavos
    }
96 d78cbf09 Panagiotis Kanavos
}