HydroCouple  1.0.0
Description of the HydroCouple Component-Based Model Coupling Interface Definitions
hydrocoupletemporal.h
Go to the documentation of this file.
1 
24 #ifndef HYDROCOUPLETEMPORAL_H
25 #define HYDROCOUPLETEMPORAL_H
26 
27 #include "hydrocouple.h"
28 
29 namespace HydroCouple
30 {
32  namespace Temporal
33  {
39  {
40  public:
41 
42  virtual ~IDateTime(){}
43 
47  virtual double modifiedJulianDay() const = 0;
48  };
49 
53  class ITimeSpan : public virtual IDateTime
54  {
55 
56  public:
57 
58  virtual ~ITimeSpan(){}
59 
63  virtual double duration() const = 0;
64  };
65 
70  {
71  public:
72 
74 
79  virtual IDateTime *currentDateTime() const = 0;
80 
85  virtual ITimeSpan *timeHorizon() const = 0;
86  };
87 
96  {
97  public:
98 
103 
108  virtual QList<IDateTime*> times() const = 0;
109 
115  virtual IDateTime* time(int timeIndex) const = 0;
116 
121  virtual int timeCount() const = 0;
122 
126  virtual ITimeSpan* timeSpan() const = 0;
127 
132  virtual IDimension* timeDimension() const = 0;
133  };
134 
139  {
140 
143 
144  public:
145 
147 
153  virtual void getValue(int timeIndex, void *data) const = 0;
154 
161  virtual void getValues(int timeIndex, int timeStride, void *data) const = 0;
162 
168  virtual void setValue(int timeIndex, const void *data) = 0;
169 
177  virtual void setValues(int timeIndex, int timeStride, const void *data) = 0;
178  };
179 
184  public virtual ITimeComponentDataItem
185  {
186 
189 
190  public:
191 
193 
198  virtual QStringList identifiers() const = 0;
199 
204  virtual IDimension* identifierDimension() const = 0;
205 
212  virtual void getValue(int timeIndex, int idIndex, void *data) const = 0;
213 
222  virtual void getValues(int timeIndex, int idIndex, int timeStride, int idStride, void *data) const = 0;
223 
230  virtual void setValue(int timeIndex, int idIndex, const void *data) = 0;
231 
241  virtual void setValues(int timeIndex, int idIndex, int timeStride, int idStride, const void *data) = 0;
242  };
243  }
244 }
245 
246 Q_DECLARE_INTERFACE(HydroCouple::Temporal::IDateTime, "HydroCouple::Temporal::IDateTime/1.0")
247 Q_DECLARE_INTERFACE(HydroCouple::Temporal::ITimeSpan, "HydroCouple::Temporal::ITimeSpan/1.0")
248 Q_DECLARE_INTERFACE(HydroCouple::Temporal::ITimeModelComponent, "HydroCouple::Temporal::ITimeModelComponent/1.0")
249 Q_DECLARE_INTERFACE(HydroCouple::Temporal::ITimeComponentDataItem, "HydroCouple::Temporal::ITimeComponentDataItem/1.0")
250 Q_DECLARE_INTERFACE(HydroCouple::Temporal::ITimeSeriesComponentDataItem, "HydroCouple::Temporal::ITimeSeriesComponentDataItem/1.0")
251 Q_DECLARE_INTERFACE(HydroCouple::Temporal::ITimeIdBasedComponentDataItem, "HydroCouple::Temporal::ITimeIdBasedComponentDataItem/1.0")
252 
253 Q_DECLARE_METATYPE(HydroCouple::Temporal::IDateTime*)
254 Q_DECLARE_METATYPE(QList<HydroCouple::Temporal::IDateTime*>)
255 Q_DECLARE_METATYPE(HydroCouple::Temporal::ITimeSpan*)
256 Q_DECLARE_METATYPE(QList<HydroCouple::Temporal::ITimeSpan*>)
261 
262 #endif // HYDROCOUPLETEMPORAL_H
263 
virtual ~ITimeIdBasedComponentDataItem()
Definition: hydrocoupletemporal.h:192
HydroCouple namespace contains the core interface specifications for the HydroCouple component-based ...
Definition: hydrocouple.h:49
IDateTime interface based on a Modified Julian Date5 (number and fraction of days since 00:00 Novembe...
Definition: hydrocoupletemporal.h:38
The ITimeModelComponent class.
Definition: hydrocoupletemporal.h:69
virtual void setValue(const std::vector< int > &dimensionIndexes, const void *data)=0
Sets a multi-dimensional array of values for given dimension indexes.
virtual ~ITimeComponentDataItem()
~ITimeComponentItem.
Definition: hydrocoupletemporal.h:102
IPropertyChanged interface is used to emit signal/event when a property of an object changes...
Definition: hydrocouple.h:114
virtual ~ITimeSeriesComponentDataItem()
Definition: hydrocoupletemporal.h:146
virtual ~ITimeModelComponent()
Definition: hydrocoupletemporal.h:73
virtual ~ITimeSpan()
Definition: hydrocoupletemporal.h:58
virtual void getValue(const std::vector< int > &dimensionIndexes, void *data) const =0
Gets a multi-dimensional array of value for given dimension indexes. IndexArray = x + y * InSizeX + z...
The ITimeSeriesComponentDataItem class.
Definition: hydrocoupletemporal.h:138
virtual ~IDateTime()
Definition: hydrocoupletemporal.h:42
IModelComponent interface is the core interface in the HydroCouple standard defining a model componen...
Definition: hydrocouple.h:347
IDimension provides the properties of the dimensions of a vairable.
Definition: hydrocouple.h:888
ITimeSpan specifies a time duration.
Definition: hydrocoupletemporal.h:53
ITimeComponentItem is an IComponentItem with a temporal attribute. This class cannot be directly inst...
Definition: hydrocoupletemporal.h:95
The ITimeIdBasedComponentDataItem class.
Definition: hydrocoupletemporal.h:183
IComponentItem is a fundamental unit of data for a component.
Definition: hydrocouple.h:1036
virtual double modifiedJulianDay() const =0
Date and time as a modified julian day value. MJD = JD - 2400000.5.