Changed the retry function in PithosClient to use the TPL
[pithos-ms-client] / trunk / Pithos.Core / IStatusKeeper.cs
index badbcf7..810640a 100644 (file)
@@ -1,7 +1,9 @@
 using System;
 using System.Collections.Generic;
 using System.Diagnostics.Contracts;
+using System.IO;
 using System.Linq;
+using System.Threading;
 using Pithos.Interfaces;
 
 namespace Pithos.Core
@@ -18,6 +20,16 @@ namespace Pithos.Core
         void SetPithosStatus(PithosStatus status);
         FileOverlayStatus GetFileOverlayStatus(string path);
         IEnumerable<string> StoreUnversionedFiles(ParallelQuery<string> paths);
+        void Stop();
+        void SetFileState(string path, FileStatus fileStatus, FileOverlayStatus overlayStatus);
+        void StoreInfo(string path, ObjectInfo objectInfo);
+        T GetStatus<T>(string path,Func<FileState,T> getter,T defaultValue );
+        void SetStatus(string path, Action<FileState> setter);        
+        void SetNetworkState(string fileName, NetworkState uploading);
+        NetworkState GetNetworkState(string fileName);
+
+        void StartProcessing(CancellationToken token);
+
     }
 
     [ContractClassFor(typeof(IStatusKeeper))]
@@ -72,6 +84,48 @@ namespace Pithos.Core
             return default(IEnumerable<string>);
         }
 
+        public void Stop()
+        {
+            
+        }
+
+        public void SetFileState(string path, FileStatus fileStatus, FileOverlayStatus overlayStatus)
+        {
+            Contract.Requires(!String.IsNullOrWhiteSpace(path));
+        }
+
+        public void StoreInfo(string path, ObjectInfo objectInfo)
+        {
+            Contract.Requires(!String.IsNullOrWhiteSpace(path));
+            Contract.Requires(objectInfo!=null);            
+        }
+
+        public T GetStatus<T>(string path, Func<FileState, T> getter, T defaultValue)
+        {
+            Contract.Requires(!String.IsNullOrWhiteSpace(path));
+            Contract.Requires(getter!=null);
+
+            return default(T);
+        }
+
+        public void SetStatus(string path, Action<FileState> setter)
+        {
+            Contract.Requires(!String.IsNullOrWhiteSpace(path));
+            Contract.Requires(setter != null);
+        }
+
+        public void SetNetworkState(string path, NetworkState uploading)
+        {
+            Contract.Requires(!String.IsNullOrWhiteSpace(path));            
+        }
+
+        public NetworkState GetNetworkState(string path)
+        {
+            Contract.Requires(!String.IsNullOrWhiteSpace(path));
+
+            return default(NetworkState);
+        }
+
         public void ClearFileStatus(string path)
         {
             Contract.Requires(!String.IsNullOrWhiteSpace(path));
@@ -80,5 +134,11 @@ namespace Pithos.Core
         public void SetPithosStatus(PithosStatus status)
         {
         }
+
+        public void StartProcessing(CancellationToken token)
+        {
+            Contract.Requires(token != null, "token can't be empty");
+        }
+
     }
 }