using System;
using System.ComponentModel;
using RoboSharp.Results;
namespace RoboSharp.Interfaces
{
///
/// Provide Read-Only access to a object
///
///
///
///
public interface IStatistic : INotifyPropertyChanged, ICloneable
{
#region < Properties >
///
/// Name of the Statistics Object
///
string Name { get; }
///
///
///
Statistic.StatType Type { get; }
/// Total Scanned during the run
long Total { get; }
/// Total Copied
long Copied { get; }
/// Total Skipped
long Skipped { get; }
///
long Mismatch { get; }
/// Total that failed to copy or move
long Failed { get; }
/// Total Extra that exist in the Destination (but are missing from the Source)
long Extras { get; }
///
bool NonZeroValue { get; }
#endregion
#region < Events >
///
new event PropertyChangedEventHandler PropertyChanged;
/// Occurs when the Property is updated.
event Statistic.StatChangedHandler OnTotalChanged;
/// Occurs when the Property is updated.
event Statistic.StatChangedHandler OnCopiedChanged;
/// Occurs when the Property is updated.
event Statistic.StatChangedHandler OnSkippedChanged;
/// Occurs when the Property is updated.
event Statistic.StatChangedHandler OnMisMatchChanged;
/// Occurs when the Property is updated.
event Statistic.StatChangedHandler OnFailedChanged;
/// Occurs when the Property is updated.
event Statistic.StatChangedHandler OnExtrasChanged;
#endregion
#region < ToString Methods >
///
string ToString();
///
string ToString(bool IncludeType, bool IncludePrefix, string Delimiter, bool DelimiterAfterType = false);
///
string ToString_Type();
///
string ToString_Total(bool IncludeType = false, bool IncludePrefix = true);
///
string ToString_Copied(bool IncludeType = false, bool IncludePrefix = true);
///
string ToString_Extras(bool IncludeType = false, bool IncludePrefix = true);
///
string ToString_Failed(bool IncludeType = false, bool IncludePrefix = true);
///
string ToString_Mismatch(bool IncludeType = false, bool IncludePrefix = true);
///
string ToString_Skipped(bool IncludeType = false, bool IncludePrefix = true);
#endregion
/// new object
///
new Statistic Clone();
}
}