- Timestamp:
- 05/06/11 15:08:57 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.ExternalEvaluation/3.3/ExternalEvaluator.cs
r5445 r6140 32 32 [StorableClass] 33 33 public class ExternalEvaluator : ValuesCollector, IExternalEvaluationProblemEvaluator { 34 34 35 public ILookupParameter<DoubleValue> QualityParameter { 35 36 get { return (ILookupParameter<DoubleValue>)Parameters["Quality"]; } … … 43 44 } 44 45 45 pr ivateSolutionMessageBuilder MessageBuilder {46 protected SolutionMessageBuilder MessageBuilder { 46 47 get { return MessageBuilderParameter.Value; } 47 48 } … … 61 62 62 63 public override IOperation Apply() { 64 SolutionMessage message = BuildSolutionMessage(); 65 63 66 IEvaluationServiceClient client = ClientParameter.ActualValue; 67 QualityMessage answer = client.Evaluate(message); 68 69 if (QualityParameter.ActualValue == null) 70 QualityParameter.ActualValue = new DoubleValue(answer.Quality); 71 else QualityParameter.ActualValue.Value = answer.Quality; 72 73 return base.Apply(); 74 } 75 76 protected virtual SolutionMessage BuildSolutionMessage() { 64 77 SolutionMessage.Builder protobufBuilder = SolutionMessage.CreateBuilder(); 65 78 protobufBuilder.SolutionId = 0; … … 71 84 try { 72 85 MessageBuilder.AddToMessage(value, name, protobufBuilder); 73 } 74 catch (ArgumentException ex) { 86 } catch (ArgumentException ex) { 75 87 throw new InvalidOperationException("ERROR in " + Name + ": Parameter " + name + " cannot be added to the message.", ex); 76 88 } 77 89 } 78 90 } 79 QualityMessage answer = client.Evaluate(protobufBuilder.Build()); 80 if (QualityParameter.ActualValue == null) 81 QualityParameter.ActualValue = new DoubleValue(answer.Quality); 82 else QualityParameter.ActualValue.Value = answer.Quality; 83 84 return base.Apply(); 91 return protobufBuilder.Build(); 85 92 } 86 93 }
Note: See TracChangeset
for help on using the changeset viewer.