using System; using NaGet.Tasks; namespace NaGet.SubCommands.SubTask { /// /// サブタスクの基底クラス。 /// public abstract class NaGetSubTask : Task { private bool isRunning = false; private bool isDone = false; private bool isCancelled = false; public NaGetSubTask() { } /// /// 進捗情報を提供するか? /// public virtual bool UseProgress { get { return true; } } public override bool Running { get { return isRunning; } } public override bool Done { get { return isDone; } } public virtual bool Cancelled { get { return isCancelled; } } #region フラグ処理の便利メソッド /// /// 開始時に関するフラグの処理を行う /// protected virtual void NotifyStarted() { isRunning = true; isDone = false; } /// /// キャンセル中断時に関するフラグの処理を行う /// protected virtual void NotifyCancelled() { isRunning = false; isCancelled = true; isDone = true; } /// /// 成功終了時に関するフラグの処理を行う /// protected virtual void NotifyCompleted() { isRunning = false; isDone = true; } #endregion } }