using RoboSharp.Interfaces;
using RoboSharp.Results;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Threading.Tasks;
namespace RoboSharp.Interfaces
{
///
/// Interface for RoboQueue
///
public interface IRoboQueue : IDisposable, INotifyPropertyChanged, IEnumerable
{
#region < Properties >
///
bool AnyCancelled { get; }
///
bool AnyPaused { get; }
///
bool AnyRunning { get; }
///
ReadOnlyCollection Commands { get; }
///
bool CopyOperationCompleted { get; }
///
bool IsCopyOperationRunning { get; }
///
bool IsListOnlyRunning { get; }
///
bool IsPaused { get; }
///
bool IsRunning { get; }
///
int JobsComplete { get; }
///
int JobsCompletedSuccessfully { get; }
///
int JobsCurrentlyRunning { get; }
///
int JobsStarted { get; }
///
int ListCount { get; }
///
bool ListOnlyCompleted { get; }
///
IRoboQueueResults ListResults { get; }
///
int MaxConcurrentJobs { get; set; }
///
string Name { get; }
///
IProgressEstimator ProgressEstimator { get; }
///
IRoboQueueResults RunResults { get; }
///
bool WasCancelled { get; }
#endregion
#region < Events >
///
event RoboCommand.CommandCompletedHandler OnCommandCompleted;
///
event RoboCommand.CommandErrorHandler OnCommandError;
///
event RoboQueue.CommandStartedHandler OnCommandStarted;
///
event RoboCommand.CopyProgressHandler OnCopyProgressChanged;
///
event RoboCommand.ErrorHandler OnError;
///
event RoboCommand.FileProcessedHandler OnFileProcessed;
///
event RoboQueue.ProgressUpdaterCreatedHandler OnProgressEstimatorCreated;
///
event RoboQueue.RunCompletedHandler RunCompleted;
///
event RoboCopyResultsList.ResultsListUpdated RunResultsUpdated;
///
event UnhandledExceptionEventHandler TaskFaulted;
#endregion
#region < Methods >
///
void PauseAll();
///
void ResumeAll();
///
Task StartAll(string domain = "", string username = "", string password = "");
///
Task StartAll_ListOnly(string domain = "", string username = "", string password = "");
///
void StopAll();
#endregion
}
}