Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/SlaveDto.cs @ 4755

Last change on this file since 4755 was 4755, checked in by cneumuel, 13 years ago

#1260

  • applied new cloning mechanism
  • changed role names
File size: 2.9 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System;
23using System.Runtime.Serialization;
24using HeuristicLab.Common;
25using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
26
27namespace HeuristicLab.Hive.Contracts.BusinessObjects {
28  [StorableClass]
29  [DataContract]
30  [Serializable]
31  public class SlaveDto : ResourceDto {
32    [Storable]
33    [DataMember]
34    public int? NrOfCores { get; set; }
35    [Storable]
36    [DataMember]
37    public int? NrOfFreeCores { get; set; }
38    [Storable]
39    [DataMember]
40    public int? CpuSpeedPerCore { get; set; }
41    [Storable]
42    [DataMember]
43    public int? Memory { get; set; }
44    [Storable]
45    [DataMember]
46    public int? FreeMemory { get; set; }
47    [Storable]
48    [DataMember]
49    public DateTime? Login { get; set; }
50    [Storable]
51    [DataMember]
52    public SlaveState State { get; set; }
53    [Storable]
54    [DataMember]
55    public CalendarState CalendarSyncStatus { get; set; }
56    [Storable]
57    [DataMember]
58    public SlaveConfigDto Config { get; set; }
59    [Storable]
60    [DataMember]
61    public bool IsAllowedToCalculate { get; set; }
62
63    public SlaveDto() { }
64    [StorableConstructor]
65    protected SlaveDto(bool deserializing) : base(deserializing) { }
66    protected SlaveDto(SlaveDto original, Cloner cloner)
67      : base(original, cloner) {
68      this.CalendarSyncStatus = original.CalendarSyncStatus;
69      this.Config = cloner.Clone(original.Config);
70      this.CpuSpeedPerCore = original.CpuSpeedPerCore;
71      this.FreeMemory = original.FreeMemory;
72      this.Login = original.Login;
73      this.Memory = original.Memory;
74      this.NrOfCores = original.NrOfCores;
75      this.NrOfFreeCores = original.NrOfFreeCores;
76      this.State = original.State;
77      this.IsAllowedToCalculate = original.IsAllowedToCalculate;
78    }
79    public override IDeepCloneable Clone(Cloner cloner) {
80      return new SlaveDto(this, cloner);
81    }
82
83    public override string ToString() {
84      return base.ToString() + ", NrOfCores: " + NrOfCores + ", NrOfFreeCores " + NrOfFreeCores + ", Login: " + Login + ", State: " + State;
85    }
86  }
87}
Note: See TracBrowser for help on using the repository browser.