...
- Suggestion by Gena on pull / loop approach
Discussion/Conclusion:/
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); } |
- Gena's suggestion for 2D return type (see below)
Discussion/Conclusion: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
...