Mercurial > pub > ImplabNet
annotate Implab/Components/IRunnable.cs @ 259:7d52dc684bbd v3
PollingComponent: implemented correct stopping
| author | cin |
|---|---|
| date | Fri, 13 Apr 2018 03:57:39 +0300 |
| parents | c52691faaf21 |
| 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 |
