Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/31/17 13:58:50 (7 years ago)
Author:
mkommend
Message:

#2205: Refactored messages in orchestrated algorithm node.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/OptimizationNetworks/HeuristicLab.Networks.IntegratedOptimization/3.3/OrchestratedAlgorithmNode.cs

    r14611 r14624  
    6565    [StorableConstructor]
    6666    protected OrchestratedAlgorithmNode(bool deserializing) : base(deserializing) { }
    67     protected OrchestratedAlgorithmNode(OrchestratedAlgorithmNode original, Cloner cloner) : base(original, cloner) {
     67    protected OrchestratedAlgorithmNode(OrchestratedAlgorithmNode original, Cloner cloner)
     68      : base(original, cloner) {
    6869      EvalHook = cloner.Clone(original.EvalHook);
    6970      RegisterEvents();
    7071    }
    7172    public OrchestratedAlgorithmNode() : this("OrchestratedAlgorithmNode") { }
    72     public OrchestratedAlgorithmNode(string name) : base(name) {
     73    public OrchestratedAlgorithmNode(string name)
     74      : base(name) {
    7375      var orchestrationPort = new MessagePort(OrchestrationPortName);
    7476      Ports.Add(orchestrationPort);
     
    9597    #region Port Events
    9698    private void OrchestrationPort_MessageReceived(object sender, EventArgs<IMessage, CancellationToken> e) {
    97       var message = ((EnumValue<OrchestrationMessage>)e.Value["OrchestrationMessage"]).Value;
     99      var message = e.Value;
     100      var orchestrationMessage = ((EnumValue<OrchestrationMessage>)message["OrchestrationMessage"]).Value;
    98101
    99102      #region Prepare
    100       if (message.HasFlag(OrchestrationMessage.Prepare)) {
     103      if (orchestrationMessage.HasFlag(OrchestrationMessage.Prepare)) {
    101104        switch (Algorithm.ExecutionState) {
    102105          case ExecutionState.Prepared:
     
    107110              var prob = (IHeuristicOptimizationProblem)problemMsgVal.Value.Clone();
    108111
    109               if (message.HasFlag(OrchestrationMessage.SetEvalHook)) {
     112              if (orchestrationMessage.HasFlag(OrchestrationMessage.SetEvalHook)) {
    110113                var instEval = prob.Evaluator as InstrumentedOperator;
    111114                if (instEval != null && EvalHook != null) instEval.AfterExecutionOperators.Add(EvalHook);
     
    137140              }
    138141
    139               Algorithm.Prepare(message.HasFlag(OrchestrationMessage.ClearRuns));
     142              Algorithm.Prepare(orchestrationMessage.HasFlag(OrchestrationMessage.ClearRuns));
    140143            }
    141144            break;
     
    145148
    146149      #region Start
    147       if (message.HasFlag(OrchestrationMessage.Start)) {
     150      if (orchestrationMessage.HasFlag(OrchestrationMessage.Start)) {
    148151        switch (Algorithm.ExecutionState) {
    149152          case ExecutionState.Prepared:
     
    172175
    173176            if (sendResultMessage) {
     177              message["Results"] = (ResultCollection)Algorithm.Results.Clone();
    174178              var msg = OrchestrationPort.PrepareMessage();
    175179              msg["Results"] = (ResultCollection)Algorithm.Results.Clone();
     
    182186
    183187      #region Pause
    184       if (message.HasFlag(OrchestrationMessage.Pause)) {
     188      if (orchestrationMessage.HasFlag(OrchestrationMessage.Pause)) {
    185189        if (Algorithm.ExecutionState == ExecutionState.Started) {
    186190          sendResultMessage = false;
    187191          try {
    188192            Algorithm.Pause();
    189           } catch (InvalidOperationException) {
     193          }
     194          catch (InvalidOperationException) {
    190195            // ExecutionState might have changed since we accepted the message
    191196          }
     
    195200
    196201      #region Stop
    197       if (message.HasFlag(OrchestrationMessage.Stop)) {
     202      if (orchestrationMessage.HasFlag(OrchestrationMessage.Stop)) {
    198203        switch (Algorithm.ExecutionState) {
    199204          case ExecutionState.Started:
     
    201206            try {
    202207              Algorithm.Stop();
    203             } catch (InvalidOperationException) {
     208            }
     209            catch (InvalidOperationException) {
    204210              // ExecutionState might have changed since we accepted the message
    205             } catch (NullReferenceException) {
     211            }
     212            catch (NullReferenceException) {
    206213              // BasicAlgorithm might have stopped since we accepted the message
    207214              // CancellationTokenSource is null in this case
Note: See TracChangeset for help on using the changeset viewer.