HydroCouple  1.0.0
Description of the HydroCouple Component-Based Model Coupling Interface Definitions
hydrocouple.h
Go to the documentation of this file.
1 
23 #ifndef HYDROCOUPLE_H
24 #define HYDROCOUPLE_H
25 
26 #include <QtCore/qglobal.h>
27 #include <QVariant>
28 #include <QSharedPointer>
29 
30 #ifdef HYDROCOUPLE_LIB
31 # define HYDROCOUPLE_EXPORT Q_DECL_EXPORT
32 #else
33 # define HYDROCOUPLE_EXPORT Q_DECL_IMPORT
34 #endif
35 
40 {
41  BigEndian = 0,
43 };
44 
49 namespace HydroCouple
50 {
52  class IModelComponent;
54  class IArgument;
55  class IInput;
56  class IOutput;
57  class IExchangeItem;
58  class IAdaptedOutput;
61  class IUnit;
63  class IWorkflowComponent;
64 
69  {
74 
79 
84 
89 
94 
99 
104 
109  };
110 
115  {
116 
117  public:
118  virtual ~IPropertyChanged() {}
119 
125  signals:
126  virtual void propertyChanged(const QString& propertyName) = 0;
127 
128  };
129 
137  class IDescription : public virtual IPropertyChanged
138  {
139 
140  public:
141  virtual ~IDescription() {}
142 
148  virtual QString caption() const = 0;
149 
156  virtual void setCaption(const QString& caption) = 0;
157 
163  virtual QString description() const = 0;
164 
169  virtual void setDescription(const QString& description) = 0;
170 
171  };
172 
179  class IIdentity : public virtual IDescription
180  {
181  public:
182 
183  virtual ~IIdentity() {}
184 
196  virtual QString id() const = 0;
197 
198  };
199 
207  class IComponentInfo : public virtual IIdentity
208  {
209 
210  public:
211  virtual ~IComponentInfo() {}
212 
217  virtual QString libraryFilePath() const = 0;
218 
223  virtual void setLibraryFilePath(const QString& filePath) = 0;
224 
231  virtual QString iconFilePath() const = 0;
232 
237  virtual QString vendor() const = 0;
238 
243  virtual QStringList documentation() const = 0;
244 
249  virtual QString license() const = 0;
250 
255  virtual QString copyright() const = 0;
256 
261  virtual QString url() const = 0;
262 
267  virtual QString email() const = 0;
268 
273  virtual QString version() const = 0;
274 
281  virtual QString category() const = 0;
282 
287  virtual bool hasValidLicense() const = 0;
288 
300  virtual bool validateLicense(const QString& licenseInfo, QString& validationMessage) = 0;
301 
307  virtual bool validateLicense(QString& validationMessage) = 0;
308  };
309 
318  class IModelComponentInfo : public virtual IComponentInfo
319  {
320 
321  public:
322  virtual ~IModelComponentInfo() {}
323 
328  virtual IModelComponent* createComponentInstance() = 0;
329 
340  virtual QList<IAdaptedOutputFactory*> adaptedOutputFactories() const = 0;
341 
342  };
343 
347  class IModelComponent : public virtual IIdentity
348  {
349 
350  public:
351 
357  {
363 
369 
377 
388 
395 
402 
412 
420 
429 
434 
440 
449 
456 
464  };
465 
469  virtual ~IModelComponent() {}
470 
475  virtual int index() const = 0;
476 
481  virtual void setIndex(int index) = 0;
482 
487  virtual IModelComponentInfo* componentInfo() const = 0;
488 
503  virtual QList<IArgument*> arguments() const = 0;
504 
513  virtual ComponentStatus status() const = 0;
514 
529  virtual QList<IInput*> inputs() const = 0;
530 
550  virtual QList<IOutput*> outputs() const = 0;
551 
575  virtual void initialize() = 0;
576 
601  virtual QList<QString> validate() = 0;
602 
624  virtual void prepare() = 0;
625 
650  virtual void update(const QList<IOutput*>& requiredOutputs = QList<IOutput*>()) = 0;
651 
664  virtual void finish() = 0;
665 
670  virtual const IWorkflowComponent *workflow() const = 0;
671 
676  virtual void setWorkflow(const IWorkflowComponent *workflow) = 0;
677 
682  virtual int mpiNumOfProcesses() const = 0;
683 
688  virtual int mpiProcessRank() const = 0;
689 
694  virtual void mpiSetProcessRank(int processRank) = 0;
695 
700  virtual QSet<int> mpiAllocatedProcesses() const = 0;
701 
706  virtual void mpiAllocateProcesses(const QSet<int> &mpiProcessesToAllocate) = 0;
707 
711  virtual void mpiClearAllocatedProcesses() = 0;
712 
718  virtual int gpuPlatform(int mpiProcess) const = 0;
719 
725  virtual int gpuDevice(int mpiProcess) const = 0;
726 
733  virtual int gpuMaxNumBlocksOrWorkGrps(int mpiProcess) const = 0;
734 
742  virtual void gpuAllocatedResources(int mpiProcess, int gpuPlatform, int gpuDevice, int maxNumGPUBlocksOrWorkGrps) = 0;
743 
747  virtual void gpuClearAllocatedResources() = 0;
748 
757  virtual QString referenceDirectory() const = 0;
758 
764  virtual void setReferenceDirectory(const QString &referenceDirectory) = 0;
765 
766  signals:
767 
774  virtual void componentStatusChanged(const QSharedPointer<IComponentStatusChangeEventArgs> &statusChangedEvent) = 0;
775  };
776 
783  {
784  public:
785 
787 
792  virtual IModelComponent* component() const = 0;
793 
798  virtual HydroCouple::IModelComponent::ComponentStatus previousStatus() const = 0;
799 
804  virtual HydroCouple::IModelComponent::ComponentStatus status() const = 0;
805 
809  virtual QString message() const = 0;
810 
815  virtual bool hasProgressMonitor() const = 0;
816 
821  virtual float percentProgress() const = 0;
822  };
823 
828  {
829  public:
830 
832 
837  virtual ICloneableModelComponent* parent() const = 0;
838 
844  virtual ICloneableModelComponent* clone() = 0;
845 
850  virtual QList<ICloneableModelComponent*> clones() const = 0;
851  };
852 
860  class IValueDefinition : public virtual IDescription
861  {
862  public:
863 
867  virtual ~IValueDefinition() {}
868 
875  virtual QVariant::Type type() const = 0;
876 
878  virtual QVariant missingValue() const = 0;
879 
881  virtual QVariant defaultValue() const = 0;
882 
883  };
884 
888  class IDimension : public virtual IIdentity
889  {
890  public:
891  virtual ~IDimension() {}
892 
893  };
894 
922  class IQuality : public virtual IValueDefinition
923  {
924  public:
925 
926  virtual ~IQuality() {}
927 
933  virtual QList<QVariant> categories() const = 0;
934 
938  virtual bool isOrdered() const = 0;
939  };
940 
944  class IUnitDimensions : public virtual IDescription
945  {
946  public:
947  virtual ~IUnitDimensions() {}
948 
975  virtual double getPower(HydroCouple::FundamentalUnitDimension dimension) = 0;
976  };
977 
981  class IUnit : public virtual IDescription
982  {
983  public:
984 
985  virtual ~IUnit() {}
986 
990  virtual IUnitDimensions* dimensions() const = 0;
991 
995  virtual double conversionFactorToSI() const = 0;
996 
1000  virtual double offsetToSI() const = 0;
1001  };
1002 
1007  class IQuantity : public virtual IValueDefinition
1008  {
1009  public:
1010  virtual ~IQuantity() {}
1011 
1015  virtual IUnit* unit() const = 0;
1016 
1021  virtual QVariant minValue() const = 0;
1022 
1027  virtual QVariant maxValue() const = 0;
1028  };
1029 
1036  class IComponentDataItem : public virtual IIdentity
1037  {
1038  public:
1039 
1041 
1050  virtual IModelComponent* modelComponent() const = 0;
1051 
1058  virtual QList<IDimension*> dimensions() const = 0;
1059 
1069  virtual int dimensionLength(const std::vector<int> &dimensionIndexes) const = 0;
1070 
1075  virtual IValueDefinition* valueDefinition() const = 0;
1076 
1083  virtual void getValue(const std::vector<int> &dimensionIndexes, void *data) const = 0;
1084 
1090  virtual void setValue(const std::vector<int> &dimensionIndexes, const void *data) = 0;
1091 
1096  //virtual bool hasEditor() const = 0;
1097 
1101  //virtual void showEditor() = 0;
1102 
1107  //virtual bool hasViewer() const = 0;
1108 
1112  //virtual void showViewer() = 0;
1113 
1114  };
1115 
1122  class IArgument : public virtual IComponentDataItem
1123  {
1124 
1125  public:
1126 
1128  {
1133 
1137  File
1138  };
1139 
1140  virtual ~IArgument(){}
1141 
1148  virtual bool isOptional() const = 0;
1149 
1157  virtual bool isReadOnly() const = 0;
1158 
1162  virtual QString toString() const = 0;
1163 
1168  virtual void saveData() = 0;
1169 
1175  virtual QStringList fileFilters() const = 0;
1176 
1180  virtual bool canReadFromFile() const = 0;
1181 
1185  virtual bool canReadFromString() const = 0;
1186 
1191  virtual ArgumentIOType currentArgumentIOType() const = 0;
1192 
1200  virtual bool readValues(const QString& value, QString &message, bool isFile = false) = 0;
1201 
1209  virtual bool readValues(const IComponentDataItem* componentDataItem, QString &message) = 0;
1210  };
1211 
1221  {
1222  public:
1224 
1228  virtual IExchangeItem* exchangeItem() const = 0;
1229 
1233  virtual QString message() const = 0;
1234 
1235  };
1236 
1242  class IExchangeItem : public virtual IComponentDataItem
1243  {
1244 
1245  public:
1246  virtual ~IExchangeItem() {}
1247 
1248  signals:
1255  virtual void itemChanged(const QSharedPointer<IExchangeItemChangeEventArgs> &statusChangedEvent) = 0;
1256  };
1257 
1266  class IOutput : public virtual IExchangeItem
1267  {
1268  public:
1269 
1270  virtual ~IOutput() {}
1271 
1283  virtual QList<IInput*> consumers() const = 0;
1284 
1298  virtual void addConsumer(IInput *consumer) = 0;
1299 
1309  virtual bool removeConsumer(IInput *consumer) = 0;
1310 
1320  virtual QList<IAdaptedOutput*> adaptedOutputs() const = 0;
1321 
1334  virtual void addAdaptedOutput(IAdaptedOutput *adaptedOutput) = 0;
1335 
1345  virtual bool removeAdaptedOutput(IAdaptedOutput *adaptedOutput) = 0;
1346 
1361  virtual void updateValues(IInput *querySpecifier) = 0;
1362  };
1363 
1377  class IAdaptedOutput : public virtual IOutput
1378  {
1379  public:
1380  virtual ~IAdaptedOutput() {}
1381 
1389  virtual IAdaptedOutputFactory* adaptedOutputFactory() const = 0;
1390 
1399  virtual QList<IArgument*> arguments() const = 0;
1400 
1411  virtual void initialize() = 0;
1412 
1420  virtual IOutput* adaptee() const = 0;
1421 
1433  virtual void refresh() = 0;
1434  };
1435 
1444  class IAdaptedOutputFactory : public virtual IIdentity
1445  {
1446  public:
1448 
1460  virtual QList<IIdentity*> getAvailableAdaptedOutputIds(const IOutput *provider, const IInput *consumer = nullptr) = 0;
1461 
1473  virtual IAdaptedOutput* createAdaptedOutput(IIdentity* adaptedProviderId, IOutput* provider, IInput* consumer = nullptr) = 0;
1474  };
1475 
1485  {
1486  public:
1487 
1489 
1493  virtual IAdaptedOutputFactoryComponent* createComponentInstance() = 0;
1494  };
1495 
1502  {
1503  public:
1505 
1511  virtual IAdaptedOutputFactoryComponentInfo* componentInfo() const = 0;
1512  };
1513 
1517  class IInput : public virtual IExchangeItem
1518  {
1519  public:
1520  virtual ~IInput() {}
1521 
1525  virtual IOutput* provider() const = 0;
1526 
1532  virtual bool setProvider(IOutput* provider) = 0;
1533 
1540  virtual bool canConsume(IOutput* provider, QString& message) const = 0;
1541  };
1542 
1546  class IMultiInput : public virtual IInput
1547  {
1548  public:
1549  virtual ~IMultiInput(){}
1550 
1555  virtual QList<IOutput*> providers() const = 0;
1556 
1561  virtual bool addProvider(IOutput* provider) = 0;
1562 
1567  virtual bool removeProvider(IOutput* provider) = 0;
1568 
1569  };
1570 
1575  {
1578 
1579  public:
1584 
1589  virtual QStringList identifiers() const = 0;
1590 
1595  virtual IDimension* identifierDimension() const = 0;
1596 
1603  virtual void getValue(int idIndex, void *data) const = 0;
1604 
1611  virtual void getValues(int idIndex, int stride, void *data) const = 0;
1612 
1619  virtual void setValue(int idIndex, const void *data) = 0;
1620 
1628  virtual void setValues(int idIndex, int stride, const void* data) = 0;
1629  };
1630 
1635  {
1636 
1637  public:
1638 
1640 
1645  virtual IWorkflowComponent* createComponentInstance() = 0;
1646  };
1647 
1651  class IWorkflowComponent : public virtual IIdentity
1652  {
1653  public:
1654 
1659  {
1668  Failed
1669  };
1670 
1674  virtual ~IWorkflowComponent() {}
1675 
1680  virtual IWorkflowComponentInfo* componentInfo() const = 0;
1681 
1685  virtual void initialize() = 0;
1686 
1690  virtual void update() = 0;
1691 
1695  virtual void finish() = 0;
1696 
1701  virtual WorkflowStatus status() const = 0;
1702 
1707  virtual QList<IModelComponent*> modelComponents() const = 0;
1708 
1713  virtual void addModelComponent(IModelComponent *component) = 0;
1714 
1719  virtual void removeModelComponent(IModelComponent *component) = 0;
1720 
1721  signals:
1722 
1723  virtual void componentStatusChanged(WorkflowStatus status, const QString &message) = 0;
1724  };
1725 
1726 }
1727 
1728 Q_DECLARE_INTERFACE(HydroCouple::IPropertyChanged, "HydroCouple::IPropertyChanged/1.0")
1729 Q_DECLARE_INTERFACE(HydroCouple::IDescription, "HydroCouple::IDescription/1.0")
1730 Q_DECLARE_INTERFACE(HydroCouple::IIdentity, "HydroCouple::IIdentity/1.0")
1731 Q_DECLARE_INTERFACE(HydroCouple::IComponentInfo, "HydroCouple::IComponentInfo/1.0")
1732 Q_DECLARE_INTERFACE(HydroCouple::IModelComponentInfo, "HydroCouple::IModelComponentInfo/1.0")
1733 Q_DECLARE_INTERFACE(HydroCouple::IComponentStatusChangeEventArgs, "HydroCouple::IComponentStatusChangeEventArgs/1.0")
1734 Q_DECLARE_INTERFACE(HydroCouple::IModelComponent, "HydroCouple::IModelComponent/1.0")
1735 Q_DECLARE_INTERFACE(HydroCouple::IDimension, "HydroCouple::IDimension/1.0")
1736 Q_DECLARE_INTERFACE(HydroCouple::IValueDefinition, "HydroCouple::IValueDefinition/1.0")
1737 Q_DECLARE_INTERFACE(HydroCouple::IQuality, "HydroCouple::IQuality/1.0")
1738 Q_DECLARE_INTERFACE(HydroCouple::IUnitDimensions, "HydroCouple::IUnitDimensions/1.0")
1739 Q_DECLARE_INTERFACE(HydroCouple::IUnit, "HydroCouple::IUnit/1.0")
1740 Q_DECLARE_INTERFACE(HydroCouple::IQuantity, "HydroCouple::IQuality/1.0")
1741 Q_DECLARE_INTERFACE(HydroCouple::IComponentDataItem, "HydroCouple::IComponentDataItem/1.0")
1742 Q_DECLARE_INTERFACE(HydroCouple::IArgument, "HydroCouple::IArgument/1.0")
1743 Q_DECLARE_INTERFACE(HydroCouple::IExchangeItemChangeEventArgs, "HydroCouple::IExchangeItemChangeEventArgs/1.0")
1744 Q_DECLARE_INTERFACE(HydroCouple::IExchangeItem, "HydroCouple::IExchangeItem/1.0")
1745 Q_DECLARE_INTERFACE(HydroCouple::IOutput, "HydroCouple::IOutput/1.0")
1746 Q_DECLARE_INTERFACE(HydroCouple::IAdaptedOutput, "HydroCouple::IAdaptedOutput/1.0")
1747 Q_DECLARE_INTERFACE(HydroCouple::IAdaptedOutputFactory, "HydroCouple::IAdaptedOutputFactory/1.0")
1748 Q_DECLARE_INTERFACE(HydroCouple::IAdaptedOutputFactoryComponentInfo, "HydroCouple::IAdaptedOutputFactoryComponentInfo/1.0")
1749 Q_DECLARE_INTERFACE(HydroCouple::IAdaptedOutputFactoryComponent, "HydroCouple::IAdaptedOutputFactoryComponent/1.0")
1750 Q_DECLARE_INTERFACE(HydroCouple::IInput, "HydroCouple::IInput/1.0")
1751 Q_DECLARE_INTERFACE(HydroCouple::IMultiInput, "HydroCouple::IMultiInput/1.0")
1752 Q_DECLARE_INTERFACE(HydroCouple::IIdBasedComponentDataItem, "HydroCouple::IIdBasedComponentDataItem/1.0")
1753 Q_DECLARE_INTERFACE(HydroCouple::IWorkflowComponentInfo, "HydroCouple::IWorkflowComponentInfo/1.0")
1754 Q_DECLARE_INTERFACE(HydroCouple::IWorkflowComponent, "HydroCouple::IWorkflowComponent/1.0")
1755 
1756 //Metatype
1758 Q_DECLARE_METATYPE(HydroCouple::IPropertyChanged*)
1759 Q_DECLARE_METATYPE(HydroCouple::IDescription*)
1760 Q_DECLARE_METATYPE(HydroCouple::IIdentity*)
1761 Q_DECLARE_METATYPE(QList<HydroCouple::IIdentity*>)
1762 Q_DECLARE_METATYPE(HydroCouple::IComponentInfo*)
1763 Q_DECLARE_METATYPE(QList<HydroCouple::IComponentInfo*>)
1764 Q_DECLARE_METATYPE(HydroCouple::IModelComponentInfo*)
1765 Q_DECLARE_METATYPE(QList<HydroCouple::IModelComponentInfo*>)
1767 Q_DECLARE_METATYPE(QSharedPointer<HydroCouple::IComponentStatusChangeEventArgs>)
1768 Q_DECLARE_METATYPE(HydroCouple::IModelComponent*)
1769 Q_DECLARE_METATYPE(QList<HydroCouple::IModelComponent*>)
1770 Q_DECLARE_METATYPE(HydroCouple::IDimension*)
1771 Q_DECLARE_METATYPE(QList<HydroCouple::IDimension*>)
1772 Q_DECLARE_METATYPE(HydroCouple::IValueDefinition*)
1773 Q_DECLARE_METATYPE(HydroCouple::IQuality*)
1774 Q_DECLARE_METATYPE(HydroCouple::IUnitDimensions*)
1775 Q_DECLARE_METATYPE(HydroCouple::IUnit*)
1776 Q_DECLARE_METATYPE(HydroCouple::IQuantity*)
1777 Q_DECLARE_METATYPE(HydroCouple::IComponentDataItem*)
1778 Q_DECLARE_METATYPE(QList<HydroCouple::IComponentDataItem*>)
1779 Q_DECLARE_METATYPE(HydroCouple::IArgument*)
1780 Q_DECLARE_METATYPE(QList<HydroCouple::IArgument*>)
1781 Q_DECLARE_METATYPE(HydroCouple::IExchangeItemChangeEventArgs*)
1782 Q_DECLARE_METATYPE(QSharedPointer<HydroCouple::IExchangeItemChangeEventArgs>)
1783 Q_DECLARE_METATYPE(HydroCouple::IExchangeItem*)
1784 Q_DECLARE_METATYPE(QList<HydroCouple::IExchangeItem*>)
1785 Q_DECLARE_METATYPE(HydroCouple::IOutput*)
1786 Q_DECLARE_METATYPE(QList<HydroCouple::IOutput*>)
1787 Q_DECLARE_METATYPE(HydroCouple::IAdaptedOutput*)
1788 Q_DECLARE_METATYPE(QList<HydroCouple::IAdaptedOutput*>)
1789 Q_DECLARE_METATYPE(HydroCouple::IAdaptedOutputFactory*)
1790 Q_DECLARE_METATYPE(QList<HydroCouple::IAdaptedOutputFactory*>)
1792 Q_DECLARE_METATYPE(QList<HydroCouple::IAdaptedOutputFactoryComponentInfo*>)
1794 Q_DECLARE_METATYPE(QList<HydroCouple::IAdaptedOutputFactoryComponent*>)
1795 Q_DECLARE_METATYPE(HydroCouple::IInput*)
1796 Q_DECLARE_METATYPE(QList<HydroCouple::IInput*>)
1797 Q_DECLARE_METATYPE(HydroCouple::IMultiInput*)
1798 Q_DECLARE_METATYPE(QList<HydroCouple::IMultiInput*>)
1799 Q_DECLARE_METATYPE(HydroCouple::IIdBasedComponentDataItem*)
1800 Q_DECLARE_METATYPE(QList<HydroCouple::IIdBasedComponentDataItem*>)
1801 Q_DECLARE_METATYPE(HydroCouple::IWorkflowComponentInfo*)
1802 Q_DECLARE_METATYPE(HydroCouple::IWorkflowComponent*)
1803 
1804 #endif // HYDROCOUPLE_H
1805 
virtual ~IWorkflowComponentInfo()
Definition: hydrocouple.h:1639
The last update process that the IModelComponent performed was the final one. A next call to the Hydr...
Definition: hydrocouple.h:439
The IComponentStatusChangeEventArgs contains the information that will be passed when the IModelCompo...
Definition: hydrocouple.h:782
Fundamental dimension for temperature.
Definition: hydrocouple.h:93
Definition: hydrocouple.h:1664
Definition: hydrocouple.h:1660
Definition: hydrocouple.h:1666
virtual ~IComponentStatusChangeEventArgs()
Definition: hydrocouple.h:786
The IModelComponent was requested to perform the actions to be perform before it will either be dispo...
Definition: hydrocouple.h:463
virtual ~IArgument()
Definition: hydrocouple.h:1140
Fundamental dimension for amount of substance.
Definition: hydrocouple.h:98
ComponentStatus
HydroCouple::ComponentStatus is an enumerator that describes the status of a component over the cours...
Definition: hydrocouple.h:356
The IIdBasedComponentItem class is an idbased IComponentItem.
Definition: hydrocouple.h:1574
virtual ~IIdentity()
Definition: hydrocouple.h:183
Fundamental dimension for mass.
Definition: hydrocouple.h:78
Defines the order of dimension in each FundamentalDimension for a unit.
Definition: hydrocouple.h:944
virtual ~IMultiInput()
Definition: hydrocouple.h:1549
The IDataExchangeWorkflowComponentInfo class.
Definition: hydrocouple.h:1634
Qualitative data described items in terms of some quality or categorization that may be &#39;informal&#39; or...
Definition: hydrocouple.h:922
virtual ~IModelComponentInfo()
Definition: hydrocouple.h:322
HydroCouple namespace contains the core interface specifications for the HydroCouple component-based ...
Definition: hydrocouple.h:49
Definition: hydrocouple.h:1662
IExchangeItem the base data item the can be exchanged between components at runtime.
Definition: hydrocouple.h:1242
The IModelComponent was requested to perform the actions to be performed before it will either be dis...
Definition: hydrocouple.h:448
virtual void setValue(const std::vector< int > &dimensionIndexes, const void *data)=0
Sets a multi-dimensional array of values for given dimension indexes.
IPropertyChanged interface is used to emit signal/event when a property of an object changes...
Definition: hydrocouple.h:114
virtual ~IDescription()
Definition: hydrocouple.h:141
virtual ~IComponentDataItem()
Definition: hydrocouple.h:1040
The IModelComponent is initializing itself. This status will end in a status change to HydroCouple::I...
Definition: hydrocouple.h:368
The IModelComponent is preparing itself for the first HydroCouple::IValueSet::getValue() call...
Definition: hydrocouple.h:419
IAdaptedOutputFactoryComponentInfo interface class provides information about an IAdaptedOutputFactor...
Definition: hydrocouple.h:1484
An IInput item that can accept values for an IModelComponent.
Definition: hydrocouple.h:1517
After links between an IModelComponent&#39;s inputs/outputs and those of other components have been estab...
Definition: hydrocouple.h:387
virtual ~IWorkflowComponent()
~IWorkflowComponent
Definition: hydrocouple.h:1674
virtual ~IAdaptedOutputFactoryComponentInfo()
Definition: hydrocouple.h:1488
virtual ~IExchangeItem()
Definition: hydrocouple.h:1246
IIdentity interface class defines a method to get the Id of an HydroCouple entity.
Definition: hydrocouple.h:179
The IDataExchangeWorkflowComponent class.
Definition: hydrocouple.h:1651
virtual ~IDimension()
Definition: hydrocouple.h:891
The IModelComponent is in an HydroCouple::Invalid state. When updating itself not all required input ...
Definition: hydrocouple.h:411
ByteOrder
The ByteOrder enum of serialized data.
Definition: hydrocouple.h:39
Definition: hydrocouple.h:1661
virtual ~IExchangeItemChangeEventArgs()
Definition: hydrocouple.h:1223
The IModelComponent is updating itself. It has received all required input data from other components...
Definition: hydrocouple.h:428
Fundamental dimension for electric current.
Definition: hydrocouple.h:88
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...
virtual ~IOutput()
Definition: hydrocouple.h:1270
The IMultiInput class is an IInput class that has multiple outputs supplying data to it...
Definition: hydrocouple.h:1546
Fundamental dimension for currency.
Definition: hydrocouple.h:108
virtual ~IAdaptedOutputFactory()
Definition: hydrocouple.h:1447
IAdaptedOutputFactory is used to create instances of IAdaptedProducerExchangeItems.
Definition: hydrocouple.h:1444
virtual ~IIdBasedComponentDataItem()
~IIdBasedComponentItem.
Definition: hydrocouple.h:1583
IArgument interface class used to set the arguments for components. They can be complex or simple mul...
Definition: hydrocouple.h:1122
virtual ~IAdaptedOutputFactoryComponent()
Definition: hydrocouple.h:1504
The IModelComponent has succesfully updated itself.
Definition: hydrocouple.h:433
virtual ~IUnit()
Definition: hydrocouple.h:985
virtual ~IComponentInfo()
Definition: hydrocouple.h:211
An output exchange item that can deliver values from an IModelComponent.
Definition: hydrocouple.h:1266
The ICloneableModelComponent class.
Definition: hydrocouple.h:827
IQuantity specifies values as an amount of some unit, usually as a floating point number...
Definition: hydrocouple.h:1007
virtual ~IQuantity()
Definition: hydrocouple.h:1010
IUnit interface, describing the physical unit of a IQuantity.
Definition: hydrocouple.h:981
WorkflowStatus
The WorkflowStatus enum.
Definition: hydrocouple.h:1658
IModelComponentInfo interface inherits from the IComponentInfo interface which provides detailed meta...
Definition: hydrocouple.h:318
virtual ~IQuality()
Definition: hydrocouple.h:926
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
ArgumentIOType
Definition: hydrocouple.h:1127
Fundamental dimension for length.
Definition: hydrocouple.h:73
Definition: hydrocouple.h:1667
IComponentInfo interface class provides detailed metadata about a component.
Definition: hydrocouple.h:207
The IModelComponent has successfully performed its finalization actions. Re-initialization of the IMo...
Definition: hydrocouple.h:455
The IModelComponent has succesfully initialized itself by calliing IModelComponent::initialize(). The connections between its inputs/outputs and those of other components can be established.
Definition: hydrocouple.h:376
Definition: hydrocouple.h:1665
Definition: hydrocouple.h:41
virtual ~IUnitDimensions()
Definition: hydrocouple.h:947
IDescription interface class provides descriptive information on a HydroCouple object.
Definition: hydrocouple.h:137
IAdaptedOutputFactoryComponent is an IAdaptedOutputFactory generated from an IAdaptedOutputFactoryCom...
Definition: hydrocouple.h:1501
The IModelComponent wants to update itself, but is not yet able to perform the actual computation...
Definition: hydrocouple.h:401
virtual void propertyChanged(const QString &propertyName)=0
IPropertyChanged::propertyChanged() is called to emit signal/event when property of child class chang...
virtual ~IValueDefinition()
~IValueDefinition
Definition: hydrocouple.h:867
virtual ~IAdaptedOutput()
Definition: hydrocouple.h:1380
virtual ~IPropertyChanged()
Definition: hydrocouple.h:118
IComponentItem is a fundamental unit of data for a component.
Definition: hydrocouple.h:1036
The IModelComponent instance has just been created. This status must and will be followed by HydroCou...
Definition: hydrocouple.h:362
Enumeration indicating that the argument was read from QString.
Definition: hydrocouple.h:1132
Definition: hydrocouple.h:42
Fundamental dimension for luminous intensity.
Definition: hydrocouple.h:103
FundamentalUnitDimension
HydroCouple::FundamentalUnitDimension are the fundamental units that can be combined to form all type...
Definition: hydrocouple.h:68
virtual ~IInput()
Definition: hydrocouple.h:1520
Definition: hydrocouple.h:1663
virtual ~ICloneableModelComponent()
Definition: hydrocouple.h:831
Fundamental dimension for time.
Definition: hydrocouple.h:83
An IAdaptedOutput adds one or more data operations on top of an IOutput.
Definition: hydrocouple.h:1377
The IModelComponent is in a HydroCouple::Valid state. When updating itself its required input will be...
Definition: hydrocouple.h:394
The IExchangeItemChangeEventArgs contains the information that will be passed when the IComponentItem...
Definition: hydrocouple.h:1220
IValueDefinition describes a value returned by the getValues() function of IValueSet.
Definition: hydrocouple.h:860
virtual ~IModelComponent()
~IModelComponent
Definition: hydrocouple.h:469