Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/15/10 14:27:27 (14 years ago)
Author:
cneumuel
Message:

#1233 applied new cloning mechanism

Location:
branches/HeuristicLab.Hive/sources/HeuristicLab.Hive.New/HeuristicLab.Clients.Hive/3.3
Files:
1 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive.New/HeuristicLab.Clients.Hive/3.3/HeuristicLab.Clients.Hive-3.3.csproj

    r4649 r4796  
    8888    <Compile Include="PersistenceUtil.cs" />
    8989    <Compile Include="ServiceClients\ServiceClientFactory.cs" />
    90     <Compile Include="ServiceClients\ServiceClientFactoryException.cs" />
     90    <Compile Include="Exceptions\ServiceClientFactoryException.cs" />
    9191    <Compile Include="ServiceLocator.cs" />
    9292    <Compile Include="Properties\Settings.Designer.cs">
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive.New/HeuristicLab.Clients.Hive/3.3/HiveExperiment/HiveClient.cs

    r4649 r4796  
    3131  using DT = HeuristicLab.Services.Hive.Common.DataTransfer;
    3232  using HeuristicLab.Common;
     33  using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3334
    3435  [Item("Hive Client", "Connects to Hive and lists all submitted experiments by the current user.")]
     
    6768    }
    6869
     70    public HiveClient() { }
     71    protected HiveClient(HiveClient original, Cloner cloner)
     72      : base(original, cloner) {
     73      this.hiveExperiments = cloner.Clone(original.hiveExperiments);
     74    }
     75    public override IDeepCloneable Clone(Cloner cloner) {
     76      return new HiveClient(this, cloner);
     77    }
     78
    6979    private void RegisterHiveExperimentsEvent() {
    7080      if (hiveExperiments != null) {
     
    7787        hiveExperiments.ItemsRemoved -= new CollectionItemsChangedEventHandler<IndexedItem<HiveExperimentClient>>(hiveExperiments_ItemsRemoved);
    7888      }
    79     }
    80 
    81     public HiveClient() {
    82      
    83     }
    84 
    85     public override IDeepCloneable Clone(Cloner cloner) {
    86       HiveClient clone = (HiveClient)base.Clone(cloner);
    87       clone.hiveExperiments = (ItemList<HiveExperimentClient>)cloner.Clone(this.hiveExperiments);
    88       return clone;
    8989    }
    9090
     
    135135      if (handler != null) handler(this, EventArgs.Empty);
    136136    }
    137    
     137
    138138    void hiveExperiments_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs<Collections.IndexedItem<HiveExperimentClient>> e) {
    139139      if (!currentlyUpdating) {
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive.New/HeuristicLab.Clients.Hive/3.3/HiveExperiment/HiveExperimentClient.cs

    r4649 r4796  
    113113    private JobResultPoller jobResultPoller;
    114114
     115
    115116    public HiveExperimentClient()
    116117      : base(itemName, itemDescription) {
     
    120121      InitTimer();
    121122    }
    122 
    123123    public HiveExperimentClient(DT.HiveExperiment hiveExperimentDto)
    124124      : this() {
    125125      UpdateFromDto(hiveExperimentDto);
    126126    }
     127    protected HiveExperimentClient(HiveExperimentClient original, Cloner cloner)
     128      : base(original, cloner) {
     129      this.resourceIds = original.resourceIds;
     130      this.executionState = original.executionState;
     131      this.executionTime = original.executionTime;
     132      this.log = cloner.Clone(original.log);
     133      this.lastUpdateTime = original.lastUpdateTime;
     134      this.rootJobId = original.rootJobId;
     135    }
     136    public override IDeepCloneable Clone(Cloner cloner) {
     137      return new HiveExperimentClient(this, cloner);
     138    }
     139
    127140
    128141    public void UpdateFromDto(DT.HiveExperiment hiveExperimentDto) {
     
    142155        RootJobId = this.rootJobId
    143156      };
    144     }
    145 
    146     public override IDeepCloneable Clone(Cloner cloner) {
    147       LogMessage("I am beeing cloned");
    148       HiveExperimentClient clone = (HiveExperimentClient)base.Clone(cloner);
    149       clone.resourceIds = this.resourceIds;
    150       clone.executionState = this.executionState;
    151       clone.executionTime = this.executionTime;
    152       clone.log = (ILog)cloner.Clone(log);
    153       clone.lastUpdateTime = this.lastUpdateTime;
    154       clone.rootJobId = this.rootJobId;
    155       return clone;
    156157    }
    157158
     
    417418      }
    418419      if (HiveJob != null) {
    419         jobResultPoller = new JobResultPoller(HiveJob, ApplicationConstants.RESULT_POLLING_INTERVAL);
     420        jobResultPoller = new JobResultPoller(HiveJob, ApplicationConstants.ResultPollingInterval);
    420421        RegisterResultPollingEvents();
    421422      }
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive.New/HeuristicLab.Clients.Hive/3.3/HiveExperiment/HiveJobClient.cs

    r4649 r4796  
    3333
    3434namespace HeuristicLab.Clients.Hive {
    35   [StorableClass]
     35
    3636  public class HiveJob : Item {
    3737    private static object locker = new object();
     
    5353    }
    5454
    55     [Storable]
    5655    private Job job;
    5756    public Job Job {
     
    6766    }
    6867
    69     [Storable]
    7068    private OptimizerJob optimizerJob;
    7169    public OptimizerJob OptimizerJob {
     
    8785    }
    8886
    89     [Storable]
    9087    private ItemList<HiveJob> childHiveJobs;
    9188    public ReadOnlyItemList<HiveJob> ChildHiveJobs {
     
    9390    }
    9491
    95     [Storable]
    9692    private bool isFinishedOptimizerDownloaded;
    9793    public bool IsFinishedOptimizerDownloaded {
     
    105101    }
    106102
    107     [Storable]
    108103    private bool syncJobsWithOptimizers = true;
    109104
     
    138133    public HiveJob(IOptimizer optimizer)
    139134      : this() {
    140         this.OptimizerJob = new OptimizerJob(optimizer);
     135      this.OptimizerJob = new OptimizerJob(optimizer);
    141136    }
    142137
     
    147142      this.OptimizerJob = PersistenceUtil.Deserialize<OptimizerJob>(serializedJob.Data);
    148143      this.syncJobsWithOptimizers = true;
     144    }
     145
     146    protected HiveJob(HiveJob original, Cloner cloner)
     147      : base(original, cloner) {
     148      this.Job = cloner.Clone(original.job);
     149      this.OptimizerJob = cloner.Clone(original.OptimizerJob);
     150    }
     151    public override IDeepCloneable Clone(Cloner cloner) {
     152      return new HiveJob(this, cloner);
    149153    }
    150154
     
    212216      }
    213217    }
    214        
     218
    215219    void batchRun_AlgorithmChanged(object sender, EventArgs e) {
    216220      if (syncJobsWithOptimizers) {
     
    484488    }
    485489
    486     public override IDeepCloneable Clone(Cloner cloner) {
    487       LogMessage("I am beeing cloned");
    488       HiveJob clone = (HiveJob)base.Clone(cloner);
    489       clone.job = (Job)cloner.Clone(this.job);
    490       clone.optimizerJob = (OptimizerJob)cloner.Clone(this.optimizerJob);
    491       return clone;
    492     }
    493 
    494490    /// <summary>
    495491    /// Returns a list of HiveJobs including this and all its child-jobs recursively
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive.New/HeuristicLab.Clients.Hive/3.3/Jobs/OptimizerJob.cs

    r4629 r4796  
    2929
    3030namespace HeuristicLab.Clients.Hive.Jobs {
     31  [Item("Optimizer Job", "Represents Job which executes a IOptimizer object.")]
    3132  [StorableClass]
    32   public class OptimizerJob : IJob {
     33  public class OptimizerJob : DeepCloneable, IJob {
    3334    [Storable]
    3435    protected IOptimizer optimizer;
     
    7071    }
    7172
    72 
    7373    [Storable]
    7474    private bool collectChildJobs;
     
    8181      this.log = new Log();
    8282    }
    83 
    8483    public OptimizerJob(IOptimizer optimizer)
    8584      : this() {
     
    9392        this.ComputeInParallel = false;
    9493      }
     94    }
     95    [StorableConstructor]
     96    protected OptimizerJob(bool deserializing) { }
     97    protected OptimizerJob(OptimizerJob original, Cloner cloner)
     98      : base(original, cloner) {
     99      this.Optimizer = cloner.Clone(original.Optimizer);
     100      this.log = cloner.Clone(original.Log);
     101      this.ComputeInParallel = original.ComputeInParallel;
     102      this.IndexInParentOptimizerList = original.IndexInParentOptimizerList;
     103      this.CollectChildJobs = original.CollectChildJobs;
     104      this.RegisterEvents();
     105    }
     106    public override IDeepCloneable Clone(Cloner cloner) {
     107      return new OptimizerJob(this, cloner);
    95108    }
    96109
     
    310323    #endregion
    311324
    312     #region IDeepCloneable Members
    313 
    314     public IDeepCloneable Clone(Cloner cloner) {
    315       OptimizerJob clone = (OptimizerJob)Activator.CreateInstance(this.GetType());
    316       cloner.RegisterClonedObject(this, clone);
    317       clone.Optimizer = (IOptimizer)cloner.Clone(this.Optimizer);
    318       clone.log = (ILog)cloner.Clone(this.Log);
    319       clone.ComputeInParallel = this.ComputeInParallel;
    320       clone.IndexInParentOptimizerList = this.IndexInParentOptimizerList;
    321       clone.CollectChildJobs = this.CollectChildJobs;
    322       clone.RegisterEvents();
    323       return clone;
    324     }
    325 
    326     #endregion
    327 
    328     #region ICloneable Members
    329 
    330     public object Clone() {
    331       return Clone(new Cloner());
    332     }
    333 
    334     #endregion
    335 
    336325    /// <summary>
    337326    /// Gets the string representation of the current instance in the format: <c>Name: [null|Value]</c>.
Note: See TracChangeset for help on using the changeset viewer.