Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/12/11 18:04:25 (13 years ago)
Author:
ascheibe
Message:

#1233

  • fixed a bug in the Slave UI
  • finished renaming Webservice and Dao methods to be consistent with Job/Task naming
  • some cosmetic changes and project dependencies cleanups
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.3/RefreshableJob.cs

    r6725 r6743  
    5555    }
    5656
    57     private ItemCollection<HiveTask> hiveJobs;
    58     public ItemCollection<HiveTask> HiveJobs {
    59       get { return hiveJobs; }
     57    private ItemCollection<HiveTask> hiveTasks;
     58    public ItemCollection<HiveTask> HiveTasks {
     59      get { return hiveTasks; }
    6060      set {
    61         if (hiveJobs != value) {
    62           if (hiveJobs != null) DeregisterHiveJobsEvents();
    63           hiveJobs = value;
    64           if (hiveJobs != null) RegisterHiveJobsEvents();
     61        if (hiveTasks != value) {
     62          if (hiveTasks != null) DeregisterHiveJobsEvents();
     63          hiveTasks = value;
     64          if (hiveTasks != null) RegisterHiveJobsEvents();
    6565          OnHiveJobsChanged();
    6666        }
     
    100100          }
    101101          if (RefreshAutomatically) {
    102             if (this.HiveJobs != null && this.HiveJobs.Count > 0 && (jobResultPoller == null || !jobResultPoller.IsPolling)) {
     102            if (this.HiveTasks != null && this.HiveTasks.Count > 0 && (jobResultPoller == null || !jobResultPoller.IsPolling)) {
    103103              StartResultPolling();
    104104            }
     
    130130          isControllable = value;
    131131          OnIsControllableChanged();
    132           if (this.hiveJobs != null) {
    133             foreach (var hiveJob in this.hiveJobs) {
     132          if (this.hiveTasks != null) {
     133            foreach (var hiveJob in this.hiveTasks) {
    134134              hiveJob.IsControllable = value;
    135135            }
     
    186186
    187187    public StateLogListList StateLogList {
    188       get { return new StateLogListList(this.GetAllHiveJobs().Select(x => x.StateLog)); }
     188      get { return new StateLogListList(this.GetAllHiveTasks().Select(x => x.StateLog)); }
    189189    }
    190190
     
    196196      this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(2, 2);
    197197      this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured);
    198       this.HiveJobs = new ItemCollection<HiveTask>();
     198      this.HiveTasks = new ItemCollection<HiveTask>();
    199199    }
    200200    public RefreshableJob(Job hiveExperiment) {
     
    204204      this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(2, 2);
    205205      this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured);
    206       this.HiveJobs = new ItemCollection<HiveTask>();
     206      this.HiveTasks = new ItemCollection<HiveTask>();
    207207    }
    208208    protected RefreshableJob(RefreshableJob original, Cloner cloner) {
     
    214214      this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(2, 2);
    215215      this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured);
    216       this.HiveJobs = cloner.Clone(original.HiveJobs);
     216      this.HiveTasks = cloner.Clone(original.HiveTasks);
    217217      this.ExecutionTime = original.ExecutionTime;
    218218      this.ExecutionState = original.ExecutionState;
     
    263263    }
    264264    private void jobResultPoller_JobResultReceived(object sender, EventArgs<IEnumerable<LightweightTask>> e) {
    265       foreach (LightweightTask lightweightJob in e.Value) {
    266         HiveTask hiveJob = GetHiveJobById(lightweightJob.Id);
    267         if (hiveJob != null) {
     265      foreach (LightweightTask lightweightTask in e.Value) {
     266        HiveTask hiveTask = GetHiveJobById(lightweightTask.Id);
     267        if (hiveTask != null) {
    268268          // lastJobDataUpdate equals DateTime.MinValue right after it was uploaded. When the first results are polled, this value is updated
    269           if (hiveJob.Task.State == TaskState.Offline && lightweightJob.State != TaskState.Finished && lightweightJob.State != TaskState.Failed && lightweightJob.State != TaskState.Aborted) {
    270             hiveJob.Task.LastJobDataUpdate = lightweightJob.LastJobDataUpdate;
     269          if (hiveTask.Task.State == TaskState.Offline && lightweightTask.State != TaskState.Finished && lightweightTask.State != TaskState.Failed && lightweightTask.State != TaskState.Aborted) {
     270            hiveTask.Task.LastTaskDataUpdate = lightweightTask.LastTaskDataUpdate;
    271271          }
    272272
    273           hiveJob.UpdateFromLightweightJob(lightweightJob);
    274 
    275           if (!hiveJob.IsFinishedTaskDownloaded && !hiveJob.IsDownloading && hiveJob.Task.LastJobDataUpdate < lightweightJob.LastJobDataUpdate) {
    276             log.LogMessage(string.Format("Downloading task {0}", lightweightJob.Id));
    277             hiveJob.IsDownloading = true;
    278             jobDownloader.DownloadJob(hiveJob.Task, (localJob, itemJob) => {
     273          hiveTask.UpdateFromLightweightJob(lightweightTask);
     274
     275          if (!hiveTask.IsFinishedTaskDownloaded && !hiveTask.IsDownloading && hiveTask.Task.LastTaskDataUpdate < lightweightTask.LastTaskDataUpdate) {
     276            log.LogMessage(string.Format("Downloading task {0}", lightweightTask.Id));
     277            hiveTask.IsDownloading = true;
     278            jobDownloader.DownloadTask(hiveTask.Task, (localJob, itemJob) => {
    279279              log.LogMessage(string.Format("Finished downloading task {0}", localJob.Id));
    280               HiveTask localHiveJob = GetHiveJobById(localJob.Id);
     280              HiveTask localHiveTask = GetHiveJobById(localJob.Id);
    281281
    282282              if (itemJob == null) {
    283                 localHiveJob.IsDownloading = false;
     283                localHiveTask.IsDownloading = false;
    284284              }
    285285
     
    290290
    291291                if (localJob.State == TaskState.Paused) {
    292                   localHiveJob.ItemTask = itemJob;
     292                  localHiveTask.ItemTask = itemJob;
    293293                } else {
    294294                  if (localJob.ParentTaskId.HasValue) {
    295                     HiveTask parentHiveJob = GetHiveJobById(localJob.ParentTaskId.Value);
    296                     parentHiveJob.IntegrateChild(itemJob, localJob.Id);
     295                    HiveTask parentHiveTask = GetHiveJobById(localJob.ParentTaskId.Value);
     296                    parentHiveTask.IntegrateChild(itemJob, localJob.Id);
    297297                  } else {
    298                     localHiveJob.ItemTask = itemJob;
     298                    localHiveTask.ItemTask = itemJob;
    299299                  }
    300300                }
    301                 localHiveJob.IsDownloading = false;
    302                 localHiveJob.Task.LastJobDataUpdate = localJob.LastJobDataUpdate;
     301                localHiveTask.IsDownloading = false;
     302                localHiveTask.Task.LastTaskDataUpdate = localJob.LastTaskDataUpdate;
    303303              }
    304304            });
     
    317317
    318318    public HiveTask GetHiveJobById(Guid jobId) {
    319       foreach (HiveTask job in this.HiveJobs) {
     319      foreach (HiveTask job in this.HiveTasks) {
    320320        var hj = job.GetHiveTaskByTaskId(jobId);
    321321        if (hj != null)
     
    325325    }
    326326    private void UpdateStatistics() {
    327       var jobs = this.GetAllHiveJobs();
     327      var jobs = this.GetAllHiveTasks();
    328328      job.JobCount = jobs.Count();
    329329      job.CalculatingCount = jobs.Count(j => j.Task.State == TaskState.Calculating);
     
    333333
    334334    public bool AllJobsFinished() {
    335       return this.GetAllHiveJobs().All(j => (j.Task.State == TaskState.Finished
     335      return this.GetAllHiveTasks().All(j => (j.Task.State == TaskState.Finished
    336336                                                   || j.Task.State == TaskState.Aborted
    337337                                                   || j.Task.State == TaskState.Failed)
     
    346346    }
    347347    public void UpdateTotalExecutionTime() {
    348       this.ExecutionTime = TimeSpan.FromMilliseconds(this.GetAllHiveJobs().Sum(x => x.Task.ExecutionTime.TotalMilliseconds));
     348      this.ExecutionTime = TimeSpan.FromMilliseconds(this.GetAllHiveTasks().Sum(x => x.Task.ExecutionTime.TotalMilliseconds));
    349349    }
    350350    #endregion
     
    468468    #endregion
    469469
    470     #region HiveJobs Events
     470    #region HiveTasks Events
    471471    private void RegisterHiveJobsEvents() {
    472       this.hiveJobs.ItemsAdded += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded);
    473       this.hiveJobs.ItemsRemoved += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved);
    474       this.hiveJobs.CollectionReset += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset);
     472      this.hiveTasks.ItemsAdded += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded);
     473      this.hiveTasks.ItemsRemoved += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved);
     474      this.hiveTasks.CollectionReset += new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset);
    475475    }
    476476
    477477    private void DeregisterHiveJobsEvents() {
    478       this.hiveJobs.ItemsAdded -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded);
    479       this.hiveJobs.ItemsRemoved -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved);
    480       this.hiveJobs.CollectionReset -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset);
     478      this.hiveTasks.ItemsAdded -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsAdded);
     479      this.hiveTasks.ItemsRemoved -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_ItemsRemoved);
     480      this.hiveTasks.CollectionReset -= new CollectionItemsChangedEventHandler<HiveTask>(hiveJobs_CollectionReset);
    481481    }
    482482
     
    514514        DeregisterResultPollingEvents();
    515515      }
    516       if (this.HiveJobs != null && this.HiveJobs.Count > 0 && this.GetAllHiveJobs().All(x => x.Task.Id != Guid.Empty)) {
     516      if (this.HiveTasks != null && this.HiveTasks.Count > 0 && this.GetAllHiveTasks().All(x => x.Task.Id != Guid.Empty)) {
    517517        if (this.RefreshAutomatically)
    518518          StartResultPolling();
     
    581581
    582582    public bool IsFinished() {
    583       return HiveJobs != null
    584         && HiveJobs.All(x => x.Task.DateFinished.HasValue && x.Task.DateCreated.HasValue);
    585     }
    586 
    587     public IEnumerable<HiveTask> GetAllHiveJobs() {
    588       if (hiveJobs == null) return Enumerable.Empty<HiveTask>();
    589 
    590       var jobs = new List<HiveTask>();
    591       foreach (HiveTask job in HiveJobs) {
    592         jobs.AddRange(job.GetAllHiveTasks());
    593       }
    594       return jobs;
     583      return HiveTasks != null
     584        && HiveTasks.All(x => x.Task.DateFinished.HasValue && x.Task.DateCreated.HasValue);
     585    }
     586
     587    public IEnumerable<HiveTask> GetAllHiveTasks() {
     588      if (hiveTasks == null) return Enumerable.Empty<HiveTask>();
     589
     590      var tasks = new List<HiveTask>();
     591      foreach (HiveTask task in HiveTasks) {
     592        tasks.AddRange(task.GetAllHiveTasks());
     593      }
     594      return tasks;
    595595    }
    596596
Note: See TracChangeset for help on using the changeset viewer.