Mercurial > pub > ImplabNet
annotate Implab/Components/IRunnable.cs @ 256:c52691faaf21 v3
Removed obsolete App, ComponentContainer
Extracted IAsyncComponent interface
Working on RunnableComponent
author | cin |
---|---|
date | Wed, 11 Apr 2018 03:05:14 +0300 |
parents | 7c7e9ad6fe4a |
children | f1696cdc3d7a |
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> |
256 | 37 /// Current state of the componenet, dynamically reflects the current state. |
251 | 38 /// </summary> |
152 | 39 ExecutionState State { get; } |
40 | |
251 | 41 /// <summary> |
42 /// Event to monitor the state of the component. | |
43 /// </summary> | |
205
8200ab154c8a
Added ResetState to RunnableComponent to reset in case of failure
cin
parents:
203
diff
changeset
|
44 event EventHandler<StateChangeEventArgs> StateChanged; |
8200ab154c8a
Added ResetState to RunnableComponent to reset in case of failure
cin
parents:
203
diff
changeset
|
45 |
251 | 46 /// <summary> |
47 /// The last error | |
48 /// </summary> | |
152 | 49 Exception LastError { get; } |
50 } | |
51 } | |
52 |