Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Suggestion by Gena on pull / loop approach
    Discussion/Conclusion: (thumbs up)/(thumbs down) A good idea to introduce the GetValues, to recognize the pull approach. However, instead of on the LinkableComponent it has put on the output item (see above).
Code Block

  // =================================== pull approach

  var triggerExchangeItem = component.OutputItems[0];
  triggerComponent.GetValues(triggerExchangeItem);


  // =================================== loop approach

  while(!allComponentsAreFinished)
  {
      foreach(var component in components)
      {
          if(component.Status != LinkableComponentStatus.Finished)
          {
              component.Update();
          }
      }
  }

  public interface ILinkableComponent
  {
      LinkableComponentStatus Status { get; }
      void Initialize();
      void Validate();
      void Update();
      void Finish();
      IList<IInputItem> InputItems { get; }
      IList<IOutputItem> OutputItems { get; }
      bool CascadeUpdateCallsDisabled { get; set; }

      // Suggestion: ask for specific values: e.g. filtered data
      IList GetValues(IInputExchangeItem query);

  }

  1. Gena's suggestion for 2D return type (see below)
    Discussion/Conclusion: (thumbs down) Not to be included in the standard 2.0. Could be used in the backbone, and probably in later versions of the standard.
Code Block


  public interface IInputItem : IExchangeItem
  {
      IMatrix Values { get; set; }
  }

  public interface IOutputItem : IExchangeItem
  {
      IMatrix Values { get; }
  }

  public interface IMatrix : IList
  {
      int Rows { get; }

      int Columns { get; }

      object GetValue(int row, int column);

      void SetValue(object value, int row, int column);

      object[,] GetValues(int startRow, int endRow, int startColumn, int endColumn);

      void SetValues(object[,] values, int startRow, int endRow, int startColumn, int endColumn);
  }

5. Release 2.0 plan

5.1. Documentation / basic / changes

...