62 template <
typename... Args>
104 template <
typename... Args>
127 template <
typename... Args>
159 virtual void emit(Args... args) = 0;
243 virtual string id()
const = 0;
313 virtual string url()
const = 0;
332 virtual set<string>
tags()
const = 0;
341 virtual bool validateLicense(
const string &licenseInfo,
string &validationMessage) = 0;
558 virtual vector<IInput *>
inputs()
const = 0;
579 virtual vector<IOutput *>
outputs()
const = 0;
585 virtual vector<IComponentDataItem *>
results()
const = 0;
685 virtual void update(
const initializer_list<IOutput *> &requiredOutputs = {}) = 0;
778 virtual void showEditor(
void *opaqueUIPointer =
nullptr) = 0;
790 virtual void showViewer(
void *opaqueUIPointer =
nullptr) = 0;
898 virtual ICloneableModelComponent *
clone(
const unordered_map<string, hydrocouple_variant> &clone_optional_arguments = unordered_map<string, hydrocouple_variant>()) = 0;
904 virtual vector<ICloneableModelComponent *>
clones()
const = 0;
928 virtual type_info
type()
const = 0;
1351 virtual int dimensionLength(
const initializer_list<int> &dimensionIndexes = {})
const = 0;
1367 const initializer_list<int> &dimensionIndexes)
const = 0;
1378 const initializer_list<int> &dimensionIndexes,
1379 const initializer_list<int> &dimensionLengths = {})
const = 0;
1388 const initializer_list<int> &dimensionIndexes) = 0;
1399 const initializer_list<int> &dimensionIndexes,
1400 const initializer_list<int> &dimensionLengths = {}) = 0;
2015 const initializer_list<int> &dimensionIndexes = {})
const = 0;
2027 const initializer_list<int> &idIndexes,
2028 const initializer_list<int> &dimensionIndexes = {},
2029 const initializer_list<int> &dimensionLengths = {})
const = 0;
2043 const initializer_list<int> &dimensionIndexes = {},
2044 int idIndexLength = 1,
2045 const initializer_list<int> &dimensionLengths = {})
const = 0;
2057 const initializer_list<int> &dimensionIndexes = {}) = 0;
2070 const initializer_list<int> &idIndexes,
2071 const initializer_list<int> &dimensionIndexes = {},
2072 const initializer_list<int> &dimensionLengths = {}) = 0;
2086 const initializer_list<int> &dimensionIndexes = {},
2087 int idIndexLength = 1,
2088 const initializer_list<int> &dimensionLengths = {}) = 0;
IAdaptedOutputFactoryComponent is an IAdaptedOutputFactory generated from an IAdaptedOutputFactoryCom...
Definition hydrocouple.h:1876
virtual ~IAdaptedOutputFactoryComponent()=default
IAdaptedOutputFactoryComponent::~IAdaptedOutputFactoryComponent is a virtual destructor.
virtual IAdaptedOutputFactoryComponentInfo * componentInfo() const =0
Contains the metadata about the IModelComponent.
IAdaptedOutputFactoryComponentInfo interface class provides information about an IAdaptedOutputFactor...
Definition hydrocouple.h:1857
virtual ~IAdaptedOutputFactoryComponentInfo()=default
IAdaptedOutputFactoryComponentInfo::~IAdaptedOutputFactoryComponentInfo is a virtual destructor.
virtual IAdaptedOutputFactoryComponent * createComponentInstance()=0
New IAdaptedOutputFactoryComponent instance.
IAdaptedOutputFactory is used to create instances of IAdaptedProducerExchangeItems.
Definition hydrocouple.h:1814
virtual IAdaptedOutput * createAdaptedOutput(IIdentity *adaptedProviderId, IOutput *provider, IInput *consumer=nullptr)=0
Creates a IAdaptedOutput that adapts the producer so that it fits the consumer.
virtual ~IAdaptedOutputFactory()=default
IAdaptedOutputFactory::~IAdaptedOutputFactory is a virtual destructor.
virtual vector< IIdentity * > getAvailableAdaptedOutputIds(const IOutput *provider, const IInput *consumer=nullptr)=0
Get a vector of IIdentity objects representing the vector of IAdaptedOutput instances that can be cre...
An IAdaptedOutput adds one or more data operations on top of an IOutput.
Definition hydrocouple.h:1744
virtual IOutput * adaptee() const =0
IOutput that this IAdaptedOutput extracts content from. In the adapter design pattern,...
virtual IAdaptedOutputFactory * adaptedOutputFactory() const =0
IAdaptedOutputFactory that generated this IAdaptedOutput.
virtual ~IAdaptedOutput()=default
IAdaptedOutput::~IAdaptedOutput is a virtual destructor.
virtual void initialize()=0
Lets this IAdaptedOutput initialize() itself, based on the current values specified by the arguments.
virtual vector< IArgument * > arguments() const =0
IArgument represents input parameters needed for this IAdaptedOutput.
virtual void refresh()=0
Requests the IAdaptedOutput to refresh itself and perform any necessary calculations.
IArgument interface class used to set the arguments for components. They can be complex or simple mul...
Definition hydrocouple.h:1464
virtual list< type_info > validComponentDataItemTypes() const =0
Valid IComponentDataItem instance types that can be read by this argument.
virtual list< string > fileFilters() const =0
File type extensions that can be read by this IArgument.
virtual bool isValidArgType(ArgumentInputType argType) const =0
Boolean indicating whether this IArgument copy its values from a string.
virtual void saveData()=0
Writes data to files associated with this argument if they exist.
virtual bool initialize(const string &value, ArgumentInputType argType, string &message)=0
Reads values from a JSON string.
virtual ArgumentInputType currentArgumentInputType() const =0
argumentIOType
virtual bool isReadOnly() const =0
Defines whether the Values property may be edited.
virtual string toString() const =0
String/XML representation for this IArgument.
ArgumentInputType
Enumeration indicating the type of input for the argument.
Definition hydrocouple.h:1471
@ XML
Enumeration indicating that the argument was read from a file.
Definition hydrocouple.h:1490
@ URL
Enumeration indicating that the argument was read from a URL.
Definition hydrocouple.h:1495
@ File
Enumeration indicating that the argument was read from a file.
Definition hydrocouple.h:1480
@ MEMORY_OBJECT
Enumeration indicating that the argument was read from a memory object.
Definition hydrocouple.h:1500
@ JSON
Definition hydrocouple.h:1485
@ String
Enumeration indicating that the argument was read from string.
Definition hydrocouple.h:1475
virtual bool initialize(const IComponentDataItem &componentDataItem, string &message)=0
Reads values from an equivalent IComponentDataItem. IComponentDataItem has been used instead of IArgu...
virtual ~IArgument()=default
IArgument::~IArgument is a virtual destructor.
virtual bool isOptional() const =0
Specifies whether the argument is optional or not.
The ICloneableModelComponent class.
Definition hydrocouple.h:877
virtual ICloneableModelComponent * clone(const unordered_map< string, hydrocouple_variant > &clone_optional_arguments=unordered_map< string, hydrocouple_variant >())=0
Deep clones itself including cloning its Data::IArgument.
virtual ICloneableModelComponent * parent() const =0
Parent ICloneableModelComponent object from which current component was cloned from.
virtual vector< ICloneableModelComponent * > clones() const =0
A vector ICloneableModelComponent instances cloned from this IModelComponent instance.
virtual ~ICloneableModelComponent()=default
~ICloneableModelComponent destructor
IComponentItem is a fundamental unit of data for a component.
Definition hydrocouple.h:1316
virtual void setValue(const hydrocouple_variant &data, const initializer_list< int > &dimensionIndexes)=0
Sets a multi-dimensional array of values for given dimension indexes.
virtual bool hasViewer() const =0
hasViewer indicates whether this IComponentItem has a UI viewer.
virtual void showViewer(void *opaqueUIPointer=nullptr)=0
showViewer shows the viewer for this IComponentItem.
virtual void getValue(hydrocouple_variant &data, const initializer_list< int > &dimensionIndexes) const =0
Gets a multi-dimensional array of values for given dimension indexes and strides along each dimension...
virtual IModelComponent * modelComponent() const =0
Gets the owner IModelComponent of this IComponentItem. For an IOutput component item this is the comp...
virtual void showEditor(void *opaqueUIPointer=nullptr)=0
showEditor shows the editor for this IComponentItem.
virtual void getValues(hydrocouple_variant *data, const initializer_list< int > &dimensionIndexes, const initializer_list< int > &dimensionLengths={}) const =0
Gets a multi-dimensional array of values for given dimension indexes and strides along each dimension...
virtual bool hasEditor() const =0
hasEditor indicates whether this IComponentItem has a UI editor.
virtual vector< IDimension * > dimensions() const =0
provides purely descriptive information of the dimensions associated with this IComponentItem
virtual ~IComponentDataItem()=default
IComponentDataItem::~IComponentDataItem is a virtual destructor.
virtual void setValues(const hydrocouple_variant *data, const initializer_list< int > &dimensionIndexes, const initializer_list< int > &dimensionLengths={})=0
Sets a multi-dimensional array of values for given dimension indexes and strides along each dimension...
virtual int dimensionLength(const initializer_list< int > &dimensionIndexes={}) const =0
dimensionLength returns the length of the dimension specified by the given dimension indexes....
virtual IValueDefinition * valueDefinition() const =0
IValueDefinition for this IValueSet defines the variable type associated with this object.
IComponentDataItemValueChanged interface class used to notify when the values of a IComponentDataItem...
Definition hydrocouple.h:1431
virtual ~IComponentDataItemValueChanged()=default
IComponentDataItemValueChanged::~IComponentDataItemValueChanged is a virtual destructor.
virtual initializer_list< int > dimensionLengths() const =0
Gets the strides of the data that changed.
virtual initializer_list< int > dimensionIndexes() const =0
Gets the dimension indexes of the data that changed.
virtual IComponentDataItem * componentDataItem() const =0
Gets the IComponentDataItem that fired the event.
IComponentInfo interface class is a factory that provides detailed metadata about a component and cre...
Definition hydrocouple.h:255
virtual string url() const =0
Component developer url.
virtual set< string > tags() const =0
tags used to classify this component.
virtual void setLibraryFilePath(const string &filePath)=0
Sets file path to Component library.
virtual string version() const =0
Component version info.
virtual list< string > documentation() const =0
Documentation associated with this component.
virtual string iconFilePath() const =0
File path to Component icon. Must be specified relative to the component library.
virtual string email() const =0
Component developer email.
virtual string libraryFilePath() const =0
File path to Component library.
virtual ~IComponentInfo()=default
IComponentInfo::~IComponentInfo is a virtual destructor.
virtual bool validateLicense(const string &licenseInfo, string &validationMessage)=0
Checks if license is valid and persists license information.
virtual bool validateLicense(string &validationMessage)=0
validateLicense Checks if component is licensed and returns.
virtual string copyright() const =0
Component copyright info.
virtual string license() const =0
Component license info.
virtual string developer() const =0
Component developer information.
The IComponentStatusChangeEventArgs contains the information that will be passed when the IModelCompo...
Definition hydrocouple.h:830
virtual IModelComponent * component() const =0
Gets the IModelComponent that fired the event.
virtual IModelComponent::ComponentStatus status() const =0
Gets the IModelComponent's status after the status change.
virtual float percentProgress() const =0
Number between 0 and 100 indicating the progress made by a component in its simulation.
virtual IModelComponent::ComponentStatus previousStatus() const =0
Gets the IModelComponent's status before the status change.
virtual ~IComponentStatusChangeEventArgs()=default
~IComponentStatusChangeEventArgs destructor
virtual bool hasProgressMonitor() const =0
A bool indicating whether this event has a progresss monitor.
virtual string message() const =0
Gets additional information about the status change.
IDescription interface class provides descriptive information on a HydroCouple object.
Definition hydrocouple.h:184
virtual string description() const =0
Gets additional descriptive information for the entity.
virtual string caption() const =0
Gets caption for the entity.
virtual ~IDescription()=default
IDescription::~IDescription is a virtual destructor.
virtual void setCaption(const string &caption)=0
Sets caption for the entity.
virtual void setDescription(const string &description)=0
Gets additional descriptive information for the entity.
IDimension provides the properties of the dimensions of a variable.
Definition hydrocouple.h:941
virtual ~IDimension()=default
~IDimension destructor
LengthType
IDimension::LengthType dimension length type.
Definition hydrocouple.h:947
@ Static
Static length type.
Definition hydrocouple.h:951
@ Dynamic
Dynamic length type.
Definition hydrocouple.h:956
virtual LengthType lengthType() const =0
Gets the length type of the dimension.
The IExchangeItemChangeEventArgs contains the information that will be passed when the IComponentItem...
Definition hydrocouple.h:1589
virtual string message() const =0
Gets message associated with the event.
virtual ~IExchangeItemChangeEventArgs()=default
Standard destructor.
virtual IExchangeItem * exchangeItem() const =0
IExchangeItem which fired the signal.
IExchangeItem the base data item the can be exchanged between components at runtime.
Definition hydrocouple.h:1613
virtual ~IExchangeItem()=default
IExchangeItem::~IExchangeItem is a virtual destructor.
The IIdBasedComponentItem class is an idbased IComponentItem.
Definition hydrocouple.h:1979
virtual void setValue(const hydrocouple_variant &data, int idIndex, const initializer_list< int > &dimensionIndexes={})=0
Sets a multi-dimensional array of values for given time dimension index and size for a hyperslab.
virtual ~IIdBasedComponentDataItem()=default
IIdBasedComponentItem::~IIdBasedComponentItem is a virtual destructor.
virtual IDimension * identifierDimension() const =0
idDimensions returns the dimensions of the id based component item.
virtual void setValues(const hydrocouple_variant *data, int idIndex, const initializer_list< int > &dimensionIndexes={}, int idIndexLength=1, const initializer_list< int > &dimensionLengths={})=0
Sets a multi-dimensional array of values for given id dimension index and size for a hyperslab.
virtual void getValues(hydrocouple_variant *data, int idIndex, const initializer_list< int > &dimensionIndexes={}, int idIndexLength=1, const initializer_list< int > &dimensionLengths={}) const =0
Sets a multi-dimensional array of values for given id dimension index and size for a hyperslab.
virtual void getValue(hydrocouple_variant &data, int idIndex, const initializer_list< int > &dimensionIndexes={}) const =0
Gets a multi-dimensional array of values for given id dimension index and size for a hyperslab.
virtual vector< string > identifiers() const =0
identifiers
virtual void getValues(hydrocouple_variant *data, const initializer_list< int > &idIndexes, const initializer_list< int > &dimensionIndexes={}, const initializer_list< int > &dimensionLengths={}) const =0
Gets a multi-dimensional array of values for given id dimension index and size for a hyperslab.
virtual void setValues(const hydrocouple_variant *data, const initializer_list< int > &idIndexes, const initializer_list< int > &dimensionIndexes={}, const initializer_list< int > &dimensionLengths={})=0
Sets a multi-dimensional array of values for given id dimension index and size for a hyperslab.
IIdentity interface class defines a method to get the Id of an HydroCouple entity.
Definition hydrocouple.h:226
virtual string id() const =0
Gets a unique identifier for the entity.
virtual ~IIdentity()=default
IIdentity::~IIdentity is a virtual destructor.
IModelComponent interface is the core interface in the HydroCouple standard defining a model componen...
Definition hydrocouple.h:390
virtual void setWorkflow(const IWorkflowComponent *workflow)=0
setWorkflow
virtual set< int > mpiAllocatedProcesses() const =0
mpiAllocatedProcesses are the set of MPI processes/ranks allocated to this component.
virtual vector< IOutput * > outputs() const =0
The list of IOutputs for which a component can produce results.
virtual bool hasEditor() const =0
hasEditor indicates whether this IComponentItem has a UI editor.
virtual void setReferenceDirectory(const string &referenceDirectory)=0
setReferenceDirectory Sets the reference directory for this component instance.
virtual void finish()=0
The finish() must be invoked as the last of any methods in the IModelComponent interface.
virtual void initialize()=0
Initializes the current IModelComponent.
virtual void showViewer(void *opaqueUIPointer=nullptr)=0
showViewer shows the viewer for this IComponentItem.
virtual IModelComponentInfo * componentInfo() const =0
Contains the metadata about this IModelComponent instance.
virtual bool hasViewer() const =0
hasViewer indicates whether this IComponentItem has a UI viewer.
virtual int mpiProcessRank() const =0
mpiProcess is the MPI process/rank of this component.
virtual vector< IInput * > inputs() const =0
The list of consumer items for which a component can recieve values.
virtual void prepare()=0
Prepares the IModelComponent for calls to the Update method.
virtual int mpiNumOfProcesses() const =0
mpiNumProcesses
virtual void showEditor(void *opaqueUIPointer=nullptr)=0
showEditor shows the editor for this IComponentItem.
virtual void mpiClearAllocatedProcesses()=0
mpiClearAllocatedProcesses
virtual void mpiAllocateProcesses(const set< int > &mpiProcessesToAllocate)=0
mpiAllocateResources allocates the specified MPI processes/ranks to this component.
virtual vector< IComponentDataItem * > results() const =0
List of the model's output results.
virtual const IWorkflowComponent * workflow() const =0
workflow is the workflow that this component is part of.
ComponentStatus
HydroCouple::ComponentStatus is an enumerator that describes the status of a component over the cours...
Definition hydrocouple.h:398
@ Initialized
The IModelComponent has successfully initialized itself by calling IModelComponent::initialize()....
Definition hydrocouple.h:417
@ Created
The IModelComponent instance has just been created. This status must and will be followed by HydroCou...
Definition hydrocouple.h:403
@ Finishing
The IModelComponent was requested to perform the actions to be performed before it will either be dis...
Definition hydrocouple.h:489
@ Initializing
The IModelComponent is initializing itself. This status will end in a status change to HydroCouple::I...
Definition hydrocouple.h:409
@ Failed
The IModelComponent was requested to perform the actions to be perform before it will either be dispo...
Definition hydrocouple.h:504
@ Updating
The IModelComponent is updating itself. It has received all required input data from other components...
Definition hydrocouple.h:469
@ Finished
The IModelComponent has successfully performed its finalization actions. Re-initialization of the IMo...
Definition hydrocouple.h:496
@ Valid
The IModelComponent is in a HydroCouple::Valid state. When updating itself its required input will be...
Definition hydrocouple.h:435
@ WaitingForData
The IModelComponent wants to update itself, but is not yet able to perform the actual computation,...
Definition hydrocouple.h:442
@ Invalid
The IModelComponent is in an HydroCouple::Invalid state. When updating itself not all required input ...
Definition hydrocouple.h:452
@ Done
The last update process that the IModelComponent performed was the final one. A next call to the Hydr...
Definition hydrocouple.h:480
@ Preparing
The IModelComponent is preparing itself for the first HydroCouple::IValueSet::getValue() call....
Definition hydrocouple.h:460
@ Updated
The IModelComponent has successfully updated itself.
Definition hydrocouple.h:474
@ Validating
After links between an IModelComponent's inputs/outputs and those of other components have been estab...
Definition hydrocouple.h:428
virtual ComponentStatus status() const =0
Defines current status of the IModelComponent. See HydroCouple::Componentstatus for the possible valu...
virtual void mpiSetProcessRank(int processRank)=0
mpiSetProcess sets the rank for the mpi process associated with this instance of the model.
virtual vector< string > validate()=0
Validates the populated instance of the IModelComponent.
virtual ~IModelComponent()=default
IModelComponent::~IModelComponent destructor.
virtual vector< IArgument * > arguments() const =0
Arguments needed to let the component do its work. An unmodifiable list of (modifiable) arguments mus...
virtual void update(const initializer_list< IOutput * > &requiredOutputs={})=0
This method is called to let the component update itself, thus reaching its next state.
virtual string referenceDirectory() const =0
referenceDirectory
IModelComponentInfo interface inherits from the IComponentInfo interface which provides detailed meta...
Definition hydrocouple.h:359
virtual ~IModelComponentInfo()=default
IModelComponentInfo::~IModelComponentInfo is a virtual destructor.
virtual IModelComponent * createComponentInstance()=0
Creates a new IModelComponent instance.
virtual vector< IAdaptedOutputFactory * > adaptedOutputFactories() const =0
Gets a list of IAdaptedOutputFactories, each allowing to create IAdaptedOutput item for making output...
An output exchange item that can deliver values from an IModelComponent.
Definition hydrocouple.h:1631
virtual vector< IAdaptedOutput * > adaptedOutputs() const =0
The adaptedOutputs that have this current output item as adaptee.
virtual ~IOutput()=default
IOutput::~IOutput is a virtual destructor.
virtual void updateValues(const IInput *querySpecifier)=0
Provides the values matching the value definition specified by the . Extensions can overwrite this ba...
virtual bool removeConsumer(IInput *consumer)=0
Remove a consumer.
virtual vector< IInput * > consumers() const =0
Input items that will consume the values, by calling the GetValues() method.
virtual bool removeAdaptedOutput(IAdaptedOutput *adaptedOutput)=0
Removes an IAdaptedOutput.
virtual void addConsumer(IInput *consumer)=0
Add a consumer to this output item. Every input item that wants to call the IValueSet::getValue() met...
virtual void addAdaptedOutput(IAdaptedOutput *adaptedOutput)=0
Add a IAdaptedOutput to this output item.
IPropertyChanged interface is used to emit signal/event when a property of an object changes.
Definition hydrocouple.h:167
virtual ~IPropertyChanged()=default
IPropertyChanged::~IPropertyChanged is a virtual destructor.
The IProxyModelComponent class is a class for a remote IModelComponent's proxy.
Definition hydrocouple.h:797
virtual int parentMpiProcessRank() const =0
parentMpiProcessRank
virtual string parentProcessAddress() const =0
parentProcessAddress
virtual string parentId() const =0
parentId
virtual ~IProxyModelComponent()=default
~IProxyModelComponent
Qualitative data described items in terms of some quality or categorization that may be 'informal' or...
Definition hydrocouple.h:998
virtual bool isOrdered() const =0
Checks if the IQuality is defined by an ordered set of ICategory or not.
virtual set< hydrocouple_variant > categories() const =0
virtual ~IQuality()=default
IQuality::~IQuality is a virtual destructor.
IQuantity specifies values as an amount of some unit, usually as a floating point number.
Definition hydrocouple.h:1284
virtual hydrocouple_variant maxValue() const =0
maxValue
virtual ~IQuantity()=default
IQuantity::~IQuantity is a virtual destructor.
virtual hydrocouple_variant minValue() const =0
minValue
virtual IUnit * unit() const =0
Unit of quantity.
Forward declarations.
Definition hydrocouple.h:129
virtual void disconnect(const shared_ptr< ISlot< Args... > > &slot)=0
disconnect is used to disconnect a slot from the signal.
virtual void connect(const shared_ptr< ISlot< Args... > > &slot)=0
connect is used to connect a slot to the signal.
virtual void blockSignals(bool block)=0
blockSignals is used to block signals from being emitted.
virtual ~ISignal()=default
ISignal::~ISignal is a virtual destructor.
virtual void emit(Args... args)=0
emit is used to emit the signal.
ISlot interface class must be implemented by classes that want to listen to signals.
Definition hydrocouple.h:106
virtual void operator()(const ISignal< Args... > &sender, Args... args)=0
operator() is the function call operator that is called when a signal is emitted.
virtual ~ISlot()=default
ISlot::~ISlot is a virtual destructor.
Defines the order of dimension in each FundamentalDimension for a unit.
Definition hydrocouple.h:1022
virtual double power(HydroCouple::IUnitDimensions::FundamentalUnitDimension dimension)=0
Returns the power for the requested dimension.
virtual ~IUnitDimensions()=default
IUnitDimensions::~IUnitDimensions is a virtual destructor.
FundamentalUnitDimension
HydroCouple::FundamentalUnitDimension are the fundamental units that can be combined to form all type...
Definition hydrocouple.h:1028
@ Unitless
Fundamental dimension for unitless quantities.
Definition hydrocouple.h:1072
@ ElectricCurrent
Fundamental dimension for electric current.
Definition hydrocouple.h:1047
@ LuminousIntensity
Fundamental dimension for luminous intensity.
Definition hydrocouple.h:1062
@ Time
Fundamental dimension for time.
Definition hydrocouple.h:1042
@ Length
Fundamental dimension for length.
Definition hydrocouple.h:1032
@ AmountOfSubstance
Fundamental dimension for amount of substance.
Definition hydrocouple.h:1057
@ Mass
Fundamental dimension for mass.
Definition hydrocouple.h:1037
@ Temperature
Fundamental dimension for temperature.
Definition hydrocouple.h:1052
@ Currency
Fundamental dimension for currency.
Definition hydrocouple.h:1067
IUnit interface, describing the physical unit of a IQuantity.
Definition hydrocouple.h:1112
DistanceUnits
HydroCouple::DistanceUnits are the types of units that can be used to measure distance.
Definition hydrocouple.h:1128
@ Centimeters
Centimeters.
@ Millimeters
Millimeters.
@ NauticalMiles
NauticalMiles.
virtual double offsetToSI() const =0
OffSet to SI ('B' in: SI-value = A * quant-value + B).
virtual IUnitDimensions * dimensions() const =0
Fundamental dimensions of the unit.
virtual double conversionFactorToSI() const =0
Conversion factor to SI ('A' in: SI-value = A * quant-value + B)
AreaUnits
HydroCouple::AreaUnits are the types of units that can be used to measure area.
Definition hydrocouple.h:1190
@ SquareCentimeters
Square Centimeters.
Definition hydrocouple.h:1240
@ SquareMiles
Square Miles.
Definition hydrocouple.h:1215
@ Acres
Acres.
Definition hydrocouple.h:1225
@ SquareYards
Square Yards.
Definition hydrocouple.h:1210
@ Unknown
Unknown.
Definition hydrocouple.h:1255
@ SquareMeters
SquareMeters.
Definition hydrocouple.h:1195
@ SquareFeet
Square Feet.
Definition hydrocouple.h:1205
@ Hectares
Hectares.
Definition hydrocouple.h:1220
@ SquareNauticalMiles
Square Nautical Miles.
Definition hydrocouple.h:1230
@ SquareDegrees
Square Degrees.
Definition hydrocouple.h:1235
@ SquareMillimeters
Square Millimeters.
Definition hydrocouple.h:1245
@ SquareInches
Square Inches.
Definition hydrocouple.h:1250
@ SquareKilometers
SquareKilometers.
Definition hydrocouple.h:1200
virtual ~IUnit()=default
IUnit::~IUnit is a virtual destructor.
DistanceUnitType
HydroCouple::DistanceUnitType are the types of units that can be used to measure distance.
Definition hydrocouple.h:1118
IValueDefinition describes a value returned by the getValues() function of IValueSet.
Definition hydrocouple.h:915
virtual hydrocouple_variant missingValue() const =0
The value representing that data is missing.
virtual type_info type() const =0
The object types of value that will be available and is returned by the GetValues function....
virtual hydrocouple_variant defaultValue() const =0
Gets the default value of the argument.
virtual ~IValueDefinition()=default
~IValueDefinition destructor
The IDataExchangeWorkflowComponent class.
Definition hydrocouple.h:2114
virtual ~IWorkflowComponent()=default
~IWorkflowComponent destructor for IWorkflowComponent class.
virtual bool addModelComponent(IModelComponent *component, const IIdentity *modelRoleIdentifier=nullptr)=0
addModelComponent Adds model component instance to workflow
virtual void update()=0
update
virtual WorkflowStatus status() const =0
status
virtual void initialize()=0
initialize
virtual vector< IIdentity * > modelComponentLabels() const =0
requiredModelComponentIdentifiers returns the vector of IModelComponent identifiers that are required...
virtual IWorkflowComponentInfo * componentInfo() const =0
componentInfo
virtual bool removeModelComponent(IModelComponent *component)=0
removeModelComponent Removes model component instance from workflow
virtual vector< IModelComponent * > modelComponents() const =0
modelComponents
WorkflowStatus
The WorkflowStatus enum.
Definition hydrocouple.h:2121
@ Finishing
Definition hydrocouple.h:2128
@ Updated
Definition hydrocouple.h:2126
@ Done
Definition hydrocouple.h:2127
@ Initializing
Definition hydrocouple.h:2123
@ Failed
Definition hydrocouple.h:2130
@ Finished
Definition hydrocouple.h:2129
@ Created
Definition hydrocouple.h:2122
@ Updating
Definition hydrocouple.h:2125
@ Initialized
Definition hydrocouple.h:2124
virtual void finish()=0
finish
virtual bool isRequiredModelComponent(const IIdentity *modelComponentLabel) const =0
isRequiredModelComponent checks if the model component is required by this component.
The IDataExchangeWorkflowComponentInfo class.
Definition hydrocouple.h:2095
virtual IWorkflowComponent * createComponentInstance()=0
Creates a new IModelComponent instance.
virtual ~IWorkflowComponentInfo()=default
~IWorkflowComponentInfo
The IWorkflowComponentStatusChangeEventArgs contains the information that will be passed when the IWo...
Definition hydrocouple.h:2206
virtual IWorkflowComponent::WorkflowStatus status() const =0
Gets the IWorkflowComponent's status after the status change.
virtual IWorkflowComponent * workflowComponent() const =0
Gets the IModelComponent that fired the event.
virtual ~IWorkflowComponentStatusChangeEventArgs()=default
~IComponentStatusChangeEventArgs destructor
virtual IWorkflowComponent::WorkflowStatus previousStatus() const =0
Gets the IWorkflowComponent's status before the status change.
virtual float percentProgress() const =0
Number between 0 and 100 indicating the progress made by a component in its simulation.
virtual string message() const =0
Gets additional information about the status change.
virtual bool hasProgressMonitor() const =0
A bool indicating whether this event has a progresss monitor.
ByteOrder
The ByteOrder enum of serialized data.
Definition hydrocouple.h:42
@ LittleEndian
LittleEndian serialized data byte order (least significant byte first).
Definition hydrocouple.h:52
@ BigEndian
BigEndian serialized data byte order (most significant byte first).
Definition hydrocouple.h:47
HydroCouple namespace contains the core interface specifications for the HydroCouple component-based ...
Definition hydrocouple.h:60
variant< bool, char, short, int, long, unsigned char, unsigned short, unsigned int, unsigned long, float, double, long double, string, void * > hydrocouple_variant
hydrocouple_variant is a variant type that can be used to store the core value types values of differ...
Definition hydrocouple.h:96