Changeset 5958 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Jobs/OptimizerJob.cs
- Timestamp:
- 04/05/11 17:45:59 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Jobs/OptimizerJob.cs
r5782 r5958 22 22 using System; 23 23 using System.Collections.Generic; 24 using System.Drawing; 24 25 using HeuristicLab.Common; 25 26 using HeuristicLab.Core; … … 31 32 [Item("Optimizer Job", "Represents Job which executes a IOptimizer object.")] 32 33 [StorableClass] 33 public class OptimizerJob : DeepCloneable, IJob {34 public virtualbool IsParallelizable {34 public class OptimizerJob : AbstractJob { 35 public override bool IsParallelizable { 35 36 get { return this.Optimizer is Optimization.Experiment || this.Optimizer is BatchRun; } 36 37 } … … 42 43 set { 43 44 if (value != optimizer) { 44 if (optimizer != null) Deregister Events();45 if (optimizer != null) DeregisterOptimizerEvents(); 45 46 optimizer = value; 46 if (optimizer != null) Register Events();47 if (optimizer != null) RegisterOptimizerEvents(); 47 48 OnOptimizerChanged(); 48 }49 }50 }51 52 [Storable]53 protected ILog log;54 public ILog Log {55 get { return log; }56 }57 58 [Storable]59 protected bool computeInParallel;60 public bool ComputeInParallel {61 get { return computeInParallel; }62 set {63 if (computeInParallel != value) {64 computeInParallel = value;65 OnComputeInParallelChanged();66 49 } 67 50 } … … 75 58 } 76 59 77 [Storable] 78 private bool collectChildJobs; 79 public bool CollectChildJobs { 80 get { return collectChildJobs; } 81 set { collectChildJobs = value; } 82 } 83 84 public OptimizerJob() { 85 this.log = new Log(); 60 public OptimizerJob() : base() { 61 86 62 } 87 63 public OptimizerJob(IOptimizer optimizer) … … 102 78 : base(original, cloner) { 103 79 this.Optimizer = cloner.Clone(original.Optimizer); 104 this.log = cloner.Clone(original.Log);105 this.ComputeInParallel = original.ComputeInParallel;106 80 this.IndexInParentOptimizerList = original.IndexInParentOptimizerList; 107 81 this.CollectChildJobs = original.CollectChildJobs; 108 this.Register Events();82 this.RegisterOptimizerEvents(); 109 83 } 110 84 public override IDeepCloneable Clone(Cloner cloner) { … … 114 88 [StorableHook(HookType.AfterDeserialization)] 115 89 protected virtual void AfterDeserialization() { 116 Register Events();90 RegisterOptimizerEvents(); 117 91 } 118 92 … … 133 107 #region IJob Members 134 108 135 public virtualExecutionState ExecutionState {109 public override ExecutionState ExecutionState { 136 110 get { return optimizer.ExecutionState; } 137 111 } 138 112 139 public TimeSpan ExecutionTime {113 public override TimeSpan ExecutionTime { 140 114 get { return optimizer.ExecutionTime; } 141 115 } 142 116 143 public virtualvoid Prepare() {117 public override void Prepare() { 144 118 optimizer.Prepare(); 145 119 } 146 120 147 public virtualvoid Start() {121 public override void Start() { 148 122 if ((optimizer is Optimization.Experiment && OptimizerAsExperiment.Optimizers.Count == 0) || // experiment would not fire OnStopped if it has 0 optimizers 149 123 (optimizer is Optimization.BatchRun && OptimizerAsBatchRun.Optimizer == null)) { // batchrun would not fire OnStopped if algorithm == null … … 154 128 } 155 129 156 public virtualvoid Pause() {130 public override void Pause() { 157 131 optimizer.Pause(); 158 132 } 159 133 160 public virtualvoid Stop() {134 public override void Stop() { 161 135 optimizer.Stop(); 162 136 } 163 137 164 public virtualvoid Resume(IEnumerable<IJob> childJobs) {138 public override void Resume(IEnumerable<IJob> childJobs) { 165 139 OnJobStopped(); 166 140 } 167 168 public event EventHandler JobStopped;169 protected virtual void OnJobStopped() {170 EventHandler handler = JobStopped;171 if (handler != null) handler(this, EventArgs.Empty);172 }173 174 public event EventHandler JobPaused;175 protected virtual void OnJobPaused() {176 EventHandler handler = JobPaused;177 if (handler != null) handler(this, EventArgs.Empty);178 }179 180 public event EventHandler JobFailed;181 protected virtual void OnJobFailed(EventArgs<Exception> e) {182 EventHandler handler = JobFailed;183 if (handler != null) handler(this, e);184 }185 186 public event EventHandler<EventArgs<IJob>> NewChildJob;187 protected virtual void OnNewChildJob(IJob job) {188 EventHandler<EventArgs<IJob>> handler = NewChildJob;189 if (handler != null) handler(this, new EventArgs<IJob>(job));190 }191 192 public event EventHandler WaitForChildJobs;193 protected virtual void OnWaitForChildJobs() {194 EventHandler handler = WaitForChildJobs;195 if (handler != null) handler(this, EventArgs.Empty);196 }197 198 public event EventHandler DeleteChildJobs;199 protected virtual void OnDeleteChildJobs() {200 EventHandler handler = DeleteChildJobs;201 if (handler != null) handler(this, EventArgs.Empty);202 }203 204 public event EventHandler ComputeInParallelChanged;205 protected virtual void OnComputeInParallelChanged() {206 EventHandler handler = ComputeInParallelChanged;207 if (handler != null) handler(this, EventArgs.Empty);208 }209 210 public event EventHandler OptimizerChanged;211 protected virtual void OnOptimizerChanged() {212 EventHandler handler = OptimizerChanged;213 if (handler != null) handler(this, EventArgs.Empty);214 }215 141 #endregion 216 142 217 143 #region Optimizer Events 218 protected virtual void Register Events() {144 protected virtual void RegisterOptimizerEvents() { 219 145 optimizer.Stopped += new EventHandler(optimizer_Stopped); 220 146 optimizer.Paused += new EventHandler(optimizer_Paused); … … 227 153 } 228 154 229 protected virtual void Deregister Events() {155 protected virtual void DeregisterOptimizerEvents() { 230 156 optimizer.Stopped -= new EventHandler(optimizer_Stopped); 231 157 optimizer.Paused -= new EventHandler(optimizer_Paused); 232 158 optimizer.ExceptionOccurred -= new EventHandler<EventArgs<Exception>>(optimizer_ExceptionOccurred); 233 optimizer.DescriptionChanged -= this.DescriptionChanged;234 optimizer.ItemImageChanged -= this.ItemImageChanged;235 optimizer.NameChanged -= this.NameChanged;236 optimizer.NameChanging -= this.NameChanging;237 optimizer.ToStringChanged -= this.ToStringChanged;238 } 239 240 void optimizer_ToStringChanged(object sender, EventArgs e) {159 optimizer.DescriptionChanged -= new EventHandler(optimizer_DescriptionChanged); 160 optimizer.ItemImageChanged -= new EventHandler(optimizer_ItemImageChanged); 161 optimizer.NameChanged -= new EventHandler(optimizer_NameChanged); 162 optimizer.NameChanging -= new EventHandler<CancelEventArgs<string>>(optimizer_NameChanging); 163 optimizer.ToStringChanged -= new EventHandler(optimizer_ToStringChanged); 164 } 165 166 protected void optimizer_ToStringChanged(object sender, EventArgs e) { 241 167 this.OnToStringChanged(); 242 168 } 243 169 244 void optimizer_NameChanging(object sender, CancelEventArgs<string> e) {170 protected void optimizer_NameChanging(object sender, CancelEventArgs<string> e) { 245 171 this.OnNameChanging(e.Value, e.Cancel); 246 172 } 247 173 248 void optimizer_NameChanged(object sender, EventArgs e) {174 protected void optimizer_NameChanged(object sender, EventArgs e) { 249 175 this.OnNameChanged(); 250 176 } 251 177 252 void optimizer_ItemImageChanged(object sender, EventArgs e) {178 protected void optimizer_ItemImageChanged(object sender, EventArgs e) { 253 179 this.OnItemImageChanged(); 254 180 } 255 181 256 void optimizer_DescriptionChanged(object sender, EventArgs e) {182 protected void optimizer_DescriptionChanged(object sender, EventArgs e) { 257 183 this.OnDescriptionChanged(); 258 184 } … … 273 199 #region INamedItem Members 274 200 275 public bool CanChangeDescription {201 public override bool CanChangeDescription { 276 202 get { return optimizer.CanChangeDescription; } 277 203 } 278 204 279 public bool CanChangeName {205 public override bool CanChangeName { 280 206 get { return optimizer.CanChangeName; } 281 207 } 282 208 283 public string Description {209 public override string Description { 284 210 get { return optimizer.Description; } 285 211 set { optimizer.Description = value; } 286 212 } 287 213 288 public string Name {214 public override string Name { 289 215 get { return optimizer.Name; } 290 216 set { optimizer.Name = value; } 291 217 } 292 218 #endregion 293 294 #region Events 295 public event EventHandler DescriptionChanged; 296 protected virtual void OnDescriptionChanged() { 297 var handler = DescriptionChanged; 298 if (handler != null) handler(this, EventArgs.Empty); 299 } 300 public event EventHandler ItemImageChanged; 301 protected virtual void OnItemImageChanged() { 302 var handler = ItemImageChanged; 303 if (handler != null) handler(this, EventArgs.Empty); 304 } 305 public event EventHandler ToStringChanged; 306 protected virtual void OnToStringChanged() { 307 var handler = ToStringChanged; 308 if (handler != null) handler(this, EventArgs.Empty); 309 } 310 public event EventHandler NameChanged; 311 protected virtual void OnNameChanged() { 312 var handler = NameChanged; 313 if (handler != null) handler(this, EventArgs.Empty); 314 } 315 public event EventHandler<CancelEventArgs<string>> NameChanging; 316 protected virtual void OnNameChanging(string value, bool cancel) { 317 var handler = NameChanging; 318 if (handler != null) handler(this, new CancelEventArgs<string>(value, cancel)); 319 } 320 public event EventHandler ExecutionTimeChanged; 321 protected virtual void OnExecutionTimeChanged() { 322 EventHandler handler = ExecutionTimeChanged; 323 if (handler != null) handler(this, EventArgs.Empty); 324 } 325 public event EventHandler ExecutionStateChanged; 326 protected virtual void OnExecutionStateChanged() { 327 EventHandler handler = ExecutionStateChanged; 328 if (handler != null) handler(this, EventArgs.Empty); 329 } 330 #endregion 331 219 332 220 #region IItem Members 333 221 334 public string ItemDescription {222 public override string ItemDescription { 335 223 get { return optimizer.ItemDescription; } 336 224 } 337 225 338 public System.Drawing.Image ItemImage {226 public override Image ItemImage { 339 227 get { return optimizer.ItemImage; } 340 228 } 341 229 342 public string ItemName {230 public override string ItemName { 343 231 get { return optimizer.ItemName; } 344 232 } 345 233 346 public Version ItemVersion {234 public override Version ItemVersion { 347 235 get { return optimizer.ItemVersion; } 348 236 } 349 350 #endregion 351 352 /// <summary> 353 /// Gets the string representation of the current instance in the format: <c>Name: [null|Value]</c>. 354 /// </summary> 355 /// <returns>The current instance as a string.</returns> 356 public override string ToString() { 357 return Name; 358 } 237 #endregion 359 238 } 360 239 }
Note: See TracChangeset
for help on using the changeset viewer.