OSDN Git Service

AppliStation-all,NaGetTaskクラスをTaskクラスに改名他
[applistation/AppliStation.git] / na-get-lib / NaGet.SubCommands / NaGetTaskSet.cs
index 75a43ac..41a8d7a 100644 (file)
@@ -1,8 +1,11 @@
 using System;\r
+using NaGet.Tasks;\r
 \r
 namespace NaGet.SubCommands\r
 {\r
-       public class NaGetTaskSetEventArgs : NaGetEventArgs\r
+       #region EventHandler<NaGetTaskSetEventArgs>\8aÖ\98A\r
+       \r
+       public class NaGetTaskSetEventArgs : TaskEventArgs\r
        {\r
                public NaGetTaskSetEventType Type;\r
                \r
@@ -10,7 +13,7 @@ namespace NaGet.SubCommands
                {\r
                        this.Type = type;\r
                        this.TaskMessage = message;\r
-                       this.TaskProgressPercent = processPercent;\r
+                       this.ProgressPercent = processPercent;\r
                }\r
        }\r
        \r
@@ -52,32 +55,67 @@ namespace NaGet.SubCommands
                /// </summary>\r
                COMPLETED_TASKSET,\r
                /// <summary>\r
-               /// \8e¿\96â\r
+               /// \93®\8dì\90i\92»\81E\92Ê\92m\82Ì\82Ý\r
+               /// </summary>\r
+               PING,\r
+       }\r
+       \r
+       #endregion\r
+       \r
+       #region NaGetTaskQueryHandler\8aÖ\98A\r
+       \r
+       public delegate NaGetTaskQueryResult NaGetTaskQueryHandler(object sender, NaGetTaskQueryArgs e);\r
+       \r
+       public class NaGetTaskQueryArgs\r
+       {\r
+               /// <summary>\r
+               /// \83^\83X\83N\82Ì\8c»\8bµ\82Ì\83\81\83b\83Z\81[\83W\r
                /// </summary>\r
-               QUERY,\r
+               public string Message;\r
+               \r
                /// <summary>\r
-               /// \8cx\8d\90\82ð\8aÜ\82Þ\8e¿\96â\r
+               /// \89ñ\93\9a\82Ì\8eí\97Þ\82Ì\83t\83\89\83O\r
                /// </summary>\r
-               WARNING_QUERY,\r
+               public NaGetTaskQueryResult SelectionFlag;\r
+               \r
+               public NaGetTaskQueryArgs(string message, NaGetTaskQueryResult selectionFlag)\r
+               {\r
+                       this.Message = message;\r
+                       this.SelectionFlag = selectionFlag;\r
+               }\r
        }\r
        \r
        /// <summary>\r
        /// \8e¿\96â\82Ì\93\9a\82¦\r
        /// </summary>\r
-       public enum NaGetTaskQueryResult\r
+       [Flags()]\r
+       public enum NaGetTaskQueryResult : uint\r
        {\r
-               CONTINUE,\r
-               RETRY,\r
-               CANCEL,\r
-               CANCELED_AUTOMATICALLY,\r
+               /// <summary>\r
+               /// \8cp\91±(=OK)\r
+               /// </summary>\r
+               CONTINUE = 0x01,\r
+               /// <summary>\r
+               /// \8dÄ\8e\8e\8ds\r
+               /// </summary>\r
+               RETRY = 0x02,\r
+               /// <summary>\r
+               /// \83L\83\83\83\93\83Z\83\8b\81A\92\86\8e~\r
+               /// </summary>\r
+               CANCEL = 0x04,\r
+               /// <summary>\r
+               /// \8e©\93®\93I\82È\83L\83\83\83\93\83Z\83\8b(\83\86\81[\83U\82Ì\8eè\82Å\82Í\82È\82¢\82à\82Ì)\r
+               /// </summary>\r
+               CANCELED_AUTOMATICALLY = 0x00,\r
        }\r
        \r
