scrollbar |
---|
See also: OATC Wiki Home
Date: March 9-12, 2009
Venue:Wallingford Software, Howbery Park, Wallingford, Oxfordshire, OX10 8BA, United Kingdom,
...
Standa Vanecek, (chair), DHI (s.vanecek@dhi.cz)
Unknown User (jnh@dhigroup.com) Johan Hartnack , DHI
Adrian Harper, Wallingford Software (adrian.harper@wallingfordsoftware.com)
Stef Hummel, Deltares (stef.hummel@deltares.nl)
~don Unknown User (don) (Gena), Deltares (gennadii.donchyts@deltares.nl)
...
Jan Gregersen, LicTek (gregersen@lictek.dk)
Andrea Antonello, Universita` di Trento, (andrea.antonello@gmail.com)
~onnoroos Unknown User (onnoroos), Alterra (Onno.Roosenschoon@wur.nl)
Peter Schade, Bundesanstalt fuer Wasserbau, Germany (Peter.Schade@BAW.DE)
Jon Goodall, Univ South Carolina (goodall@engr.sc.edu)
Rob Knapen, Alterra (Rob.Knapen@wur.nl)
Peter Gijsbers, Deltares (Peter.Gijsbers@deltares.nl)
...
3.1 Oatc.OpenMI.Sdk.ModelWrapper
Include Page | ||||
---|---|---|---|---|
|
...
- Move IsAvailable to IExchangeItem. Is it only for a thread-safety? If yes than see also ICollection.IsSynchronized
Stef: The question is confusing, the actual issue is that we should distinguish between IsAvailable and IsValid.
We are now realized that there is a difference between IsAvailable (only for output item, means it is for consumers) IsValid (probably for IExchangeItem, meaning if item is valid in the context of current component, maybe updated during Validate() call)?- To discuss lator
- Move Values { get; set; } to IExchangeItem
Stef: alternative would be to add get to the IInputExchangeItem
- get accepted,
- set review lator
- Change ID to Id - .NET Style Guidelines, FxCop
- , it is our intent to follow FxCop guidelines
- Add *params* keyword to IArguments\[\] args parameter in Initialize(IArgument\[\] args).
- Adrian review, if happy then ...
Add IArguments\[\] Arguments \ { get; \ } to ILinkableComponentWiki Markup - Change "string Validate()" to "bool IsValid(IExchangeItem item)"
Gena: probably the second one is not needed if we will have IsValid in IExchangeItem.
string return type in the Validate() has to be changed to void.- Requires review after more experiance with implementing standard
- Add "params IExchangeItem\[\] items" argument to Update() in order to specify explicitly what should be updated.
Can be used for example to run analysis only in geographical specified area
Can help in the optimizing of the buffer
This will improve performance a lot if we call Update(items) via internet
Should we use IExchangeItem there (meaning only value definition, times, elements) or IOutputItem
- as IOutputItem, maybe later generalise to IExchangeItem i.e. allow IInputItem
- Add WaitingForData status to the LinkableComponentStatus
- see previous item
- Remove AddConsumer/RemoveConsumer and use BindingList in the implementation instead to listen to IOutputItem.Consumer.Add() / Remove()
- Not critical yet, so leave for now, review again later
- Temporal ==(rename)==> TimeSet and add Durations, TimeZone properties to it (see also changes from Rob in Java version)
- Rename
- Requires discussion in lator meetings
- When we get loops in the compositions - we have to tell which component will be first! (WHAT SHOULD WE DO IN THIS SITUATAION?) Relevant when implementing the Runner process in GUI
- Revisit in lator meeting
- Replace all ITime, ITimeStamp, ITimeSpan by: System.DateTime, System.TimeSpan. Should be straightforward. For components working in Julian only time in FORTRAN CalendarConverter can be used. But for .NET all nice features of the .NET date time, time span will be available, e.g. DateTime.AddDays(int), DateTime.AddHours(int), time1 > time2, time1.AddDays(1) > DateTime.Now, and so on.
Seems to be very straightforward and simple to implement.**- Review lator (today?)
- Change XYPoint+XYZPoint, ZYPolyline+XYZPolyline => Point, Polyline (make it look more like OGC entities)
- Review OGC methods to see how we know when a Z coordinate exists?
- Split IIdentity into class IIdentifiable { long Id { get; set; } } and class IDescribable { string Caption { get; set; } string Description { get; set; } }
- Splitting interfaces
- Make various interfaces derive from IIdentifiable, to review
- Make ComponentId and InstanceId properties strings - currently it is a bit overkill.
- Properties on ILinkableComponent
- IDescribable InstanceDescription { get; }
- IDescribable ComponentDescription { get; }
- Properties on ILinkableComponent
- Do we need a TimeHorizon in the ILinkableComponent ? Seems to be useless since we have ITemporal
- Move TimeHorizon to ITemporal
- IArgument needs a mechanism for identifying the type of argument e.g. File, Path, int double etc Very usful for providing customised GUI functionality
- Adrian to come up with proposal for next meeting
How IOutputItem.Values can be used, one possible way:
...
- Component1 <>\-\- \ [OutputItem1\] \ -\-> \ [InputItem1\] \ -\-<> Component2
- Component2 updates and sets times, elements, quantity/quality which it needs in the IntputItem1
- Component1 updates and sets new computed values into it's OutputItem1
OutputItem1 (IOutputItem implementation) will check it's Consumers\[\], which are of course IInputItems, and if they are compatible - will set values into themWiki Markup - If IInputItems are not compatible - there should be a DataOperation / Decorator inserted in between (or more than one), or error should be generated.
...
Using empty ElementSet or TimeSet in the InputItem were discussed. This discussion open problems in using of the ElementSets changing in time. See [] Empty Sets in the Input Items - Element set changing in time
Use Case: analytical function
...
- Check ideas mentioned in the poster of Jon Goodall:
Clickable |
---|
Discussions about Times in OpenMI
Please put comments here: Discussion on times, to use or not to use standard .NET times
Include Page | ||||
---|---|---|---|---|
|