- Timestamp:
- 04/12/11 13:43:05 (13 years ago)
- Location:
- branches/HeuristicLab.Hive-3.4/sources
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources
- Property svn:ignore
-
old new 4 4 PrecompiledWeb 5 5 CreateEventLogSources 6 WindowsFormsTestProject
-
- Property svn:ignore
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/ExperimentManagerClient.cs
r6000 r6006 145 145 146 146 public static void StartExperiment(Action<Exception> exceptionCallback, HiveExperiment hiveExperiment) { 147 ExperimentManagerClient.StoreAsync(exceptionCallback, hiveExperiment); 147 ExperimentManagerClient.StoreAsync( 148 new Action<Exception>((Exception ex) => { 149 hiveExperiment.ExecutionState = ExecutionState.Prepared; 150 exceptionCallback(ex); 151 }), hiveExperiment); 148 152 hiveExperiment.ExecutionState = ExecutionState.Started; 149 153 } … … 151 155 public static void PauseExperiment(HiveExperiment hiveExperiment) { 152 156 ServiceLocator.Instance.CallHiveService(service => { 153 foreach (HiveJob job in hiveExperiment. HiveJob.GetAllHiveJobs()) {157 foreach (HiveJob job in hiveExperiment.GetAllHiveJobs()) { 154 158 if (job.Job.State != JobState.Finished && job.Job.State != JobState.Aborted && job.Job.State != JobState.Failed) 155 159 service.PauseJob(job.Job.Id); … … 161 165 public static void StopExperiment(HiveExperiment hiveExperiment) { 162 166 ServiceLocator.Instance.CallHiveService(service => { 163 foreach (HiveJob job in hiveExperiment. HiveJob.GetAllHiveJobs()) {167 foreach (HiveJob job in hiveExperiment.GetAllHiveJobs()) { 164 168 if (job.Job.State != JobState.Finished && job.Job.State != JobState.Aborted && job.Job.State != JobState.Failed) 165 169 service.StopJob(job.Job.Id); … … 185 189 } 186 190 187 hiveExperiment.HiveJob.SetIndexInParentOptimizerList(null); 188 189 int totalJobCount = hiveExperiment.HiveJob.GetAllHiveJobs().Count(); 191 foreach (HiveJob hiveJob in hiveExperiment.HiveJobs) { 192 hiveJob.SetIndexInParentOptimizerList(null); 193 } 194 195 // upload HiveExperiment 196 hiveExperiment.Progress.Status = "Uploading HiveExperiment..."; 197 hiveExperiment.Id = service.AddHiveExperiment(hiveExperiment); 198 199 int totalJobCount = hiveExperiment.GetAllHiveJobs().Count(); 190 200 int jobCount = 0; 191 201 202 // upload plugins 192 203 hiveExperiment.Progress.Status = "Uploading plugins..."; 193 204 this.OnlinePlugins = service.GetPlugins(); … … 196 207 this.alreadyUploadedPlugins.Add(configFilePlugin); 197 208 209 // upload jobs 198 210 hiveExperiment.Progress.Status = "Uploading jobs..."; 199 UploadJobWithChildren(hiveExperiment.Progress, service, hiveExperiment.HiveJob, null, resourceIds, ref jobCount, totalJobCount, configFilePlugin.Id, hiveExperiment.UseLocalPlugins); 200 hiveExperiment.RootJobId = hiveExperiment.HiveJob.Job.Id; 201 202 // insert or update HiveExperiment 203 hiveExperiment.Progress.Status = "Uploading HiveExperiment..."; 204 hiveExperiment.Id = service.AddHiveExperiment(hiveExperiment); 211 212 foreach (HiveJob hiveJob in hiveExperiment.HiveJobs) { 213 UploadJobWithChildren(hiveExperiment.Progress, service, hiveJob, null, resourceIds, ref jobCount, totalJobCount, configFilePlugin.Id, hiveExperiment.UseLocalPlugins, hiveExperiment.Id); 214 } 215 205 216 if (hiveExperiment.RefreshAutomatically) hiveExperiment.StartResultPolling(); 206 217 }); … … 239 250 /// <param name="parentHiveJob">shall be null if its the root job</param> 240 251 /// <param name="groups"></param> 241 private void UploadJobWithChildren(IProgress progress, IHiveService service, HiveJob hiveJob, HiveJob parentHiveJob, IEnumerable<Guid> groups, ref int jobCount, int totalJobCount, Guid configPluginId, bool useLocalPlugins ) {252 private void UploadJobWithChildren(IProgress progress, IHiveService service, HiveJob hiveJob, HiveJob parentHiveJob, IEnumerable<Guid> groups, ref int jobCount, int totalJobCount, Guid configPluginId, bool useLocalPlugins, Guid hiveExperimentId) { 242 253 jobCount++; 243 254 progress.Status = string.Format("Serializing job {0} of {1}", jobCount, totalJobCount); … … 259 270 hiveJob.Job.PluginsNeededIds = PluginUtil.GetPluginDependencies(service, this.onlinePlugins, this.alreadyUploadedPlugins, plugins, useLocalPlugins); 260 271 hiveJob.Job.PluginsNeededIds.Add(configPluginId); 272 hiveJob.Job.HiveExperimentId = hiveExperimentId; 261 273 262 274 progress.Status = string.Format("Uploading job {0} of {1} ({2} kb)", jobCount, totalJobCount, jobData.Data.Count() / 1024); … … 270 282 271 283 foreach (HiveJob child in hiveJob.ChildHiveJobs) { 272 UploadJobWithChildren(progress, service, child, hiveJob, groups, ref jobCount, totalJobCount, configPluginId, useLocalPlugins );284 UploadJobWithChildren(progress, service, child, hiveJob, groups, ref jobCount, totalJobCount, configPluginId, useLocalPlugins, hiveExperimentId); 273 285 } 274 286 } … … 276 288 277 289 #region Download Experiment 278 public static void LoadExperiment 290 public static void LoadExperiment(HiveExperiment hiveExperiment) { 279 291 hiveExperiment.Progress = new Progress(); 280 292 try { … … 286 298 // fetch all Job objects to create the full tree of tree of HiveJob objects 287 299 hiveExperiment.Progress.Status = "Downloading list of jobs..."; 288 allJobs = ServiceLocator.Instance.CallHiveService(s => s.GetLightweight ChildJobs(hiveExperiment.RootJobId, true, true));300 allJobs = ServiceLocator.Instance.CallHiveService(s => s.GetLightweightExperimentJobs(hiveExperiment.Id)); 289 301 totalJobCount = allJobs.Count(); 290 302 … … 299 311 IDictionary<Guid, HiveJob> allHiveJobs = downloader.Results; 300 312 301 hiveExperiment.HiveJob = allHiveJobs[hiveExperiment.RootJobId]; 302 303 if (hiveExperiment.HiveJob.Job.DateFinished.HasValue && hiveExperiment.HiveJob.Job.DateCreated.HasValue) { 304 hiveExperiment.ExecutionTime = hiveExperiment.HiveJob.Job.DateFinished.Value - hiveExperiment.HiveJob.Job.DateCreated.Value; 313 hiveExperiment.HiveJobs = new ItemCollection<HiveJob>(allHiveJobs.Values.Where(x => !x.Job.ParentJobId.HasValue)); 314 //hiveExperiment.HiveJobs = allHiveJobs[hiveExperiment.RootJobId]; 315 316 if (hiveExperiment.IsFinished()) { 317 //hiveExperiment.ExecutionTime = hiveExperiment.HiveJobs.Max(.Job.DateFinished.Value - hiveExperiment.HiveJobs.Job.DateCreated.Value; 305 318 //hiveExperiment.lastUpdateTime = hiveExperiment.HiveJob.Job.DateFinished.Value; 306 319 hiveExperiment.ExecutionState = Core.ExecutionState.Stopped; 307 320 //OnStopped(); // todo: stop timer 308 321 } else { 309 hiveExperiment.ExecutionTime = hiveExperiment.HiveJob.Job.DateCreated.HasValue ? DateTime.Now - hiveExperiment.HiveJob.Job.DateCreated.Value : TimeSpan.Zero;322 //hiveExperiment.ExecutionTime = hiveExperiment.HiveJobs.Job.DateCreated.HasValue ? DateTime.Now - hiveExperiment.HiveJobs.Job.DateCreated.Value : TimeSpan.Zero; 310 323 //hiveExperiment.lastUpdateTime = DateTime.Now; 311 324 hiveExperiment.ExecutionState = Core.ExecutionState.Started; 312 325 //OnStarted(); // todo: start timer 313 326 } 327 hiveExperiment.UpdateTotalExecutionTime(); 314 328 315 329 // build child-job tree 316 BuildHiveJobTree(hiveExperiment.HiveJob, allJobs, allHiveJobs); 330 foreach (HiveJob hiveJob in hiveExperiment.HiveJobs) { 331 BuildHiveJobTree(hiveJob, allJobs, allHiveJobs); 332 } 317 333 hiveExperiment.UpdateTotalExecutionTime(); 318 334 319 335 if (hiveExperiment.ExecutionState != ExecutionState.Stopped) { 320 336 hiveExperiment.RefreshAutomatically = true; 321 } 337 } 322 338 } 323 339 finally { -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ExperimentManager/JobResultPoller.cs
r5955 r6006 31 31 private Thread thread; 32 32 33 private HiveJob hiveJob;34 public HiveJob HiveJob{35 get { return hiveJob ; }36 set { hiveJob = value; }33 private IEnumerable<HiveJob> hiveJobs; 34 public IEnumerable<HiveJob> HiveJobs { 35 get { return hiveJobs; } 36 set { hiveJobs = value; } 37 37 } 38 38 … … 54 54 } 55 55 56 public JobResultPoller( HiveJob hiveJob, TimeSpan interval) {56 public JobResultPoller(IEnumerable<HiveJob> hiveJobs, TimeSpan interval) { 57 57 this.isPolling = false; 58 this.hiveJob = hiveJob;58 this.hiveJobs = hiveJobs; 59 59 this.interval = interval; 60 60 } … … 96 96 private void FetchJobResults() { 97 97 ServiceLocator.Instance.CallHiveService(service => { 98 IEnumerable<LightweightJob> response = service.GetLightweightChildJobs(hiveJob.Job.Id, true, true); 99 OnJobResultsReceived(response); 98 var responses = new List<LightweightJob>(); 99 foreach (HiveJob hiveJob in HiveJobs) { 100 responses.AddRange(service.GetLightweightChildJobs(hiveJob.Job.Id, true, true)); 101 } 102 OnJobResultsReceived(responses); 100 103 }); 101 104 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/HeuristicLab.Clients.Hive-3.4.csproj
r5958 r6006 128 128 <Compile Include="Jobs\OptimizerJob.cs" /> 129 129 <Compile Include="HeuristicLabClientsHivePlugin.cs" /> 130 <Compile Include="ExperimentManager\HiveJob Client.cs" />130 <Compile Include="ExperimentManager\HiveJob.cs" /> 131 131 <Compile Include="ExperimentManager\JobResultPoller.cs" /> 132 132 <Compile Include="PersistenceUtil.cs" /> -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveExperiment.cs
r5955 r6006 28 28 using HeuristicLab.Core; 29 29 using HeuristicLab.Optimization; 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 30 31 31 32 namespace HeuristicLab.Clients.Hive { 32 33 [StorableClass] 33 34 public partial class HiveExperiment : IDeepCloneable, IContent, IProgressReporter { 34 35 private JobResultPoller jobResultPoller; 35 36 37 [Storable] 36 38 private bool useLocalPlugins; 37 39 public bool UseLocalPlugins { … … 40 42 } 41 43 44 [Storable] 42 45 private ExecutionState executionState; 43 46 public ExecutionState ExecutionState { … … 51 54 } 52 55 56 [Storable] 53 57 private TimeSpan executionTime; 54 58 public TimeSpan ExecutionTime { … … 62 66 } 63 67 64 private HiveJob hiveJob; 65 public HiveJob HiveJob { 66 get { return hiveJob; } 68 [Storable] 69 private ItemCollection<HiveJob> hiveJobs; 70 public ItemCollection<HiveJob> HiveJobs { 71 get { return hiveJobs; } 67 72 set { 68 DeregisterHiveJobEvents(); 69 if (hiveJob != value) { 70 hiveJob = value; 71 RegisterHiveJobEvents(); 72 OnHiveJobChanged(); 73 } 74 } 75 } 76 73 DeregisterHiveJobsEvents(); 74 if (hiveJobs != value) { 75 hiveJobs = value; 76 RegisterHiveJobsEvents(); 77 OnHiveJobsChanged(); 78 } 79 } 80 } 81 82 [Storable] 77 83 private bool isProgressing; 78 84 public bool IsProgressing { … … 87 93 88 94 /** include jobs when refreshing **/ 95 [Storable] 89 96 private bool includeJobs; 90 97 public bool IncludeJobs { … … 93 100 } 94 101 102 [Storable] 95 103 private bool refreshAutomatically; 96 104 public bool RefreshAutomatically { … … 109 117 } 110 118 119 [Storable] 111 120 private IProgress progress; 112 121 public IProgress Progress { … … 124 133 protected HiveExperiment(HiveExperiment original, Cloner cloner) { 125 134 cloner.RegisterClonedObject(original, this); 126 this.RootJobId = original.RootJobId;127 135 this.OwnerUserId = original.OwnerUserId; 128 136 this.DateCreated = original.DateCreated; … … 158 166 } 159 167 160 public event EventHandler HiveJob Changed;161 private void OnHiveJob Changed() {168 public event EventHandler HiveJobsChanged; 169 private void OnHiveJobsChanged() { 162 170 if (jobResultPoller != null && jobResultPoller.IsPolling) { 163 171 jobResultPoller.Stop(); 164 172 DeregisterResultPollingEvents(); 165 173 } 166 if (HiveJob != null && HiveJob.Job.Id != Guid.Empty) {174 if (HiveJobs != null && HiveJobs.Count > 0 && GetAllHiveJobs().All(x => x.Job.Id != Guid.Empty)) { 167 175 if (this.RefreshAutomatically) 168 176 StartResultPolling(); 169 177 } 170 EventHandler handler = HiveJob Changed;178 EventHandler handler = HiveJobsChanged; 171 179 if (handler != null) handler(this, EventArgs.Empty); 172 180 } … … 185 193 #endregion 186 194 187 private void RegisterHiveJob Events() {188 if (HiveJob!= null) {189 HiveJob.JobStateChanged += new EventHandler(HiveJob_JobStateChanged);190 }191 } 192 193 private void DeregisterHiveJob Events() {194 if (HiveJob!= null) {195 HiveJob.JobStateChanged -= new EventHandler(HiveJob_JobStateChanged);196 }195 private void RegisterHiveJobsEvents() { 196 //if (HiveJobs != null) { 197 // HiveJobs.JobStateChanged += new EventHandler(HiveJob_JobStateChanged); 198 //} 199 } 200 201 private void DeregisterHiveJobsEvents() { 202 //if (HiveJobs != null) { 203 // HiveJobs.JobStateChanged -= new EventHandler(HiveJob_JobStateChanged); 204 //} 197 205 } 198 206 199 207 private void HiveJob_JobStateChanged(object sender, EventArgs e) { 200 if (this.HiveJob != null) { 201 this.RootJobId = HiveJob.Job.Id; 202 } 203 } 204 205 public Experiment GetExperiment() { 206 if (this.HiveJob != null) { 207 return HiveJob.OptimizerJob.OptimizerAsExperiment; 208 //if (this.HiveJobs != null) { 209 // this.RootJobId = HiveJobs.Job.Id; 210 //} 211 } 212 213 public Experiment GetExperiment(int idx) { 214 if (this.HiveJobs != null) { 215 var hj = HiveJobs.ElementAtOrDefault(idx); 216 if (hj != null) 217 return hj.OptimizerJob.OptimizerAsExperiment; 208 218 } 209 219 return null; 210 220 } 211 221 222 public void AddExperiment(Experiment experiment) { 223 if (this.HiveJobs == null) 224 this.HiveJobs = new ItemCollection<HiveJob>(); 225 this.HiveJobs.Add(new HiveJob(experiment)); 226 } 227 212 228 public void SetExperiment(Experiment experiment) { 213 this.HiveJob = new HiveJob(experiment); 229 if (this.HiveJobs == null) 230 this.HiveJobs = new ItemCollection<HiveJob>(); 231 else 232 this.HiveJobs.Clear(); 233 this.HiveJobs.Add(new HiveJob(experiment)); 214 234 } 215 235 … … 225 245 public void StartResultPolling() { 226 246 if (jobResultPoller == null) { 227 jobResultPoller = new JobResultPoller(HiveJob , /*ApplicationConstants.ResultPollingInterval*/new TimeSpan(0, 0, 5)); //TODO: find a better place for ApplicationConstants247 jobResultPoller = new JobResultPoller(HiveJobs, /*ApplicationConstants.ResultPollingInterval*/new TimeSpan(0, 0, 5)); //TODO: find a better place for ApplicationConstants 228 248 RegisterResultPollingEvents(); 229 249 } … … 235 255 236 256 public void StopResultPolling() { 237 if (jobResultPoller .IsPolling) {257 if (jobResultPoller != null && jobResultPoller.IsPolling) { 238 258 jobResultPoller.Stop(); 239 259 } … … 256 276 private void jobResultPoller_JobResultReceived(object sender, EventArgs<IEnumerable<LightweightJob>> e) { 257 277 foreach (LightweightJob lightweightJob in e.Value) { 258 HiveJob hj = hiveJob.GetHiveJobByJobId(lightweightJob.Id);278 HiveJob hj = GetHiveJobById(lightweightJob.Id); 259 279 if (hj != null) { 260 280 DateTime lastJobDataUpdate = hj.Job.LastJobDataUpdate; … … 272 292 } else { 273 293 if (lightweightJob.ParentJobId.HasValue) { 274 HiveJob parentHiveJob = HiveJob.GetHiveJobByJobId(lightweightJob.ParentJobId.Value);294 HiveJob parentHiveJob = GetHiveJobById(lightweightJob.ParentJobId.Value); 275 295 parentHiveJob.UpdateChildOptimizer(optimizerJob, hj.Job.Id); 276 296 } … … 290 310 } 291 311 312 public HiveJob GetHiveJobById(Guid jobId) { 313 foreach (HiveJob job in HiveJobs) { 314 HiveJob hj = job.GetHiveJobByJobId(jobId); 315 if (hj != null) 316 return hj; 317 } 318 return null; 319 } 320 292 321 private void UpdateStats() { 293 var jobs = HiveJob.GetAllHiveJobs();322 var jobs = GetAllHiveJobs(); 294 323 this.JobCount = jobs.Count(); 295 324 this.CalculatingCount = jobs.Count(j => j.Job.State == JobState.Calculating); … … 297 326 } 298 327 299 private bool AllJobsFinished() { 300 return HiveJob.GetAllHiveJobs().All(j => j.Job.State == JobState.Finished 328 public IEnumerable<HiveJob> GetAllHiveJobs() { 329 var jobs = new List<HiveJob>(); 330 foreach (HiveJob job in HiveJobs) { 331 jobs.AddRange(job.GetAllHiveJobs()); 332 } 333 return jobs; 334 } 335 336 public bool AllJobsFinished() { 337 return GetAllHiveJobs().All(j => j.Job.State == JobState.Finished 301 338 || j.Job.State == JobState.Aborted 302 339 || j.Job.State == JobState.Failed); … … 308 345 309 346 public void UpdateTotalExecutionTime() { 310 this.ExecutionTime = TimeSpan.FromMilliseconds( HiveJob.GetAllHiveJobs().Sum(x => x.Job.ExecutionTime.HasValue ? x.Job.ExecutionTime.Value.TotalMilliseconds : 0));347 this.ExecutionTime = TimeSpan.FromMilliseconds(GetAllHiveJobs().Sum(x => x.Job.ExecutionTime.HasValue ? x.Job.ExecutionTime.Value.TotalMilliseconds : 0)); 311 348 } 312 349 #endregion … … 320 357 } 321 358 } 359 360 public bool IsFinished() { 361 return HiveJobs != null 362 && HiveJobs.All(x => x.Job.DateFinished.HasValue && x.Job.DateCreated.HasValue); 363 } 322 364 } 323 365 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/HiveServiceClient.cs
r6000 r6006 352 352 353 353 [System.Runtime.Serialization.OptionalFieldAttribute()] 354 private System.Guid HiveExperimentIdField; 355 356 [System.Runtime.Serialization.OptionalFieldAttribute()] 354 357 private bool IsParentJobField; 355 358 … … 396 399 this.FinishWhenChildJobsFinishedField = value; 397 400 this.RaisePropertyChanged("FinishWhenChildJobsFinished"); 401 } 402 } 403 } 404 405 [System.Runtime.Serialization.DataMemberAttribute()] 406 public System.Guid HiveExperimentId 407 { 408 get 409 { 410 return this.HiveExperimentIdField; 411 } 412 set 413 { 414 if ((this.HiveExperimentIdField.Equals(value) != true)) 415 { 416 this.HiveExperimentIdField = value; 417 this.RaisePropertyChanged("HiveExperimentId"); 398 418 } 399 419 } … … 569 589 private string ResourceNamesField; 570 590 571 [System.Runtime.Serialization.OptionalFieldAttribute()]572 private System.Guid RootJobIdField;573 574 591 [System.Runtime.Serialization.DataMemberAttribute()] 575 592 public int CalculatingCount … … 687 704 this.ResourceNamesField = value; 688 705 this.RaisePropertyChanged("ResourceNames"); 689 }690 }691 }692 693 [System.Runtime.Serialization.DataMemberAttribute()]694 public System.Guid RootJobId695 {696 get697 {698 return this.RootJobIdField;699 }700 set701 {702 if ((this.RootJobIdField.Equals(value) != true))703 {704 this.RootJobIdField = value;705 this.RaisePropertyChanged("RootJobId");706 706 } 707 707 } … … 1732 1732 { 1733 1733 1734 [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/TriggerLifecycle", ReplyAction="http://tempuri.org/IHiveService/TriggerLifecycleResponse")] 1735 void TriggerLifecycle(bool force); 1736 1734 1737 [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/AddAppointment", ReplyAction="http://tempuri.org/IHiveService/AddAppointmentResponse")] 1735 1738 System.Guid AddAppointment(HeuristicLab.Clients.Hive.Appointment appointment); … … 1761 1764 [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightChildJobs", ReplyAction="http://tempuri.org/IHiveService/GetLightweightChildJobsResponse")] 1762 1765 System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightJob> GetLightweightChildJobs(System.Nullable<System.Guid> parentJobId, bool recursive, bool includeParent); 1766 1767 [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetLightweightExperimentJobs", ReplyAction="http://tempuri.org/IHiveService/GetLightweightExperimentJobsResponse")] 1768 System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightJob> GetLightweightExperimentJobs(System.Guid experimentId); 1763 1769 1764 1770 [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetJobData", ReplyAction="http://tempuri.org/IHiveService/GetJobDataResponse")] … … 1867 1873 [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/GetResourceId", ReplyAction="http://tempuri.org/IHiveService/GetResourceIdResponse")] 1868 1874 System.Guid GetResourceId(string resourceName); 1869 1870 [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IHiveService/TriggerLifecycle", ReplyAction="http://tempuri.org/IHiveService/TriggerLifecycleResponse")]1871 void TriggerLifecycle(bool force);1872 1875 } 1873 1876 … … 1906 1909 } 1907 1910 1911 public void TriggerLifecycle(bool force) 1912 { 1913 base.Channel.TriggerLifecycle(force); 1914 } 1915 1908 1916 public System.Guid AddAppointment(HeuristicLab.Clients.Hive.Appointment appointment) 1909 1917 { … … 1956 1964 } 1957 1965 1966 public System.Collections.Generic.List<HeuristicLab.Clients.Hive.LightweightJob> GetLightweightExperimentJobs(System.Guid experimentId) 1967 { 1968 return base.Channel.GetLightweightExperimentJobs(experimentId); 1969 } 1970 1958 1971 public HeuristicLab.Clients.Hive.JobData GetJobData(System.Guid jobId) 1959 1972 { … … 2130 2143 return base.Channel.GetResourceId(resourceName); 2131 2144 } 2132 2133 public void TriggerLifecycle(bool force)2134 {2135 base.Channel.TriggerLifecycle(force);2136 }2137 2145 } 2138 2146 } -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/Job.cs
r5779 r6006 23 23 using System.Collections.Generic; 24 24 using HeuristicLab.Common; 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 26 26 27 namespace HeuristicLab.Clients.Hive { 27 28 28 public partial class Job : LightweightJob { 29 29 … … 38 38 this.IsParentJob = original.IsParentJob; 39 39 this.FinishWhenChildJobsFinished = original.FinishWhenChildJobsFinished; 40 this.HiveExperimentId = original.HiveExperimentId; 40 41 } 41 42 -
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/ServiceClients/LightweightJob.cs
r5786 r6006 26 26 27 27 namespace HeuristicLab.Clients.Hive { 28 29 28 public partial class LightweightJob : IDeepCloneable, IContent { 30 29 public StateLog CurrentStateLog { get { return StateLog.LastOrDefault(); } }
Note: See TracChangeset
for help on using the changeset viewer.