Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/22/11 17:11:27 (13 years ago)
Author:
epitzer
Message:

Automatically generate TCPChannel, ProcessChannel and ServiceClient names form parameters (#1526).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/Drivers/EvaluationProcessChannel.cs

    r5445 r6470  
    3333  public class EvaluationProcessChannel : EvaluationChannel {
    3434
     35    #region Fields & Properties
    3536    private Process process;
    3637    [Storable]
     
    4041      set {
    4142        if (IsInitialized) throw new InvalidOperationException(Name + ": Cannot change the executable path as the process has already been started.");
    42         string oldExecutable = executable;
     43        if (value == executable) return;
    4344        executable = value;
    44         if (!oldExecutable.Equals(executable)) OnExecutableChanged();
     45        UpdateName();
     46        OnExecutableChanged();
    4547      }
    4648    }
     
    5153      set {
    5254        if (IsInitialized) throw new InvalidOperationException(Name + ": Cannot change the arguments as the process has already been started.");
    53         string oldArguments = arguments;
     55        if (value == arguments) return;
    5456        arguments = value;
    55         if (!oldArguments.Equals(arguments)) OnArgumentsChanged();
     57        UpdateName();
     58        OnArgumentsChanged();
    5659      }
    5760    }
    5861    private EvaluationStreamChannel streamingChannel;
     62    #endregion
    5963
     64    #region Construction & Cloning
    6065    [StorableConstructor]
    6166    protected EvaluationProcessChannel(bool deserializing) : base(deserializing) { }
     
    6469      executable = original.executable;
    6570      arguments = original.arguments;
     71      UpdateName();
    6672    }
    6773    public override IDeepCloneable Clone(Cloner cloner) {
     
    7480      this.executable = executable;
    7581      this.arguments = arguments;
     82      UpdateName();
    7683    }
     84    [StorableHook(HookType.AfterDeserialization)]
     85    private void AfterDeserialization() {
     86      UpdateName();
     87    }
     88    #endregion
    7789
    7890    #region IExternalEvaluationChannel Members
    79 
    8091    public override void Open() {
    8192      if (!String.IsNullOrEmpty(executable.Trim())) {
     
    175186    }
    176187    #endregion
     188
     189    #region Auxiliary Methods
     190    private void UpdateName() {
     191      name = string.Format("ProcessChannel {0} {1}", Path.GetFileNameWithoutExtension(executable), arguments);
     192      OnNameChanged();
     193    }
     194    #endregion
    177195  }
    178196}
Note: See TracChangeset for help on using the changeset viewer.