Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Common/3.4/DataTransfer/JobState.cs @ 6006

Last change on this file since 6006 was 5779, checked in by cneumuel, 14 years ago

#1233

  • implemented pause, stop for single jobs
  • introduced Command property for jobs (to distinguish between state and command (abort vs. aborted))
  • improved behaviour of ItemTreeView (double click opens new window, selected item stays marked)
  • fixed bugs in StateLogGanttChartListView and HiveJobView
  • fixed cloning of client-side dtos
File size: 2.9 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23
24namespace HeuristicLab.Services.Hive.Common.DataTransfer {
25  [Serializable]
26  public enum JobState {
27    /// <summary>
28    /// A job is offline as long as he is not yet submitted to the hive
29    /// </summary>
30    Offline,
31
32    /// <summary>
33    /// Job is waiting to be calculated
34    /// </summary>
35    Waiting,
36
37    ///// <summary>
38    ///// The job is set to Finished when all child jobs are Finished.
39    ///// </summary>
40    //FinishOnChildJobsFinished,
41
42    ///// <summary>
43    ///// The job is paused and waits on the server to be sent back to a Slave when all of its child jobs are Finished.
44    ///// </summary>
45    //ResumeOnChildJobsFinished,
46
47    /// <summary>
48    /// Job is beeing transferred
49    /// </summary>
50    Transferring,
51
52    /// <summary>
53    /// Job is actively calculated on a Slave
54    /// </summary>
55    Calculating,
56
57    /// <summary>
58    /// Job is paused, will not be picked up by slaves
59    /// </summary>
60    Paused,
61
62    /// <summary>
63    /// Job as finished and is ready to be collected by the Client
64    /// </summary>
65    Finished,
66
67    /// <summary>
68    /// Job is aborted and result can be collected by the Client
69    /// </summary>
70    Aborted,
71
72    /// <summary>
73    /// Job as been aborted due to an error. Results are ready to be collected
74    /// </summary>
75    Failed
76  };
77
78  public static class JobStateExtensions {
79    /// <summary>
80    /// This job is not yet done
81    /// </summary>
82    public static bool IsActive(this JobState jobState) {
83      return !jobState.IsDone();
84    }
85
86    /// <summary>
87    /// This job is Waiting
88    /// </summary>
89    public static bool IsWaiting(this JobState jobState) {
90      return jobState == JobState.Waiting;
91    }
92
93    /// <summary>
94    /// This job is Finished || Failed || Aborted
95    /// </summary>
96    public static bool IsDone(this JobState jobState) {
97      return jobState == JobState.Finished ||
98        jobState == JobState.Aborted ||
99        jobState == JobState.Failed;
100    }
101  }
102}
Note: See TracBrowser for help on using the repository browser.