Mercurial > pub > ImplabNet
annotate Implab/Components/IRunnable.cs @ 251:7c7e9ad6fe4a v3
Prerelease version of RunnableComponent
Added draft messaging interfaces
Added more more helpers to Xml/SerializationHelpers
author | cin |
---|---|
date | Sun, 11 Feb 2018 00:49:51 +0300 |
parents | 9f63dade3a40 |
children | c52691faaf21 |
rev | line source |
---|---|
152 | 1 using System; |
250 | 2 using System.Threading; |
3 using System.Threading.Tasks; | |
152 | 4 |
5 namespace Implab.Components { | |
250 | 6 /// <summary> |
7 /// Interface for the component which performs a long running task. | |
208
7d07503621fe
RunnableComponent.Dispose(bool,Exception) changed to standart Dispose(bool)
cin
parents:
205
diff
changeset
|
8 /// </summary> |
251 | 9 /// <remarks> |
10 /// The access to the runnable component should be sequential, the | |
11 /// componet should support asynchronous completion of the initiated | |
12 /// operation but operations itself must be initiated sequentially. | |
13 /// </remarks> | |
14 public interface IRunnable { | |
203
4d9830a9bbb8
Added 'Fail' method to RunnableComponent which allows component to move from
cin
parents:
152
diff
changeset
|
15 /// <summary> |
208
7d07503621fe
RunnableComponent.Dispose(bool,Exception) changed to standart Dispose(bool)
cin
parents:
205
diff
changeset
|
16 /// Starts this instance |
203
4d9830a9bbb8
Added 'Fail' method to RunnableComponent which allows component to move from
cin
parents:
152
diff
changeset
|
17 /// </summary> |
251 | 18 /// <remarks> |
19 /// This operation is cancellable and it's expected to move to | |
20 /// the failed state or just ignore the cancellation request, | |
21 /// </remarks> | |
250 | 22 void Start(CancellationToken ct); |
152 | 23 |
203
4d9830a9bbb8
Added 'Fail' method to RunnableComponent which allows component to move from
cin
parents:
152
diff
changeset
|
24 /// <summary> |
251 | 25 /// Stops this instance and releases all resources, after the |
26 /// instance is stopped it is moved to Disposed state and | |
27 /// can't be reused. | |
203
4d9830a9bbb8
Added 'Fail' method to RunnableComponent which allows component to move from
cin
parents:
152
diff
changeset
|
28 /// </summary> |
251 | 29 /// <remarks> |
30 /// If the componet was in the starting state the pending operation | |
31 /// will be requested to cancel. The stop operatin will be | |
32 /// performed only if the component in the running state. | |
33 /// </remarks> | |
250 | 34 void Stop(CancellationToken ct); |
35 | |
251 | 36 /// <summary> |
37 /// The result of the last started operation. This property reflects | |
38 /// only the result of the last started operation and therefore should | |
39 /// change only if a new operation is initiated. | |
40 /// </summary> | |
41 Task Completion { get; } | |
152 | 42 |
251 | 43 /// <summary> |
44 /// Current state of the componenet | |
45 /// </summary> | |
152 | 46 ExecutionState State { get; } |
47 | |
251 | 48 /// <summary> |
49 /// Event to monitor the state of the component. | |
50 /// </summary> | |
205
8200ab154c8a
Added ResetState to RunnableComponent to reset in case of failure
cin
parents:
203
diff
changeset
|
51 event EventHandler<StateChangeEventArgs> StateChanged; |
8200ab154c8a
Added ResetState to RunnableComponent to reset in case of failure
cin
parents:
203
diff
changeset
|
52 |
251 | 53 /// <summary> |
54 /// The last error | |
55 /// </summary> | |
152 | 56 Exception LastError { get; } |
57 } | |
58 } | |
59 |