-       public delegate NaGetTaskQueryResult NaGetTaskQueryHandler(object sender, NaGetTaskSetEventArgs e);\r
+       \r
+       #endregion\r
        \r
        /// <summary>\r
        /// NaGet\83^\83X\83N\8f\88\97\9d\82Ì\83p\83b\83N\r
        /// </summary>\r
-       public abstract class NaGetTaskSet : NaGetTask\r
+       public abstract class NaGetTaskSet : Task\r
        {\r
                /// <summary>\r
                /// \83^\83X\83N\8f\88\97\9d\82Ì\83C\83x\83\93\83g\83n\83\93\83h\83\89\r
@@ -101,10 +139,36 @@ namespace NaGet.SubCommands
                        get;\r
                }\r
                \r
+               /// <summary>\r
+               /// \8c»\8dÝ\82Ì\90i\92»\82ð\96ß\82·\81B\r
+               /// </summary>\r
+               /// <param name="type">\8dì\8bÆ\82Ì\8fó\91Ô</param>\r
+               /// <param name="subTaskProgress">\83T\83u\83^\83X\83N\82Ì\90i\92»</param>\r
+               /// <returns>\8c»\8dÝ\82Ì\90i\92»</returns>\r
+               protected virtual float GetProgressPercent(NaGetTaskSetEventType type, float subTaskProgress)\r
+               {\r
+                       if (CurrentTaskSetIndex >= 0) {\r
+                               if (subTaskProgress >= 0) {\r
+                                       return (CurrentTaskSetIndex * 100 + subTaskProgress) / TaskSetNames.Length;\r
+                               }\r
+                               switch (type) {\r
+                                       case NaGetTaskSetEventType.STARTED:\r
+                                               return 0;\r
+                                       case NaGetTaskSetEventType.COMPLETED:\r
+                                               return 100;\r
+                                       case NaGetTaskSetEventType.COMPLETED_TASKSET:\r
+                                               return ((CurrentTaskSetIndex+1) * 100) / TaskSetNames.Length;\r
+                                       default:\r
+                                               return (CurrentTaskSetIndex * 100) / TaskSetNames.Length;\r
+                               }\r
+                       }\r
+                       \r
+                       return -1;\r
+               }\r
+               \r
                protected virtual void RaiseTaskSetEvent(NaGetTaskSetEventType type, string message)\r
                {\r
-                       float percent = (CurrentTaskSetIndex >= 0)? CurrentTaskSetIndex * 100 / TaskSetNames.Length : -1;\r
-                       RaiseTaskSetEvent(type, message, percent);\r
+                       RaiseTaskSetEvent(type, message, GetProgressPercent(type, -1));\r
                }\r
                \r
                protected virtual void RaiseTaskSetEvent(NaGetTaskSetEventType type, string message, float percent)\r
@@ -128,16 +192,10 @@ namespace NaGet.SubCommands
                        }\r
                }\r
                \r
-               protected virtual NaGetTaskQueryResult RaiseTaskSetQueryEvent(NaGetTaskSetEventType type, string message)\r
-               {\r
-                       float percent = (CurrentTaskSetIndex >= 0)? CurrentTaskSetIndex * 100 / TaskSetNames.Length : -1;\r
-                       return RaiseTaskSetQueryEvent(type, message, percent);\r
-               }\r
-               \r
-               protected virtual NaGetTaskQueryResult RaiseTaskSetQueryEvent(NaGetTaskSetEventType type, string message, float percent)\r
+               protected virtual NaGetTaskQueryResult RaiseTaskSetQueryEvent(string message, NaGetTaskQueryResult selection)\r
                {\r
                        if (TaskQueryRaised != null) {\r
-                               return TaskQueryRaised(this, new NaGetTaskSetEventArgs(type, message, percent));\r
+                               return TaskQueryRaised(this, new NaGetTaskQueryArgs(message, selection));\r
                        }\r
                        return NaGetTaskQueryResult.CANCELED_AUTOMATICALLY;\r
                }\r