Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
scrollbar

See also: OATC Wiki Home

Date: April 21.4 - 23.4, 2009
Venue:DHI, Hørsholm, Agern Allé 5, Denmark

...

Rob Knapen, Alterra, Wageningen UR (Rob.Knapen@wur.nl)
Standa Vanecek, DHI (s.vanecek@dhi.cz)
Adrian Harper, Wallingford Software (adrian.harper@wallingfordsoftware.com)
Stef Hummel, Deltares (stef.hummel@deltares.nl)
~don Unknown User (don), Deltares (gennadii.donchyts@deltares.nl)
Jesper Grooss, DHI (jgr@dhigroup.com)

Apologies:
Peter Schade, BAW (peter.schade@baw.de)
Andrea Antonello (andrea.antonello@hydrologis.eu)
Jan Gregersen, LicTek (gregersen@lictek.dk)
~onnoroos Unknown User (onnoroos), Alterra (Onno.Roosenschoon@wur.nl)
~jnh@dhigroup Unknown User (jnh@dhigroup.com) Johan Hartnack , DHI (jnh@dhigroup.com)

...

  • 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)?

  • Move Values { get; set; } to IExchangeItem?
    • (warning) get; set; to be reviewed at this meeting

      When discussing get/set, the subject of the discussion graduallly moved to the pull versus loop driven approach. This led to an important decision (thumbs up) : We will introduce a boolean argument that indicates whether the component should run in a pull mode (like in OpenMI 1.4) or in loop mode

      : Discuss component operation mode here
  • Wiki MarkupAdd *params* keyword to IArguments\[\] args parameter in Initialize(IArgument\[\] args).
    •  Adrian review, if happy then ... (question)(thumbs up)
  • "string Validate()" / "bool IsValid(IExchangeItem item)" / "IsAvailable()", etc.
    • (warning) to be reviewed at this meeting
  • Wiki Markup(y) Add (thumbs up) Add "params IOutputItem\[\] items" argument to Update() in order to specify explicitly what should be updated.
    • (warning) Maybe generalise to IExchangeItem i.e. allow IInputItem?
  • Remove AddConsumer/RemoveConsumer and use BindingList in the implementation instead to listen to IOutputItem.Consumer.Add() / Remove()

    We will leave AddConsumer/RemoveConsumer for now. The BindingList mechanism has been implemented, though, so anyone can use it

  • When we get loops in the compositions - we have to tell which component will be first! In the new GUI, we will let the user indicate the 'Start up component'.
     
  • Add Durations, TimeZone properties to ITimeSet? (see also changes from Rob in Java version)
  • 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.
    • (warning) all time issues will be discussed at this meeting
       
  • Change XYPoint+XYZPoint, ZYPolyline+XYZPolyline => Point, Polyline (make it look more like OGC entities)
    • Reviewed: OGC approach to see how we know when a Z coordinate exists:
      (thumbs up) IElementSet.SpatialReferenceWkt contains Z (vertical reference) and M systems, see http://en.wikipedia.org/wiki/Well-known_text.
    • To get the M-coordinate, a method should be added:
      Code Block
      java
      java
              ...
              double GetVertexMCoordinate(int elementIndex, int vertexIndex);
              ...
      
              // proposal:
              // the four methods could be replaced with this:
              public enum SpatialDimension { X, Y, Z, M }
              public double getVertexCoordinate(int elementIndex, int vertexIndex, SpatialDimension dim);
      
      

...