##// END OF EJS Templates
Fixed promise rejection when there is not specified error handler in the reaction....
Fixed promise rejection when there is not specified error handler in the reaction. FIXED SPELLING IN THE XML CONTAINER CONFIGURATION signleton->singleton Code cleanup Update tests make them working on dotnet core

File last commit:

r289:95896f882995 v3.0.14 v3
r295:28af686e24f7 default
Show More
IRunnable.cs
54 lines | 1.8 KiB | text/x-csharp | CSharpLexer
using System;
using System.Threading;
using System.Threading.Tasks;
namespace Implab.Components {
/// <summary>
/// Interface for the component which performs a long running task.
/// </summary>
/// <remarks>
/// The access to the runnable component should be sequential, the
/// componet should support asynchronous completion of the initiated
/// operation but operations itself must be initiated sequentially.
/// </remarks>
public interface IRunnable {
/// <summary>
/// Starts this instance
/// </summary>
/// <remarks>
/// This operation is cancellable and it's expected to move to
/// the failed state or just ignore the cancellation request,
/// </remarks>
void Start();
void Start(CancellationToken ct);
/// <summary>
/// Stops this instance and releases all resources, after the
/// instance is stopped it is moved to Disposed state and
/// can't be reused.
/// </summary>
/// <remarks>
/// If the componet was in the starting state the pending operation
/// will be requested to cancel. The stop operatin will be
/// performed only if the component in the running state.
/// </remarks>
void Stop();
void Stop(CancellationToken ct);
/// <summary>
/// Current state of the componenet, dynamically reflects the current state.
/// </summary>
ExecutionState State { get; }
/// <summary>
/// Event to monitor the state of the component.
/// </summary>
event EventHandler<StateChangeEventArgs> StateChanged;
/// <summary>
/// The last error
/// </summary>
Exception LastError { get; }
}
}