comparison Implab/IPromise.cs @ 192:f1da3afc3521 release v2.1

Слияние с v2
author cin
date Fri, 22 Apr 2016 13:10:34 +0300
parents ec91a6dfa5b3
children cbe10ac0731e
comparison
equal deleted inserted replaced
71:1714fd8678ef 192:f1da3afc3521
3 using System.Linq; 3 using System.Linq;
4 using System.Text; 4 using System.Text;
5 5
6 namespace Implab { 6 namespace Implab {
7 public interface IPromise: ICancellable { 7 public interface IPromise: ICancellable {
8 /// <summary>
9 /// Check whereather the promise has no more than one dependent promise.
10 /// </summary>
11 bool IsExclusive {
12 get;
13 }
14 8
15 /// <summary> 9 /// <summary>
16 /// Тип результата, получаемого через данное обещание. 10 /// Тип результата, получаемого через данное обещание.
17 /// </summary> 11 /// </summary>
18 Type PromiseType { get; } 12 Type PromiseType { get; }
19 13
14 /// <summary>
15 /// Обещание является выполненым, либо успешно, либо с ошибкой, либо отменено.
16 /// </summary>
20 bool IsResolved { get; } 17 bool IsResolved { get; }
21 18
19 /// <summary>
20 /// Обещание было отменено.
21 /// </summary>
22 bool IsCancelled { get; } 22 bool IsCancelled { get; }
23 23
24 IPromise Then(Action success,ErrorHandler error); 24 /// <summary>
25 IPromise Then(Action success); 25 /// Исключение возникшее в результате выполнения обещания, либо причина отмены.
26 IPromise Error(ErrorHandler error); 26 /// </summary>
27 IPromise Anyway(Action handler); 27 Exception Error { get; }
28 IPromise Finally(Action handler);
29 IPromise Cancelled(Action handler);
30 28
29 /// <summary>
30 /// Adds specified listeners to the current promise.
31 /// </summary>
32 /// <param name="success">The handler called on the successful promise completion.</param>
33 /// <param name="error">The handler is called if an error while completing the promise occurred.</param>
34 /// <param name="cancel">The handler is called in case of promise cancellation.</param>
35 /// <returns>The current promise.</returns>
36 IPromise On(Action success, Action<Exception> error, Action<Exception> cancel);
37 IPromise On(Action success, Action<Exception> error);
38 IPromise On(Action success);
39
40 /// <summary>
41 /// Adds specified listeners to the current promise.
42 /// </summary>
43 /// <param name="handler">The handler called on the specified events.</param>
44 /// <param name = "events">The combination of flags denoting the events for which the
45 /// handler shoud be called.</param>
46 /// <returns>The current promise.</returns>
47 IPromise On(Action handler, PromiseEventType events);
48
49 /// <summary>
50 /// Преобразует результат обещания к заданному типу и возвращает новое обещание.
51 /// </summary>
31 IPromise<T> Cast<T>(); 52 IPromise<T> Cast<T>();
32 53
54 /// <summary>
55 /// Синхронизирует текущий поток с обещанием.
56 /// </summary>
33 void Join(); 57 void Join();
58 /// <summary>
59 /// Синхронизирует текущий поток с обещанием.
60 /// </summary>
61 /// <param name="timeout">Время ожидания, по его истечению возникнет исключение.</param>
62 /// <exception cref="TimeoutException">Превышено время ожидания.</exception>
34 void Join(int timeout); 63 void Join(int timeout);
35 64
36 } 65 }
37 } 66 }