7
|
1 using System;
|
|
2 using System.Collections.Generic;
|
|
3 using System.Linq;
|
|
4 using System.Text;
|
|
5
|
|
6 namespace Implab
|
|
7 {
|
|
8 public interface IPromise
|
|
9 {
|
|
10 /// <summary>
|
|
11 /// Check whereather the promise has no more than one dependent promise.
|
|
12 /// </summary>
|
|
13 bool IsExclusive
|
|
14 {
|
|
15 get;
|
|
16 }
|
|
17
|
|
18 /// <summary>
|
|
19 /// The current state of the promise.
|
|
20 /// </summary>
|
|
21 PromiseState State
|
|
22 {
|
|
23 get;
|
|
24 }
|
|
25
|
|
26 /// <summary>
|
|
27 /// Tries to cancel the promise or the complete chain.
|
|
28 /// </summary>
|
9
|
29 /// <param name="dependencies">Try to cancel the whole promise chain, the parent promise will be cancelled only if it has only one promise</param>
|
7
|
30 /// <returns></returns>
|
|
31 bool Cancel(bool dependencies);
|
10
|
32
|
|
33 /// <summary>
|
|
34 /// Registers handler for the case when the promise is cencelled. If the promise already cancelled the
|
|
35 /// handler will be invoked immediatelly.
|
|
36 /// </summary>
|
|
37 /// <param name="handler">The handler</param>
|
|
38 void HandleCancelled(Action handler);
|
7
|
39 }
|
|
40 }
|