diff Implab/IPromiseT.cs @ 76:c761fc982e1d v2

Refactoring of the IPromise<T> interface Added tests
author cin
date Wed, 10 Sep 2014 17:53:05 +0400
parents 4439140706d0
children a43745f81f10
line wrap: on
line diff
--- a/Implab/IPromiseT.cs	Wed Sep 10 11:17:37 2014 +0400
+++ b/Implab/IPromiseT.cs	Wed Sep 10 17:53:05 2014 +0400
@@ -4,34 +4,40 @@
 using System.Text;
 
 namespace Implab {
-    public interface IPromise<T>: IPromise {
+    public interface IPromise<T> : IPromise {
 
         new T Join();
 
         new T Join(int timeout);
 
+        void Last(ResultHandler<T> success, ErrorHandler error, Action cancel);
+        
+        void Last(ResultHandler<T> success, ErrorHandler error);
+
+        void Last(ResultHandler<T> success);
+
         IPromise<T> Then(ResultHandler<T> success, ErrorHandler<T> error, Action cancel);
 
         IPromise<T> Then(ResultHandler<T> success, ErrorHandler<T> error);
 
         IPromise<T> Then(ResultHandler<T> success);
 
-        void Last(ResultHandler<T> success, ErrorHandler error, Action cancel);
-        void Last(ResultHandler<T> success, ErrorHandler error);
-        void Last(ResultHandler<T> success);
+        IPromise<T2> Then<T2>(ResultMapper<T, T2> mapper, ErrorHandler<T2> error, Action cancel);
+
+        IPromise<T2> Then<T2>(ResultMapper<T, T2> mapper, ErrorHandler<T2> error);
+
+        IPromise<T2> Then<T2>(ResultMapper<T, T2> mapper);
+
+        IPromise<T2> Chain<T2>(ResultMapper<T, IPromise<T2>> chained, ErrorHandler<IPromise<T2>> error, Action cancel);
+
+        IPromise<T2> Chain<T2>(ResultMapper<T, IPromise<T2>> chained, ErrorHandler<IPromise<T2>> error);
+
+        IPromise<T2> Chain<T2>(ResultMapper<T, IPromise<T2>> chained);
 
         IPromise<T> Error(ErrorHandler<T> error);
 
-        IPromise<T2> Then<T2>(ResultMapper<T,T2> mapper, ErrorHandler<T> error);
-
-        IPromise<T2> Then<T2>(ResultMapper<T,T2> mapper);
-
-        IPromise<T2> Then<T2>(ChainedOperation<T, T2> chained, ErrorHandler<T> error);
-
-        IPromise<T2> Then<T2>(ChainedOperation<T, T2> chained);
-
         new IPromise<T> Cancelled(Action handler);
 
-        new IPromise<T> Finally(Action handler);
+        new IPromise<T> Anyway(Action handler);
     }
 }