Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/05/11 17:45:59 (13 years ago)
Author:
cneumuel
Message:

#1233

  • initial port of HiveEngine
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/Jobs/OptimizerJob.cs

    r5782 r5958  
    2222using System;
    2323using System.Collections.Generic;
     24using System.Drawing;
    2425using HeuristicLab.Common;
    2526using HeuristicLab.Core;
     
    3132  [Item("Optimizer Job", "Represents Job which executes a IOptimizer object.")]
    3233  [StorableClass]
    33   public class OptimizerJob : DeepCloneable, IJob {
    34     public virtual bool IsParallelizable {
     34  public class OptimizerJob : AbstractJob {
     35    public override bool IsParallelizable {
    3536      get { return this.Optimizer is Optimization.Experiment || this.Optimizer is BatchRun; }
    3637    }
     
    4243      set {
    4344        if (value != optimizer) {
    44           if (optimizer != null) DeregisterEvents();
     45          if (optimizer != null) DeregisterOptimizerEvents();
    4546          optimizer = value;
    46           if (optimizer != null) RegisterEvents();
     47          if (optimizer != null) RegisterOptimizerEvents();
    4748          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();
    6649        }
    6750      }
     
    7558    }
    7659
    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     
    8662    }
    8763    public OptimizerJob(IOptimizer optimizer)
     
    10278      : base(original, cloner) {
    10379      this.Optimizer = cloner.Clone(original.Optimizer);
    104       this.log = cloner.Clone(original.Log);
    105       this.ComputeInParallel = original.ComputeInParallel;
    10680      this.IndexInParentOptimizerList = original.IndexInParentOptimizerList;
    10781      this.CollectChildJobs = original.CollectChildJobs;
    108       this.RegisterEvents();
     82      this.RegisterOptimizerEvents();
    10983    }
    11084    public override IDeepCloneable Clone(Cloner cloner) {
     
    11488    [StorableHook(HookType.AfterDeserialization)]
    11589    protected virtual void AfterDeserialization() {
    116       RegisterEvents();
     90      RegisterOptimizerEvents();
    11791    }
    11892
     
    133107    #region IJob Members
    134108
    135     public virtual ExecutionState ExecutionState {
     109    public override ExecutionState ExecutionState {
    136110      get { return optimizer.ExecutionState; }
    137111    }
    138112
    139     public TimeSpan ExecutionTime {
     113    public override TimeSpan ExecutionTime {
    140114      get { return optimizer.ExecutionTime; }
    141115    }
    142116
    143     public virtual void Prepare() {
     117    public override void Prepare() {
    144118      optimizer.Prepare();
    145119    }
    146120
    147     public virtual void Start() {
     121    public override void Start() {
    148122      if ((optimizer is Optimization.Experiment && OptimizerAsExperiment.Optimizers.Count == 0) || // experiment would not fire OnStopped if it has 0 optimizers
    149123          (optimizer is Optimization.BatchRun && OptimizerAsBatchRun.Optimizer == null)) { // batchrun would not fire OnStopped if algorithm == null
     
    154128    }
    155129
    156     public virtual void Pause() {
     130    public override void Pause() {
    157131      optimizer.Pause();
    158132    }
    159133
    160     public virtual void Stop() {
     134    public override void Stop() {
    161135      optimizer.Stop();
    162136    }
    163137
    164     public virtual void Resume(IEnumerable<IJob> childJobs) {
     138    public override void Resume(IEnumerable<IJob> childJobs) {
    165139      OnJobStopped();
    166140    }
    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     }
    215141    #endregion
    216142
    217143    #region Optimizer Events
    218     protected virtual void RegisterEvents() {
     144    protected virtual void RegisterOptimizerEvents() {
    219145      optimizer.Stopped += new EventHandler(optimizer_Stopped);
    220146      optimizer.Paused += new EventHandler(optimizer_Paused);
     
    227153    }
    228154
    229     protected virtual void DeregisterEvents() {
     155    protected virtual void DeregisterOptimizerEvents() {
    230156      optimizer.Stopped -= new EventHandler(optimizer_Stopped);
    231157      optimizer.Paused -= new EventHandler(optimizer_Paused);
    232158      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) {
    241167      this.OnToStringChanged();
    242168    }
    243169
    244     void optimizer_NameChanging(object sender, CancelEventArgs<string> e) {
     170    protected void optimizer_NameChanging(object sender, CancelEventArgs<string> e) {
    245171      this.OnNameChanging(e.Value, e.Cancel);
    246172    }
    247173
    248     void optimizer_NameChanged(object sender, EventArgs e) {
     174    protected void optimizer_NameChanged(object sender, EventArgs e) {
    249175      this.OnNameChanged();
    250176    }
    251177
    252     void optimizer_ItemImageChanged(object sender, EventArgs e) {
     178    protected void optimizer_ItemImageChanged(object sender, EventArgs e) {
    253179      this.OnItemImageChanged();
    254180    }
    255181
    256     void optimizer_DescriptionChanged(object sender, EventArgs e) {
     182    protected void optimizer_DescriptionChanged(object sender, EventArgs e) {
    257183      this.OnDescriptionChanged();
    258184    }
     
    273199    #region INamedItem Members
    274200
    275     public bool CanChangeDescription {
     201    public override bool CanChangeDescription {
    276202      get { return optimizer.CanChangeDescription; }
    277203    }
    278204
    279     public bool CanChangeName {
     205    public override bool CanChangeName {
    280206      get { return optimizer.CanChangeName; }
    281207    }
    282208
    283     public string Description {
     209    public override string Description {
    284210      get { return optimizer.Description; }
    285211      set { optimizer.Description = value; }
    286212    }
    287213
    288     public string Name {
     214    public override string Name {
    289215      get { return optimizer.Name; }
    290216      set { optimizer.Name = value; }
    291217    }
    292218    #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   
    332220    #region IItem Members
    333221
    334     public string ItemDescription {
     222    public override string ItemDescription {
    335223      get { return optimizer.ItemDescription; }
    336224    }
    337225
    338     public System.Drawing.Image ItemImage {
     226    public override Image ItemImage {
    339227      get { return optimizer.ItemImage; }
    340228    }
    341229
    342     public string ItemName {
     230    public override string ItemName {
    343231      get { return optimizer.ItemName; }
    344232    }
    345233
    346     public Version ItemVersion {
     234    public override Version ItemVersion {
    347235      get { return optimizer.ItemVersion; }
    348236    }
    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
    359238  }
    360239}
Note: See TracChangeset for help on using the changeset viewer.