Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/09/10 15:18:53 (13 years ago)
Author:
cneumuel
Message:

#1260

  • applied new cloning mechanism
  • changed role names
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/MessageContainer.cs

    r4424 r4755  
    3232  [Serializable]
    3333  public class MessageContainer : IDeepCloneable {
    34 
    3534    public enum MessageType {
    3635      FetchJob, AbortJob, JobAborted, RequestSnapshot, FinishedJob, NoMessage, SnapshotReady, Shutdown, JobFailed, UptimeLimitDisconnect,
     
    4645    public Guid JobId { get; set; }
    4746
     47    public MessageContainer() { }
    4848    public MessageContainer(MessageType message) {
    4949      Message = message;
    5050      JobId = Guid.Empty;
    5151    }
    52 
    5352    public MessageContainer(MessageType message, Guid jobId) {
    5453      Message = message;
    5554      JobId = jobId;
    5655    }
    57 
     56    [StorableConstructor]
     57    protected MessageContainer(bool deserializing) { }
     58    protected MessageContainer(MessageContainer original, Cloner cloner) {
     59      cloner.RegisterClonedObject(original, this);
     60      this.Message = original.Message;
     61      this.JobId = original.JobId;
     62    }
    5863    public virtual IDeepCloneable Clone(Cloner cloner) {
    59       MessageContainer clone = (MessageContainer)Activator.CreateInstance(this.GetType(), true);
    60       cloner.RegisterClonedObject(this, clone);
    61       clone.Message = this.Message;
    62       clone.JobId = this.JobId;
    63       return clone;
     64      return new MessageContainer(this, cloner);
    6465    }
    65 
    6666    public object Clone() {
    6767      return Clone(new Cloner());
Note: See TracChangeset for help on using the changeset viewer.