annotate Implab/IPromise.cs @ 211:3eb3255d8cc5 v2

Code review, added a non generic version of SyncContextPromise
author cin
date Tue, 21 Mar 2017 17:29:13 +0300
parents ec91a6dfa5b3
children cbe10ac0731e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
1 using System;
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
2 using System.Collections.Generic;
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
3 using System.Linq;
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
4 using System.Text;
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
5
66
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
6 namespace Implab {
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
7 public interface IPromise: ICancellable {
26
f0bf98e4d22c refactoring
cin
parents: 25
diff changeset
8
66
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
9 /// <summary>
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
10 /// Тип результата, получаемого через данное обещание.
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
11 /// </summary>
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
12 Type PromiseType { get; }
25
9bf5b23650c9 refactoring
cin
parents: 19
diff changeset
13
74
c4140283575c minor fixes
cin
parents: 66
diff changeset
14 /// <summary>
99
8ddf1648eca4 fixed TransientPromiseException handling
cin
parents: 96
diff changeset
15 /// Обещание является выполненым, либо успешно, либо с ошибкой, либо отменено.
74
c4140283575c minor fixes
cin
parents: 66
diff changeset
16 /// </summary>
66
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
17 bool IsResolved { get; }
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
18
74
c4140283575c minor fixes
cin
parents: 66
diff changeset
19 /// <summary>
c4140283575c minor fixes
cin
parents: 66
diff changeset
20 /// Обещание было отменено.
c4140283575c minor fixes
cin
parents: 66
diff changeset
21 /// </summary>
66
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
22 bool IsCancelled { get; }
25
9bf5b23650c9 refactoring
cin
parents: 19
diff changeset
23
119
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
24 /// <summary>
138
f75cfa58e3d4 added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents: 119
diff changeset
25 /// Исключение возникшее в результате выполнения обещания, либо причина отмены.
f75cfa58e3d4 added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents: 119
diff changeset
26 /// </summary>
f75cfa58e3d4 added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents: 119
diff changeset
27 Exception Error { get; }
f75cfa58e3d4 added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents: 119
diff changeset
28
f75cfa58e3d4 added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents: 119
diff changeset
29 /// <summary>
119
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
30 /// Adds specified listeners to the current promise.
75
4439140706d0 major refactoring, added tasks support
cin
parents: 74
diff changeset
31 /// </summary>
119
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
32 /// <param name="success">The handler called on the successful promise completion.</param>
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
33 /// <param name="error">The handler is called if an error while completing the promise occurred.</param>
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
34 /// <param name="cancel">The handler is called in case of promise cancellation.</param>
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
35 /// <returns>The current promise.</returns>
138
f75cfa58e3d4 added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents: 119
diff changeset
36 IPromise On(Action success, Action<Exception> error, Action<Exception> cancel);
119
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
37 IPromise On(Action success, Action<Exception> error);
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
38 IPromise On(Action success);
75
4439140706d0 major refactoring, added tasks support
cin
parents: 74
diff changeset
39
74
c4140283575c minor fixes
cin
parents: 66
diff changeset
40 /// <summary>
119
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
41 /// Adds specified listeners to the current promise.
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
42 /// </summary>
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
43 /// <param name="handler">The handler called on the specified events.</param>
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
44 /// <param name = "events">The combination of flags denoting the events for which the
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
45 /// handler shoud be called.</param>
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
46 /// <returns>The current promise.</returns>
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
47 IPromise On(Action handler, PromiseEventType events);
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
48
2573b562e328 Promises rewritten, added improved version of AsyncQueue
cin
parents: 104
diff changeset
49 /// <summary>
74
c4140283575c minor fixes
cin
parents: 66
diff changeset
50 /// Преобразует результат обещания к заданному типу и возвращает новое обещание.
c4140283575c minor fixes
cin
parents: 66
diff changeset
51 /// </summary>
66
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
52 IPromise<T> Cast<T>();
26
f0bf98e4d22c refactoring
cin
parents: 25
diff changeset
53
74
c4140283575c minor fixes
cin
parents: 66
diff changeset
54 /// <summary>
c4140283575c minor fixes
cin
parents: 66
diff changeset
55 /// Синхронизирует текущий поток с обещанием.
c4140283575c minor fixes
cin
parents: 66
diff changeset
56 /// </summary>
66
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
57 void Join();
74
c4140283575c minor fixes
cin
parents: 66
diff changeset
58 /// <summary>
c4140283575c minor fixes
cin
parents: 66
diff changeset
59 /// Синхронизирует текущий поток с обещанием.
c4140283575c minor fixes
cin
parents: 66
diff changeset
60 /// </summary>
c4140283575c minor fixes
cin
parents: 66
diff changeset
61 /// <param name="timeout">Время ожидания, по его истечению возникнет исключение.</param>
c4140283575c minor fixes
cin
parents: 66
diff changeset
62 /// <exception cref="TimeoutException">Превышено время ожидания.</exception>
66
790e8a997d30 Refactoring
cin
parents: 33
diff changeset
63 void Join(int timeout);
7
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
64
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
65 }
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
66 }