using System.Threading.Tasks;
namespace FSI.Lib.Tools.RoboSharp.Interfaces
{
///
///
///
///
///
///
public interface IRoboCommand
{
#region Properties
///
string Name { get; }
///
bool IsPaused { get; }
///
bool IsRunning { get; }
///
bool IsScheduled{ get; }
///
bool IsCancelled { get; }
///
bool StopIfDisposing { get; }
///
IProgressEstimator IProgressEstimator { get; }
///
string CommandOptions { get; }
///
CopyOptions CopyOptions { get; set; }
///
SelectionOptions SelectionOptions { get; set; }
///
RetryOptions RetryOptions { get; set; }
///
LoggingOptions LoggingOptions { get; set; }
///
JobOptions JobOptions{ get; }
///
RoboSharpConfiguration Configuration { get; }
#endregion Properties
#region Events
///
event RoboCommand.FileProcessedHandler OnFileProcessed;
///
event RoboCommand.CommandErrorHandler OnCommandError;
///
event RoboCommand.ErrorHandler OnError;
///
event RoboCommand.CommandCompletedHandler OnCommandCompleted;
///
event RoboCommand.CopyProgressHandler OnCopyProgressChanged;
///
event RoboCommand.ProgressUpdaterCreatedHandler OnProgressEstimatorCreated;
#endregion Events
#region Methods
///
void Pause();
///
void Resume();
///
Task Start(string domain = "", string username = "", string password = "");
///
Task Start_ListOnly(string domain = "", string username = "", string password = "");
///
void Stop();
///
void Dispose();
#if NET45_OR_GREATER || NETSTANDARD2_0_OR_GREATER || NETCOREAPP3_1_OR_GREATER
///
Task StartAsync_ListOnly(string domain = "", string username = "", string password = "");
///
Task StartAsync(string domain = "", string username = "", string password = "");
#endif
#endregion Methods
}
}