using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FSI.Lib.Tools.RoboSharp.Results;
namespace FSI.Lib.Tools.RoboSharp.Interfaces
{
///
/// Object that provides objects whose events can be bound to report estimated RoboCommand / RoboQueue progress periodically.
///
///
///
///
public interface IProgressEstimator : IResults
{
///
/// Estimate of current number of directories processed while the job is still running.
/// Estimate is provided by parsing of the LogLines produces by RoboCopy.
///
new IStatistic DirectoriesStatistic { get; }
///
/// Estimate of current number of files processed while the job is still running.
/// Estimate is provided by parsing of the LogLines produces by RoboCopy.
///
new IStatistic FilesStatistic { get; }
///
/// Estimate of current number of bytes processed while the job is still running.
/// Estimate is provided by parsing of the LogLines produces by RoboCopy.
///
new IStatistic BytesStatistic { get; }
///
/// Parse this object's stats into a enum.
///
RoboCopyExitCodes GetExitCode();
/// Event that occurs when this IProgressEstimatorObject's IStatistic values have been updated.
event ProgressEstimator.UIUpdateEventHandler ValuesUpdated;
}
}