HydroCouple  2.0.0
HydroCouple 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 using namespace std;
30 
31 namespace HydroCouple
32 {
34  namespace Temporal
35  {
40  {
41  public:
42  /*
43  * \brief ~IDateTime destructor.
44  */
45  virtual ~IDateTime() = 0;
46 
50  virtual double julianDay() const = 0;
51  };
52 
56  class ITimeSpan : public virtual IDateTime
57  {
58 
59  public:
63  virtual ~ITimeSpan() = 0;
64 
68  virtual double duration() const = 0;
69  };
70 
75  {
76  public:
80  virtual ~ITimeModelComponent() = 0;
81 
86  virtual IDateTime *currentDateTime() const = 0;
87 
92  virtual ITimeSpan *timeHorizon() const = 0;
93  };
94 
103  {
104  public:
108  virtual ~ITimeComponentDataItem() = 0;
109 
114  virtual list<IDateTime *> times() const = 0;
115 
121  virtual IDateTime *time(int timeIndex) const = 0;
122 
127  virtual int timeCount() const = 0;
128 
132  virtual ITimeSpan *timeSpan() const = 0;
133 
138  virtual IDimension *timeDimension() const = 0;
139  };
140 
145  {
146 
147  using IComponentDataItem::getValue;
148  using IComponentDataItem::setValue;
149 
150  public:
152 
158  virtual void getValue(int timeIndex, void *data) const = 0;
159 
166  virtual void getValues(int timeIndex, int timeStride, void *data) const = 0;
167 
173  virtual void setValue(int timeIndex, const void *data) = 0;
174 
182  virtual void setValues(int timeIndex, int timeStride, const void *data) = 0;
183  };
184 
189  public virtual ITimeComponentDataItem
190  {
191 
192  using IComponentDataItem::getValue;
193  using IComponentDataItem::setValue;
194 
195  public:
196 
201 
206  virtual list<string> identifiers() const = 0;
207 
212  virtual IDimension *identifierDimension() const = 0;
213 
220  virtual void getValue(int timeIndex, int idIndex, void *data) const = 0;
221 
230  virtual void getValues(int timeIndex, int idIndex, int timeStride, int idStride, void *data) const = 0;
231 
238  virtual void setValue(int timeIndex, int idIndex, const void *data) = 0;
239 
249  virtual void setValues(int timeIndex, int idIndex, int timeStride, int idStride, const void *data) = 0;
250  };
251  }
252 }
253 
254 #endif // HYDROCOUPLETEMPORAL_H
IComponentItem is a fundamental unit of data for a component.
Definition: hydrocouple.h:1069
IDimension provides the properties of the dimensions of a variable.
Definition: hydrocouple.h:863
IModelComponent interface is the core interface in the HydroCouple standard defining a model componen...
Definition: hydrocouple.h:333
IPropertyChanged interface is used to emit signal/event when a property of an object changes.
Definition: hydrocouple.h:91
IDateTime interface based on a Julian day.
Definition: hydrocoupletemporal.h:40
virtual double julianDay() const =0
Date and time as a julian day value.
ITimeComponentItem is an IComponentItem with a temporal attribute. This class cannot be directly inst...
Definition: hydrocoupletemporal.h:103
virtual ITimeSpan * timeSpan() const =0
ITimeSpan associated with this dimension.
virtual IDimension * timeDimension() const =0
IDimension of the times.
virtual int timeCount() const =0
timeCount
virtual list< IDateTime * > times() const =0
ITimes associated with this dimension.
virtual IDateTime * time(int timeIndex) const =0
time
virtual ~ITimeComponentDataItem()=0
~ITimeComponentItem destructor.
The ITimeIdBasedComponentDataItem class.
Definition: hydrocoupletemporal.h:190
virtual void setValues(int timeIndex, int idIndex, int timeStride, int idStride, const void *data)=0
Sets a multi-dimensional array of values for given id dimension index and size for a hyperslab.
virtual void getValues(int timeIndex, int idIndex, int timeStride, int idStride, void *data) const =0
Gets a multi-dimensional array of values for given id dimension index and size for a hyperslab.
virtual void getValue(int timeIndex, int idIndex, void *data) const =0
Gets a single value for given id dimension index.
virtual void setValue(int timeIndex, int idIndex, const void *data)=0
Sets a single value for given id dimension index.
virtual list< string > identifiers() const =0
identifiers associated with this dimension.
virtual IDimension * identifierDimension() const =0
idDimensions associated with this dimension.
virtual ~ITimeIdBasedComponentDataItem()=0
~ITimeIdBasedComponentDataItem destructor.
The ITimeModelComponent class.
Definition: hydrocoupletemporal.h:75
virtual ITimeSpan * timeHorizon() const =0
timeHorizon
virtual ~ITimeModelComponent()=0
~ITimeModelComponent
virtual IDateTime * currentDateTime() const =0
currentDateTime
The ITimeSeriesComponentDataItem class.
Definition: hydrocoupletemporal.h:145
virtual void setValues(int timeIndex, int timeStride, const void *data)=0
Sets a multi-dimensional array of values for given time dimension index and size for a hyperslab.
virtual void getValues(int timeIndex, int timeStride, void *data) const =0
Gets a multi-dimensional array of values for given time dimension index and size for a hyperslab.
virtual void getValue(int timeIndex, void *data) const =0
Gets a single value for given time dimension index.
virtual void setValue(int timeIndex, const void *data)=0
Sets a single value for given time dimension index.
ITimeSpan specifies a time duration.
Definition: hydrocoupletemporal.h:57
virtual double duration() const =0
virtual ~ITimeSpan()=0
~ITimeSpan destructor.
HydroCouple namespace contains the core interface specifications for the HydroCouple component-based ...
Definition: hydrocouple.h:50