Free cookie consent management tool by TermsFeed Policy Generator

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

#1233 applied new cloning mechanism

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive.New/HeuristicLab.Services.Hive.Common/3.3/MessageContainer.cs

    r4629 r4796  
    3131  [StorableClass]
    3232  [Serializable]
    33   public class MessageContainer : IDeepCloneable {
     33  public class MessageContainer : DeepCloneable {
    3434
    3535    public enum MessageType {
     
    6060    public Guid JobId { get; set; }
    6161
     62    protected MessageContainer() { }
    6263    public MessageContainer(MessageType message) {
    6364      Message = message;
    6465      JobId = Guid.Empty;
    6566    }
    66 
    6767    public MessageContainer(MessageType message, Guid jobId) {
    6868      Message = message;
    6969      JobId = jobId;
    7070    }
    71 
    72     public virtual IDeepCloneable Clone(Cloner cloner) {
    73       MessageContainer clone = (MessageContainer)Activator.CreateInstance(this.GetType(), true);
    74       cloner.RegisterClonedObject(this, clone);
    75       clone.Message = this.Message;
    76       clone.JobId = this.JobId;
    77       return clone;
     71    protected MessageContainer(MessageContainer original, Cloner cloner) : base(original, cloner) {
     72      this.Message = original.Message;
     73      this.JobId = original.JobId;
    7874    }
    79 
    80     public object Clone() {
    81       return Clone(new Cloner());
     75    public override IDeepCloneable Clone(Cloner cloner) {
     76      return new MessageContainer(this, cloner);
    8277    }
    8378  }
Note: See TracChangeset for help on using the changeset viewer.