Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/24/14 03:12:49 (9 years ago)
Author:
swagner
Message:

#2205: Continued working on programmable network items

  • allowed code changes only in user-defined nodes and networks
  • added manual initialization of compiled programmable network items
Location:
branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core.Networks/IUserDefinedNetwork.cs

    r11564 r11565  
    2424    new PortCollection Ports { get; }
    2525    new NodeCollection Nodes { get; }
     26
     27    void Initialize();
    2628  }
    2729}
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core.Networks/IUserDefinedNode.cs

    r11564 r11565  
    2323  public interface IUserDefinedNode : IProgrammableNode {
    2424    new PortCollection Ports { get; }
     25
     26    void Initialize();
    2527  }
    2628}
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core.Networks/ProgrammableNetwork.cs

    r11564 r11565  
    103103      }
    104104
     105      public override void Initialize() {
     106        base.Initialize();
     107        Nodes.Clear();
     108      }
     109
    105110      #region Events
    106111      public override void RegisterEvents() {
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core.Networks/ProgrammableNetworkItem.cs

    r11564 r11565  
    100100      get { return ReadCodeTemplate("HeuristicLab.Optimization.Networks.Core.Networks.ProgrammableNetworkItemTemplate.cs"); }
    101101    }
    102 
    103102    [Storable]
    104103    private string code;
     
    106105      get { return code; }
    107106      set {
     107        if (!CanChangeCode) throw new NotSupportedException("Code cannot be changed.");
    108108        if (value != code) {
    109109          code = value;
     
    112112      }
    113113    }
    114 
    115114    private CompilerErrorCollection compileErrors;
    116115    public CompilerErrorCollection CompileErrors {
     
    120119        OnCompileErrorsChanged();
    121120      }
     121    }
     122    public virtual bool CanChangeCode {
     123      get { return false; }
    122124    }
    123125
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core.Networks/ProgrammableNode.cs

    r11564 r11565  
    119119      }
    120120
     121      public override void Initialize() {
     122        base.Initialize();
     123        Ports.Clear();
     124      }
     125
    121126      protected virtual void MessagePort_MessageReceived(object sender, EventArgs<IMessage, CancellationToken> e) { }
    122127
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core.Networks/UserDefinedNetwork.cs

    r11564 r11565  
    3434      get { return base.Nodes; }
    3535    }
     36    public override bool CanChangeCode {
     37      get { return true; }
     38    }
    3639
    3740    [StorableConstructor]
     
    4548      return new UserDefinedNetwork(this, cloner);
    4649    }
     50
     51    public void Initialize() {
     52      CompiledNetworkItem.DeregisterEvents();
     53      CompiledNetworkItem.Initialize();
     54      CompiledNetworkItem.RegisterEvents();
     55    }
    4756  }
    4857}
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core.Networks/UserDefinedNode.cs

    r11564 r11565  
    3030      get { return base.Ports; }
    3131    }
     32    public override bool CanChangeCode {
     33      get { return true; }
     34    }
    3235
    3336    [StorableConstructor]
     
    4144      return new UserDefinedNode(this, cloner);
    4245    }
     46
     47    public void Initialize() {
     48      CompiledNetworkItem.DeregisterEvents();
     49      CompiledNetworkItem.Initialize();
     50      CompiledNetworkItem.RegisterEvents();
     51    }
    4352  }
    4453}
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Core/IProgrammableItem.cs

    r11564 r11565  
    2929    string Code { get; set; }
    3030    CompilerErrorCollection CompileErrors { get; }
     31    bool CanChangeCode { get; }
    3132
    3233    void Compile();
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/HeuristicLab.Optimization.Networks-3.3.csproj

    r11564 r11565  
    153153  </ItemGroup>
    154154  <ItemGroup>
    155     <ProjectReference Include="..\..\HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj">
    156       <Project>{a51da44f-cb35-4f6f-99f5-2a2e904ab93b}</Project>
    157       <Name>HeuristicLab.Algorithms.GeneticAlgorithm-3.3</Name>
    158       <Private>False</Private>
    159     </ProjectReference>
    160155    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    161156      <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>
     
    183178      <Private>False</Private>
    184179    </ProjectReference>
    185     <ProjectReference Include="..\..\HeuristicLab.Encodings.BinaryVectorEncoding\3.3\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj">
    186       <Project>{66d249c3-a01d-42a8-82a2-919bc8ec3d83}</Project>
    187       <Name>HeuristicLab.Encodings.BinaryVectorEncoding-3.3</Name>
    188       <Private>False</Private>
    189     </ProjectReference>
    190     <ProjectReference Include="..\..\HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj">
    191       <Project>{dbecb8b0-b166-4133-baf1-ed67c3fd7fca}</Project>
    192       <Name>HeuristicLab.Encodings.PermutationEncoding-3.3</Name>
    193       <Private>False</Private>
    194     </ProjectReference>
    195180    <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    196181      <Project>{23da7ff4-d5b8-41b6-aa96-f0561d24f3ee}</Project>
     
    216201      <Project>{94186a6a-5176-4402-ae83-886557b53cca}</Project>
    217202      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    218       <Private>False</Private>
    219     </ProjectReference>
    220     <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">
    221       <Project>{3540e29e-4793-49e7-8ee2-fea7f61c3994}</Project>
    222       <Name>HeuristicLab.Problems.Instances-3.3</Name>
    223       <Private>False</Private>
    224     </ProjectReference>
    225     <ProjectReference Include="..\..\HeuristicLab.Problems.Knapsack\3.3\HeuristicLab.Problems.Knapsack-3.3.csproj">
    226       <Project>{e10f395f-c8a6-48ad-b470-9aa7a1f43809}</Project>
    227       <Name>HeuristicLab.Problems.Knapsack-3.3</Name>
    228       <Private>False</Private>
    229     </ProjectReference>
    230     <ProjectReference Include="..\..\HeuristicLab.Problems.TravelingSalesman\3.3\HeuristicLab.Problems.TravelingSalesman-3.3.csproj">
    231       <Project>{d767c38d-8014-46b0-9a32-03a3aecce34a}</Project>
    232       <Name>HeuristicLab.Problems.TravelingSalesman-3.3</Name>
    233203      <Private>False</Private>
    234204    </ProjectReference>
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Optimization.Networks.KSPTSP/KSPTSPConnectorCode.cs

    r11564 r11565  
    2828using System.Drawing;
    2929using System.Linq;
     30using System.Threading;
    3031
    3132namespace HeuristicLab.Optimization.Networks.KSPTSP {
     
    4849
    4950    public override void Initialize() {
     51      base.Initialize();
    5052      var parameters = new MessagePort("Parameters");
    5153      Ports.Add(parameters);
     
    7880    }
    7981
    80     private void Knapsack_MessageReceived(object sender, EventArgs<IMessage, System.Threading.CancellationToken> e) {
     82    private void Knapsack_MessageReceived(object sender, EventArgs<IMessage, CancellationToken> e) {
    8183      // get parameters
    8284      var parametersPort = (IMessagePort)Ports["Parameters"];
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Optimization.Networks.KSPTSP/KSPTSPNetworkCode.cs

    r11564 r11565  
    5353
    5454    public override void Initialize() {
     55      base.Initialize();
     56
    5557      #region ParametersNode
    5658      var paramsNode = new UserDefinedNode("ParametersNode");
  • branches/OptimizationNetworks/HeuristicLab.Optimization.Networks/3.3/Plugin.cs.frame

    r11520 r11565  
    2828  [Plugin("HeuristicLab.Optimization.Networks", "3.3.11.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Optimization.Networks-3.3.dll", PluginFileType.Assembly)]
    30   [PluginDependency("HeuristicLab.Algorithms.GeneticAlgorithm", "3.3")]
    3130  [PluginDependency("HeuristicLab.Collections", "3.3")]
    3231  [PluginDependency("HeuristicLab.Common", "3.3")]
     
    3433  [PluginDependency("HeuristicLab.Core", "3.3")]
    3534  [PluginDependency("HeuristicLab.Data", "3.3")]
    36   [PluginDependency("HeuristicLab.Encodings.BinaryVectorEncoding", "3.3")]
    37   [PluginDependency("HeuristicLab.Encodings.PermutationEncoding", "3.3")]
    3835  [PluginDependency("HeuristicLab.Operators", "3.3")]
    3936  [PluginDependency("HeuristicLab.Optimization", "3.3")]
    4037  [PluginDependency("HeuristicLab.Parameters", "3.3")]
    4138  [PluginDependency("HeuristicLab.Persistence", "3.3")]
    42   [PluginDependency("HeuristicLab.Problems.Knapsack", "3.3")]
    43   [PluginDependency("HeuristicLab.Problems.TravelingSalesman", "3.3")]
    4439  public class HeuristicLabOptimizationNetworksPlugin : PluginBase {
    4540  }
Note: See TracChangeset for help on using the changeset viewer.