annotate Implab/IPromise.cs @ 10:aa33d0bb8c0c promises

implemeted new cancellable promises concept
author cin
date Sun, 03 Nov 2013 18:07:38 +0400
parents c82e0dfbb4dd
children 6ec82bf68c8e
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
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
6 namespace Implab
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
7 {
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
8 public interface IPromise
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
9 {
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
10 /// <summary>
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
11 /// Check whereather the promise has no more than one dependent promise.
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
12 /// </summary>
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
13 bool IsExclusive
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
14 {
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
15 get;
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
16 }
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
17
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
18 /// <summary>
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
19 /// The current state of the promise.
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
20 /// </summary>
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
21 PromiseState State
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
22 {
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
23 get;
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
24 }
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
25
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
26 /// <summary>
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
27 /// Tries to cancel the promise or the complete chain.
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
28 /// </summary>
9
cin
parents: 7
diff changeset
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
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
30 /// <returns></returns>
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
31 bool Cancel(bool dependencies);
10
aa33d0bb8c0c implemeted new cancellable promises concept
cin
parents: 9
diff changeset
32
aa33d0bb8c0c implemeted new cancellable promises concept
cin
parents: 9
diff changeset
33 /// <summary>
aa33d0bb8c0c implemeted new cancellable promises concept
cin
parents: 9
diff changeset
34 /// Registers handler for the case when the promise is cencelled. If the promise already cancelled the
aa33d0bb8c0c implemeted new cancellable promises concept
cin
parents: 9
diff changeset
35 /// handler will be invoked immediatelly.
aa33d0bb8c0c implemeted new cancellable promises concept
cin
parents: 9
diff changeset
36 /// </summary>
aa33d0bb8c0c implemeted new cancellable promises concept
cin
parents: 9
diff changeset
37 /// <param name="handler">The handler</param>
aa33d0bb8c0c implemeted new cancellable promises concept
cin
parents: 9
diff changeset
38 void HandleCancelled(Action handler);
7
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
39 }
7ea9363fef6c inital progress handling
cin
parents:
diff changeset
40 }