Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/02/10 17:27:24 (14 years ago)
Author:
cneumuel
Message:
  • Made HiveExperiment storable, so that a running HiveExperiment can be disconnected, stored and later resumed. (#1115)
  • Added Log to each JobItem (#1115)
Location:
branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3
Files:
1 added
26 edited

Legend:

Unmodified
Added
Removed
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/AppointmentDto.cs

    r3022 r4133  
    55using System.Runtime.Serialization;
    66using HeuristicLab.DataAccess;
     7using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    78
    89namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    910 
     11  [StorableClass]
    1012  [DataContract]
    1113  public class AppointmentDto: PersistableObject {
     14    [Storable]
    1215    [DataMember]
    1316    public DateTime StartDate { get; set; }
     17    [Storable]
    1418    [DataMember]
    1519    public DateTime EndDate { get; set; }
     20    [Storable]
    1621    [DataMember]
    1722    public bool AllDayEvent { get; set; }
     23    [Storable]
    1824    [DataMember]
    1925    public bool Recurring { get; set; }
     26    [Storable]
    2027    [DataMember]
    2128    public Guid RecurringId { get; set; }
     29    [Storable]
    2230    [DataMember]
    2331    public Guid ResourceId { get; set; }
     32
     33    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     34      AppointmentDto clone = (AppointmentDto)base.Clone(cloner);
     35      clone.AllDayEvent = this.AllDayEvent;
     36      clone.EndDate = this.EndDate;
     37      clone.Recurring = this.Recurring;
     38      clone.RecurringId = this.RecurringId;
     39      clone.ResourceId = this.ResourceId;
     40      clone.StartDate = this.StartDate;
     41      return clone;
     42    }
    2443  }
    2544}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/CachedHivePluginInfoDto.cs

    r4042 r4133  
    2323using System.Collections.Generic;
    2424using System.Text;
     25using System.Linq;
    2526using HeuristicLab.Hive.Contracts.BusinessObjects;
    2627using System.Runtime.Serialization;
    2728using HeuristicLab.PluginInfrastructure.Manager;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2830
    2931namespace HeuristicLab.PluginInfrastructure {
     32  [StorableClass]
    3033  [DataContract]
    3134  [Serializable]
     
    3538    /// stores the plugin files in a list of byte arrays
    3639    /// </summary>
     40    [Storable]
    3741    [DataMember]
    3842    public List<HivePluginFile> PluginFiles { get; set; }
     
    4145      PluginFiles = new List<HivePluginFile>();
    4246    }
     47
     48    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     49      CachedHivePluginInfoDto clone = (CachedHivePluginInfoDto) base.Clone(cloner);
     50      clone.PluginFiles = (from p in this.PluginFiles
     51                          select (HivePluginFile)cloner.Clone(p)).ToList();
     52      return clone;
     53    }
    4354  }
    4455}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ClientConfigDto.cs

    r3011 r4133  
    2626using System.Runtime.Serialization;
    2727using HeuristicLab.DataAccess;
     28using HeuristicLab.Common;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2830
    2931namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    30 
     32  [StorableClass]
    3133  [DataContract]
    3234  [Serializable]
    33   public class ClientConfigDto : PersistableObject {
     35  public class ClientConfigDto : PersistableObject, IDeepCloneable {
     36    [Storable]
    3437    [DataMember]
    3538    public String UpDownTimeCalendar { get; set; }
     39    [Storable]
    3640    [DataMember]
    3741    public int? HeartBeatIntervall { get; set; }
     42
     43    public override IDeepCloneable Clone(Cloner cloner) {
     44      ClientConfigDto clone = (ClientConfigDto)base.Clone(cloner);
     45      clone.UpDownTimeCalendar = this.UpDownTimeCalendar;
     46      clone.HeartBeatIntervall = this.HeartBeatIntervall;
     47      return clone;
     48    }
    3849  }
    3950}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ClientDto.cs

    r4116 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Common;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2729                                   
    2830namespace HeuristicLab.Hive.Contracts.BusinessObjects {
     
    3133  public enum CalendarState { Fetch, ForceFetch, Fetching, Fetched, NotAllowedToFetch };
    3234
     35  [StorableClass]
    3336  [DataContract]
    3437  [Serializable]
    3538  public class ClientDto : ResourceDto {
     39    [Storable]
    3640    [DataMember]
    3741    public int NrOfCores { get; set; }
     42    [Storable]
    3843    [DataMember]
    3944    public int NrOfFreeCores { get; set; }
     45    [Storable]
    4046    [DataMember]
    4147    public int? CpuSpeedPerCore { get; set; }
     48    [Storable]
    4249    [DataMember]
    4350    public int Memory { get; set; }
     51    [Storable]
    4452    [DataMember]
    4553    public int FreeMemory { get; set; }
     54    [Storable]
    4655    [DataMember]
    4756    public DateTime? Login { get; set; }
     57    [Storable]
    4858    [DataMember]
    4959    public State State { get; set; }
     60    [Storable]
    5061    [DataMember]
    5162    public CalendarState CalendarSyncStatus { get; set; }
     63    [Storable]
    5264    [DataMember]
    5365    public ClientConfigDto Config { get; set; }
     
    5668      return base.ToString() + ", NrOfCores: " + NrOfCores + ", NrOfFreeCores " + NrOfFreeCores + ", Login: " + Login + ", State: " + State;
    5769    }
     70
     71    public override IDeepCloneable Clone(Cloner cloner) {
     72      ClientDto clone = (ClientDto)base.Clone(cloner);
     73      clone.CalendarSyncStatus = this.CalendarSyncStatus;
     74      clone.Config = (ClientConfigDto)cloner.Clone(this.Config);
     75      clone.CpuSpeedPerCore = this.CpuSpeedPerCore;
     76      clone.FreeMemory = this.FreeMemory;
     77      clone.Login = this.Login;
     78      clone.Memory = this.Memory;
     79      clone.NrOfCores = this.NrOfCores;
     80      clone.NrOfFreeCores = this.NrOfFreeCores;
     81      clone.State = this.State;
     82      return clone;
     83    }
    5884  }
    5985}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ClientGroupDto.cs

    r3011 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2728
    2829namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    2930
     31  [StorableClass]
    3032  [DataContract]
    3133  public class ClientGroupDto : ResourceDto {
     34    [Storable]
    3235    [DataMember]
    3336    public List<ResourceDto> Resources { get; set; }
     
    3639      Resources = new List<ResourceDto>();
    3740    }
     41
     42    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     43      ClientGroupDto clone = (ClientGroupDto) base.Clone(cloner);
     44      clone.Resources = (from r in this.Resources
     45                        select (ResourceDto)cloner.Clone(r)).ToList();
     46      return clone;
     47    }
    3848  }
    3949}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HivePluginFile.cs

    r4042 r4133  
    44using System.Text;
    55using System.Runtime.Serialization;
     6using HeuristicLab.Common;
     7using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    68
    79namespace HeuristicLab.Hive.Contracts.BusinessObjects {
     10  [StorableClass]
    811  [Serializable]
    912  [DataContract]
    10   public class HivePluginFile {
     13  public class HivePluginFile : IDeepCloneable {
     14    [Storable]
    1115    [DataMember]
    1216    public byte[] BinaryFile { get; set; }
     17    [Storable]
    1318    [DataMember]
    1419    public String Name { get; set; } 
     
    1823      Name = name;
    1924    }
     25
     26    public virtual IDeepCloneable Clone(Cloner cloner) {
     27      HivePluginFile clone = (HivePluginFile)Activator.CreateInstance(this.GetType(), true);
     28      cloner.RegisterClonedObject(this, clone);
     29      clone.Name = this.Name;
     30      if (this.BinaryFile != null) {
     31        clone.BinaryFile = new byte[this.BinaryFile.Length];
     32        Array.Copy(this.BinaryFile, clone.BinaryFile, this.BinaryFile.Length);
     33      }
     34      return clone;
     35    }
     36
     37    public object Clone() {
     38      return Clone(new Cloner());
     39    }
    2040  }
    2141}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HivePluginInfoDto.cs

    r4119 r4133  
    2727using HeuristicLab.DataAccess;
    2828using HeuristicLab.PluginInfrastructure;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2930
    3031namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    31 
     32  [StorableClass]
    3233  [DataContract]
    3334  [Serializable]
    3435  public class HivePluginInfoDto : PersistableObject {
     36    [Storable]
    3537    [DataMember]
    3638    public String Name { get; set; }
     
    3941    public Version Version { get; set; }
    4042
     43    // helper-variable to be able to persist version
     44    [Storable]
     45    private string storableVersion;
     46
     47    public HivePluginInfoDto() { }
     48
     49    public HivePluginInfoDto(bool deserializing) : base(deserializing) { }
     50
     51    [StorableHook(HookType.BeforeSerialization)]
     52    private void BeforeSerialization() {
     53      this.storableVersion = Version.ToString();
     54    }
     55
     56    [StorableHook(HookType.AfterDeserialization)]
     57    private void AfterDeserialization() {
     58      int[] parts = this.storableVersion.Split('.').Select(s => int.Parse(s)).ToArray();
     59      this.Version = new Version(parts[0], parts[1], parts[2], parts[3]);
     60    }
     61
     62    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     63      HivePluginInfoDto clone = (HivePluginInfoDto) base.Clone(cloner);
     64      clone.Name = this.Name;
     65      clone.Version = (Version)this.Version.Clone();
     66      return clone;
     67    }
    4168  }
    4269}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobDto.cs

    r3578 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Common;
    2728using HeuristicLab.DataAccess;
    2829using HeuristicLab.PluginInfrastructure;
     30using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2931
    3032namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    3133
     34  [StorableClass]
    3235  [DataContract]
    3336  [Serializable]
    3437  public class JobDto : PersistableObject {
     38    [Storable]
    3539    [DataMember]
    3640    public State State { get; set; }
     41    [Storable]
    3742    [DataMember]
    3843    public Guid UserId { get; set; }
     44    [Storable]
    3945    [DataMember]
    4046    public ClientDto Client { get; set; }
     47    [Storable]
    4148    [DataMember]
    4249    public JobDto ParentJob { get; set; }
     50    [Storable]
    4351    [DataMember]
    4452    public double? Percentage { get; set; }
     53    [Storable]
    4554    [DataMember]
    4655    public DateTime? DateCreated { get; set; }
     56    [Storable]
    4757    [DataMember]
    4858    public DateTime? DateCalculated { get; set; }
     59    [Storable]
    4960    [DataMember]
    5061    public DateTime? DateFinished { get; set; }
     62    [Storable]
    5163    [DataMember]
    5264    public int Priority { get; set; }
     65    [Storable]
    5366    [DataMember]
    5467    public int CoresNeeded { get; set; }
     68    [Storable]
    5569    [DataMember]
    5670    public int MemoryNeeded { get; set; }
     71    [Storable]
    5772    [DataMember]
    5873    public List<HivePluginInfoDto> PluginsNeeded { get; set; }
     74    [Storable]
    5975    [DataMember]
    6076    public List<Guid> AssignedResourceIds { get; set; }
     77    [Storable]
    6178    [DataMember]
    6279    public ProjectDto Project { get; set; }
     
    7188      AssignedResourceIds = new List<Guid>();
    7289    }
     90
     91    public override IDeepCloneable Clone(Cloner cloner) {
     92      JobDto clone = (JobDto)base.Clone(cloner);
     93      clone.Id = this.Id;
     94      clone.AssignedResourceIds = new List<Guid>(this.AssignedResourceIds);
     95      clone.Client = (ClientDto)cloner.Clone(this.Client);
     96      clone.CoresNeeded = this.CoresNeeded;
     97      clone.DateCalculated = this.DateCalculated;
     98      clone.DateCreated = this.DateCreated;
     99      clone.DateFinished = this.DateFinished;
     100      clone.Id = this.Id;
     101      clone.MemoryNeeded = this.MemoryNeeded;
     102      clone.ParentJob = (JobDto)cloner.Clone(this.ParentJob);
     103      clone.Percentage = this.Percentage;
     104      clone.PluginsNeeded = (from p in this.PluginsNeeded
     105                             select (HivePluginInfoDto)cloner.Clone(p)).ToList();
     106      clone.Priority = this.Priority;
     107      clone.Project = (ProjectDto)cloner.Clone(this.Project);
     108      clone.State = this.State;
     109      clone.UserId = this.UserId;
     110      return clone;
     111    }
    73112  }
    74113}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobResult.cs

    r2099 r4133  
    2626using System.Runtime.Serialization;
    2727using HeuristicLab.DataAccess;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829
    2930namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    3031
     32  // [chn] Where are those JobResults used? would it make sense to use it instead of JobDto for querying Job-Status? Probably yes
     33  // ask gradinger
     34  [StorableClass]
    3135  [DataContract]
    3236  [Serializable]
    3337  public class JobResult : PersistableObject {
     38    [Storable]
    3439    [DataMember]
    3540    public Guid JobId { get; set; }
     41    [Storable]
    3642    [DataMember]
    3743    public double Percentage { get; set; }
     44    [Storable]
    3845    [DataMember]
    3946    public DateTime Timestamp { get; set; }
     47    [Storable]
    4048    [DataMember]
    4149    public Guid ClientId { get; set; }
     50    [Storable]
    4251    [DataMember]
    4352    public Exception Exception { get; set; }
     53    [Storable]
    4454    [DataMember]
    4555    public DateTime DateFinished { get; set; }
     56
     57    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     58      JobResult clone = (JobResult) base.Clone(cloner);
     59      clone.ClientId = this.ClientId;
     60      clone.DateFinished = this.DateFinished;
     61      throw new NotImplementedException("Exception kann nicht serialisiert werden, deshalb irgendwie wrappen... oder nur message (+stacktrace, ...?) speichern");
     62      clone.Exception = this.Exception;
     63      clone.JobId = this.JobId;
     64      clone.Percentage = this.Percentage;
     65      clone.Timestamp = this.Timestamp;
     66      return clone;
     67    }
    4668  }
    4769}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ProjectDto.cs

    r3011 r4133  
    2727using HeuristicLab.DataAccess;
    2828using HeuristicLab.PluginInfrastructure;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2930
    3031namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    31 
     32  [StorableClass]
    3233  [DataContract]
    3334  [Serializable]
    3435  public class ProjectDto : PersistableObject {
     36    [Storable]
    3537    [DataMember]
    3638    public String Name { get; set; }
     39
     40    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     41      ProjectDto clone = (ProjectDto) base.Clone(cloner);
     42      clone.Name = this.Name;
     43      return clone;
     44    }
    3745  }
    3846}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ResourceDto.cs

    r3011 r4133  
    2626using System.Runtime.Serialization;
    2727using HeuristicLab.DataAccess;
     28using HeuristicLab.Common;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2830
    2931namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    30 
     32  [StorableClass]
    3133  [DataContract]
    3234  [Serializable]
    33   public class ResourceDto : PersistableObject {
     35  public class ResourceDto : PersistableObject, IDeepCloneable {
     36    [Storable]
    3437    [DataMember]
    3538    public string Name { get; set; }
     
    3841      return Id + " " + Name;
    3942    }
     43
     44    public virtual IDeepCloneable Clone(Cloner cloner) {
     45      ResourceDto clone = (ResourceDto)base.Clone(cloner);
     46      clone.Name = this.Name;
     47      return clone;
     48    }
    4049  }
    4150}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/SerializedJob.cs

    r3011 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HeuristicLab.Common;
    2729
    2830namespace HeuristicLab.Hive.Contracts.BusinessObjects {
     31  [StorableClass]
    2932  [DataContract]
    3033  [Serializable]
    31   public class SerializedJob {
     34  public class SerializedJob : IDeepCloneable {
     35    [Storable]
    3236    [DataMember]
    3337    public JobDto JobInfo { get; set; }
    34    
     38    [Storable]
    3539    [DataMember]
    3640    public byte[] SerializedJobData { get; set; }
     41
     42    public virtual IDeepCloneable Clone(Cloner cloner) {
     43      SerializedJob clone = (SerializedJob)Activator.CreateInstance(this.GetType(), true);
     44      cloner.RegisterClonedObject(this, clone);
     45      clone.JobInfo = (JobDto)cloner.Clone(this.JobInfo);
     46      clone.SerializedJobData = new byte[this.SerializedJobData.Length];
     47      Array.Copy(this.SerializedJobData, clone.SerializedJobData, this.SerializedJobData.Length);
     48      return clone;
     49    }
     50
     51    public object Clone() {
     52      return Clone(new Cloner());
     53    }
    3754  }
    3855}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/SerializedJobResult.cs

    r2099 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HeuristicLab.Common;
    2729
    2830namespace HeuristicLab.Hive.Contracts.BusinessObjects {
     31  [StorableClass]
    2932  [DataContract]
    3033  [Serializable]
    31   public class SerializedJobResult {
     34  public class SerializedJobResult : IDeepCloneable {
     35    [Storable]
    3236    [DataMember]
    3337    public JobResult JobResult { get; set; }
    34 
     38    [Storable]
    3539    [DataMember]
    3640    public byte[] SerializedJobResultData { get; set; }
     41
     42    public virtual IDeepCloneable Clone(Cloner cloner) {
     43      SerializedJobResult clone = (SerializedJobResult)Activator.CreateInstance(this.GetType(), true);
     44      cloner.RegisterClonedObject(this, clone);
     45      clone.JobResult = (JobResult)cloner.Clone(this.JobResult);
     46      clone.SerializedJobResultData = new byte[this.SerializedJobResultData.Length];
     47      Array.Copy(this.SerializedJobResultData, clone.SerializedJobResultData, this.SerializedJobResultData.Length);
     48      return clone;
     49    }
     50
     51    public object Clone() {
     52      return Clone(new Cloner());
     53    }
    3754  }
    3855}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/UpTimeStatisticsDto.cs

    r3011 r4133  
    2626using System.Runtime.Serialization;
    2727using HeuristicLab.DataAccess;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829
    2930namespace HeuristicLab.Hive.Contracts.BusinessObjects {
    3031
     32  [StorableClass]
    3133  [DataContract]
    3234  public class UpTimeStatisticsDto : PersistableObject {
     35    [Storable]
    3336    [DataMember]
    3437    public ClientDto Client { get; set; }
     38    [Storable]
    3539    [DataMember]
    3640    public DateTime Login { get; set; }
     41    [Storable]
    3742    [DataMember]
    3843    public DateTime Logout { get; set; }
    3944
     45    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     46      UpTimeStatisticsDto clone = (UpTimeStatisticsDto) base.Clone(cloner);
     47      clone.Client = (ClientDto)cloner.Clone(this.Client);
     48      clone.Login = this.Login;
     49      clone.Logout = this.Logout;
     50      return clone;
     51    }
    4052  }
    4153}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/HeuristicLab.Hive.Contracts-3.3.csproj

    r4121 r4133  
    7676  </PropertyGroup>
    7777  <ItemGroup>
     78    <Reference Include="HeuristicLab.Collections-3.3">
     79      <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.Collections-3.3.dll</HintPath>
     80    </Reference>
     81    <Reference Include="HeuristicLab.Common-3.3">
     82      <HintPath>..\..\HeuristicLab.Hive.JobBase\3.3\bin\Debug\HeuristicLab.Common-3.3.dll</HintPath>
     83    </Reference>
     84    <Reference Include="HeuristicLab.Core-3.3">
     85      <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll</HintPath>
     86    </Reference>
     87    <Reference Include="HeuristicLab.Persistence-3.3">
     88      <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.Persistence-3.3.dll</HintPath>
     89    </Reference>
    7890    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
    7991      <HintPath>..\..\..\..\..\..\..\..\..\Programme\HeuristicLab 3.3\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     
    119131    <Compile Include="BusinessObjects\ClientDto.cs" />
    120132    <Compile Include="BusinessObjects\ClientConfigDto.cs" />
     133    <Compile Include="BusinessObjects\ClientGroupDtoList.cs" />
    121134    <Compile Include="RecurrentEvent.cs" />
    122135    <Compile Include="ResponseCalendar.cs" />
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IClientManager.cs

    r3203 r4133  
    4141    ResponseList<ClientGroupDto> GetAllClientGroups();
    4242    [OperationContract]
    43     ResponseObject<List<ClientGroupDto>> GetAllGroupsOfResource(Guid resourceId);
     43    ResponseObject<ClientGroupDtoList> GetAllGroupsOfResource(Guid resourceId);
    4444    [OperationContract]
    4545    ResponseObject<ClientGroupDto> AddClientGroup(ClientGroupDto clientGroup);
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/MessageContainer.cs

    r3203 r4133  
    2424using System.Linq;
    2525using System.Text;
     26using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HeuristicLab.Common;
    2628
    2729namespace HeuristicLab.Hive.Contracts {
     
    3032  /// the actual message itself and the JobId, refered by the message
    3133  /// </summary>
     34  [StorableClass]
    3235  [Serializable]
    33   public class MessageContainer {
     36  public class MessageContainer : IDeepCloneable {
    3437
    3538    public enum MessageType { FetchJob, AbortJob, JobAborted, RequestSnapshot, FinishedJob, NoMessage, SnapshotReady, Shutdown, JobFailed, UptimeLimitDisconnect,
     
    3740    };
    3841
     42    [Storable]
    3943    public MessageType Message { get; set; }
     44    [Storable]
    4045    public Guid JobId { get; set; }
    4146
     
    4449      JobId = Guid.Empty;
    4550    }
     51
    4652    public MessageContainer(MessageType message, Guid jobId) {
    4753      Message = message;
     
    4955    }
    5056
     57    public virtual IDeepCloneable Clone(Cloner cloner) {
     58      MessageContainer clone = (MessageContainer)Activator.CreateInstance(this.GetType(), true);
     59      cloner.RegisterClonedObject(this, clone);
     60      //clone.StatusMessage = this.StatusMessage;
     61      //clone.Success = this.Success;
     62      return clone;
     63    }
     64
     65    public object Clone() {
     66      return Clone(new Cloner());
     67    }
    5168  }
    5269}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Response.cs

    r1939 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HeuristicLab.Common;
    2729
    2830namespace HeuristicLab.Hive.Contracts {
     
    3032  /// Server response class
    3133  /// </summary>
     34  [StorableClass]
    3235  [DataContract]
    3336  [Serializable]
    34   public class Response {
     37  public class Response : IDeepCloneable {
     38    [Storable]
    3539    [DataMember]
    3640    public bool Success { get; set; }
     41    [Storable]
    3742    [DataMember]
    38     public string StatusMessage { get; set; }
     43    public string StatusMessage { get; set; }
     44
     45    public virtual IDeepCloneable Clone(Cloner cloner) {
     46      Response clone = (Response)Activator.CreateInstance(this.GetType(), true);
     47      cloner.RegisterClonedObject(this, clone);
     48      clone.StatusMessage = this.StatusMessage;
     49      clone.Success = this.Success;
     50      return clone;
     51    }
     52
     53    public object Clone() {
     54      return Clone(new Cloner());
     55    }
    3956  }
    4057}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseCalendar.cs

    r3203 r4133  
    55using System.Runtime.Serialization;
    66using HeuristicLab.Hive.Contracts.BusinessObjects;
     7using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    78
    89namespace HeuristicLab.Hive.Contracts {
    9   public class ResponseCalendar: Response {
     10  [StorableClass]
     11  public class ResponseCalendar : Response {
     12    [Storable]
    1013    [DataMember]
    1114    public bool ForceFetch { get; set; }
     15    [Storable]
    1216    [DataMember]
    1317    public IEnumerable<AppointmentDto> Appointments { get; set; }
     18
     19    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     20      ResponseCalendar clone = (ResponseCalendar) base.Clone(cloner);
     21      clone.Appointments = (from a in this.Appointments
     22                           select (AppointmentDto)cloner.Clone(a)).ToList();
     23      clone.ForceFetch = this.ForceFetch;
     24      return clone;
     25    }
    1426  }
    1527}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseHB.cs

    r1530 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2728
    2829namespace HeuristicLab.Hive.Contracts {
     
    3334  /// Return value to hearbeats sent by the client
    3435  /// </summary>
     36  [StorableClass]
    3537  [DataContract]
    3638  public class ResponseHB : Response {
     39    [Storable]
    3740    [DataMember]
    3841    public List<MessageContainer> ActionRequest { get; set; }
     42
     43    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     44      ResponseHB clone = (ResponseHB) base.Clone(cloner);
     45      clone.ActionRequest = (from ar in this.ActionRequest
     46                            select (MessageContainer) cloner.Clone(ar)).ToList();
     47      return clone;
     48    }
    3949  }
    4050}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseJob.cs

    r3011 r4133  
    2626using HeuristicLab.Hive.Contracts.BusinessObjects;
    2727using System.Runtime.Serialization;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829
    2930namespace HeuristicLab.Hive.Contracts {
     
    3334  /// If a client pulls a Job from the server he gets a ResponseJob as answer
    3435  /// </summary>
     36  [StorableClass]
    3537  [DataContract]
    3638  [Serializable]
    3739  public class ResponseJob : Response {
     40    [Storable]
    3841    [DataMember]
    3942    public JobDto Job { get; set; }
     43
     44    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     45      ResponseJob clone = (ResponseJob) base.Clone(cloner);
     46      clone.Job = (JobDto)cloner.Clone(this.Job);
     47      return clone;
     48    }
    4049  }
    4150}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseList.cs

    r1530 r4133  
    2727using System.ServiceModel;
    2828using HeuristicLab.Hive.Contracts.BusinessObjects;
     29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     30using HeuristicLab.Common;
    2931
    3032namespace HeuristicLab.Hive.Contracts {
    31 
     33  [StorableClass]
    3234  [DataContract]
    33   public class ResponseList<T> : Response {
     35  public class ResponseList<T> : Response
     36    where T : IDeepCloneable {
     37    [Storable]
    3438    [DataMember]
    3539    public IList<T> List { get; set; }
    3640
     41    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     42      ResponseList<T> clone = (ResponseList<T>)base.Clone(cloner);
     43      clone.List = (from elem in List
     44                   select (T)cloner.Clone(elem)).ToList();
     45      return clone;
     46    }
    3747  }
    3848}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseObject.cs

    r1530 r4133  
    2525using System.Text;
    2626using System.Runtime.Serialization;
     27using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HeuristicLab.Common;
    2729
    2830namespace HeuristicLab.Hive.Contracts {
    29 
     31  [StorableClass]
    3032  [DataContract]
    31   public class ResponseObject<T> : Response {
     33  public class ResponseObject<T> : Response
     34    where T : IDeepCloneable {
     35    [Storable]
    3236    [DataMember]
    3337    public T Obj { get; set; }
    3438
     39    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     40      ResponseObject<T> clone = (ResponseObject<T>)base.Clone(cloner);
     41      clone.Obj = (T)cloner.Clone(this.Obj);
     42      return clone;
     43    }
    3544  }
    3645}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponsePlugin.cs

    r3011 r4133  
    55using System.Runtime.Serialization;
    66using HeuristicLab.PluginInfrastructure;
     7using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    78
    89namespace HeuristicLab.Hive.Contracts {
    9 
     10  [StorableClass]
    1011  [DataContract]
    1112  [Serializable]
    1213  public class ResponsePlugin : Response {
     14    [Storable]
     15    [DataMember]
     16    public List<CachedHivePluginInfoDto> Plugins { get; set; }
     17
    1318    public ResponsePlugin() {
    1419      Plugins = new List<CachedHivePluginInfoDto>();
    1520    }
    1621
    17     [DataMember]
    18     public List<CachedHivePluginInfoDto> Plugins { get; set; }
     22    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     23      ResponsePlugin clone = (ResponsePlugin) base.Clone(cloner);
     24      clone.Plugins = (from p in Plugins
     25                       select (CachedHivePluginInfoDto)cloner.Clone(p)).ToList();
     26      return clone;
     27    }
    1928  }
    2029}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseResultReceived.cs

    r3011 r4133  
    2626using System.Runtime.Serialization;
    2727using HeuristicLab.Hive.Contracts.BusinessObjects;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829
    2930namespace HeuristicLab.Hive.Contracts {
     31  [StorableClass]
    3032  [DataContract]
    3133  public class ResponseResultReceived : Response {
     34    [Storable]
    3235    [DataMember]
    3336    public Guid JobId { get; set; }
     37    [Storable]
    3438    [DataMember]
    35     public bool finished { get; set; }
     39    public bool Finished { get; set; }
     40
     41    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     42      ResponseResultReceived clone = (ResponseResultReceived) base.Clone(cloner);
     43      clone.Finished = this.Finished;
     44      clone.JobId = this.JobId;
     45      return clone;
     46    }
    3647  }
    3748}
  • branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ResponseSerializedJob.cs

    r2117 r4133  
    2626using HeuristicLab.Hive.Contracts.BusinessObjects;
    2727using System.Runtime.Serialization;
     28using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2829
    2930namespace HeuristicLab.Hive.Contracts {
     
    3334  /// If a client pulls a Job from the server he gets a ResponseJob as answer
    3435  /// </summary>
     36  [StorableClass]
    3537  [DataContract]
    3638  [Serializable]
    3739  public class ResponseSerializedJob : Response {
     40    [Storable]
    3841    [DataMember]
    3942    public SerializedJob Job { get; set; }
     43
     44    public override Common.IDeepCloneable Clone(Common.Cloner cloner) {
     45      ResponseSerializedJob clone = (ResponseSerializedJob) base.Clone(cloner);
     46      clone.Job = (SerializedJob)cloner.Clone(this.Job);
     47      return clone;
     48    }
    4049  }
    4150}
Note: See TracChangeset for help on using the changeset viewer.