using System;
using DelftTools.Utils.Collections.Generic;
namespace DelftTools.Shell.Core.Workflow
{
public interface IActivityRunner
{
///
/// Fired when an activity completes
///
event EventHandler ActivityCompleted;
///
/// Occurs when the queuestate changes
///
event EventHandler IsRunningChanged;
event EventHandler ActivityStatusChanged;
///
/// All activities (todo and running)
///
IEventedList Activities { get; }
///
/// Determines whether some activity is running
///
bool IsRunning { get; }
///
/// Call to find out if a specific activity is being run
///
///
///
bool IsRunningActivity(IActivity activity);
///
/// Schedules activity to run.
///
/// Activity to process
void Enqueue(IActivity activity);
///
/// Cancels the specified activity
///
///
void Cancel(IActivity activity);
///
/// Stops all activities and empties the TODO-list
///
void CancelAll();
}
}