HydroCouple  2.0.0
HydroCouple Interface Definitions
HydroCouple::IAdaptedOutput Class Referenceabstract

An IAdaptedOutput adds one or more data operations on top of an IOutput. More...

#include <hydrocouple.h>

Inheritance diagram for HydroCouple::IAdaptedOutput:
Collaboration diagram for HydroCouple::IAdaptedOutput:

Public Member Functions

virtual ~IAdaptedOutput ()=0
 IAdaptedOutput::~IAdaptedOutput is a virtual destructor. More...
 
virtual IAdaptedOutputFactoryadaptedOutputFactory () const =0
 IAdaptedOutputFactory that generated this IAdaptedOutput. More...
 
virtual vector< IArgument * > arguments () const =0
 IArgument represents input parameters needed for this IAdaptedOutput. More...
 
virtual void initialize ()=0
 Lets this IAdaptedOutput initialize() itself, based on the current values specified by the arguments. More...
 
virtual IOutputadaptee () const =0
 IOutput that this IAdaptedOutput extracts content from. In the adapter design pattern, it is the item being adapted. More...
 
virtual void refresh ()=0
 Requests the IAdaptedOutput to refresh itself and perform any necessary calculations. More...
 
- Public Member Functions inherited from HydroCouple::IOutput
virtual ~IOutput ()=0
 IOutput::~IOutput is a virtual destructor. More...
 
virtual vector< IInput * > consumers () const =0
 Input items that will consume the values, by calling the GetValues() method. More...
 
virtual void addConsumer (IInput *consumer)=0
 Add a consumer to this output item. Every input item that wants to call the IValueSet::getValue() method, needs to add itself as a consumer first. More...
 
virtual bool removeConsumer (IInput *consumer)=0
 Remove a consumer. More...
 
virtual vector< IAdaptedOutput * > adaptedOutputs () const =0
 The adaptedOutputs that have this current output item as adaptee. More...
 
virtual void addAdaptedOutput (IAdaptedOutput *adaptedOutput)=0
 Add a IAdaptedOutput to this output item. More...
 
virtual bool removeAdaptedOutput (IAdaptedOutput *adaptedOutput)=0
 Removes an IAdaptedOutput. More...
 
virtual void updateValues (IInput *querySpecifier)=0
 Provides the values matching the value definition specified by the

Parameters
querySpecifier

. Extensions can overwrite this base version to include more details in the query, e.g. time and space. More...

 
- Public Member Functions inherited from HydroCouple::IExchangeItem
virtual ~IExchangeItem ()=0
 IExchangeItem::~IExchangeItem is a virtual destructor. More...
 
virtual void registerExchangeItemStatusChangedListener (const function< void(const shared_ptr< IExchangeItemChangeEventArgs > &)> &exchangeItemChangedEventListener)=0
 The componentItemChanged event is fired when the content of an IComponentItem has changed. More...
 
virtual void deRegisterExchangeItemStatusChangedListener (const function< void(const shared_ptr< IExchangeItemChangeEventArgs > &)> &exchangeItemChangedEventListener)=0
 The deRegisterExchangeItemStatusChangedListener() method deregisters a listener that is called when the status of the component changes. More...
 
- Public Member Functions inherited from HydroCouple::IComponentDataItem
virtual ~IComponentDataItem ()=0
 IComponentDataItem::~IComponentDataItem is a virtual destructor. More...
 
virtual IModelComponentmodelComponent () const =0
 Gets the owner IModelComponent of this IComponentItem. For an IOutput component item this is the component responsible for providing the content of the IOutput. More...
 
virtual vector< IDimension * > dimensions () const =0
 provides purely descriptive information of the dimensions associated with this IComponentItem More...
 
virtual int dimensionLength (const vector< int > &dimensionIndexes) const =0
 dimensionLength returns the length of the dimension specified by the given dimension indexes. To get the size of the first dimension, use a null integer array as input argument. Length of indices must be a least one smaller than the numDimensions() More...
 
virtual IValueDefinitionvalueDefinition () const =0
 IValueDefinition for this IValueSet defines the variable type associated with this object. More...
 
virtual void getValue (const vector< int > &dimensionIndexes, void *data) const =0
 Gets a multi-dimensional array of value for given dimension indexes. IndexArray = x + y * InSizeX + z * InSizeX * InSizeY etc;. More...
 
virtual void setValue (const vector< int > &dimensionIndexes, const void *data)=0
 Sets a multi-dimensional array of values for given dimension indexes. More...
 
virtual bool hasEditor () const =0
 hasEditor indicates whether this IComponentItem has a UI editor. More...
 
virtual void showEditor ()=0
 showEditor shows the editor for this IComponentItem. More...
 
virtual bool hasViewer () const =0
 hasViewer indicates whether this IComponentItem has a UI viewer. More...
 
virtual void showViewer ()=0
 showViewer More...
 
- Public Member Functions inherited from HydroCouple::IIdentity
virtual ~IIdentity ()=0
 IIdentity::~IIdentity is a virtual destructor. More...
 
virtual string id () const =0
 Gets a unique identifier for the entity. More...
 
- Public Member Functions inherited from HydroCouple::IDescription
virtual ~IDescription ()=0
 IDescription::~IDescription is a virtual destructor. More...
 
virtual string caption () const =0
 Gets caption for the entity. More...
 
virtual void setCaption (const string &caption)=0
 Sets caption for the entity. More...
 
virtual string description () const =0
 Gets additional descriptive information for the entity. More...
 
virtual void setDescription (const string &description)=0
 Gets additional descriptive information for the entity. More...
 
- Public Member Functions inherited from HydroCouple::IPropertyChanged
virtual ~IPropertyChanged ()=0
 IPropertyChanged::~IPropertyChanged is a virtual destructor. More...
 
virtual void registerPropertyChangedListener (const function< void(const any &, const string &)> &propertyChangedListener)=0
 IPropertyChanged::registerPropertyChangedListener() registers a listener to be called when a property of an object changes. More...
 
virtual void deRegisterPropertyChangedListener (const function< void(const any &, const string &propertyName)> &propertyChangedListener)=0
 IPropertyChanged::deRegisterPropertyChangedListener() deregisters a listener that is called when a property of an object changes. More...
 

Detailed Description

An IAdaptedOutput adds one or more data operations on top of an IOutput.

It is in itself an IOutput. The IAdaptedOutput extends an output with operations including spatial interpolation, temporal interpolation, unit conversion etc.

IAdaptedOutput instances are created by means of an IAdaptedOutputFactory.

The IAdaptedOutput is based on the adaptor design pattern. It adapts an IOutput or another IAdaptedOutput to make it suitable for new use or purpose. The object being adapted is typically called the adaptee. The IAdaptedOutput replaces the DataOperation that was used in OpenMI Standard version 1.x.

Constructor & Destructor Documentation

◆ ~IAdaptedOutput()

virtual HydroCouple::IAdaptedOutput::~IAdaptedOutput ( )
pure virtual

IAdaptedOutput::~IAdaptedOutput is a virtual destructor.

Member Function Documentation

◆ adaptedOutputFactory()

virtual IAdaptedOutputFactory* HydroCouple::IAdaptedOutput::adaptedOutputFactory ( ) const
pure virtual

IAdaptedOutputFactory that generated this IAdaptedOutput.

Returns
IAdaptedOutputFactory parent.

◆ adaptee()

virtual IOutput* HydroCouple::IAdaptedOutput::adaptee ( ) const
pure virtual

IOutput that this IAdaptedOutput extracts content from. In the adapter design pattern, it is the item being adapted.

Returns
an IOutput that is being modified by this IAdaptedOutput.

◆ arguments()

virtual vector<IArgument *> HydroCouple::IAdaptedOutput::arguments ( ) const
pure virtual

IArgument represents input parameters needed for this IAdaptedOutput.

An unmodifiable vector of the (modifiable) IArguments should be returned that can be used to get information on an IArgument and to modify its values. Validation of changes is done when they occur (e.g. using notifications).

Returns
Unmodifiable list of IArgument for the adapted output.

◆ initialize()

virtual void HydroCouple::IAdaptedOutput::initialize ( )
pure virtual

Lets this IAdaptedOutput initialize() itself, based on the current values specified by the arguments.

Only after initialize() is called the refresh() method might be called.

A component must invoke the initialize() method of all its adapted outputs at the end of the component's Prepare phase. In case of stacked adapted outputs, the adaptee must be initialized first.

◆ refresh()

virtual void HydroCouple::IAdaptedOutput::refresh ( )
pure virtual

Requests the IAdaptedOutput to refresh itself and perform any necessary calculations.

This method will be called by the adaptee(), when it has been refreshed/updated. In the implementation of the refresh method the adapted output should update its contents according to the cha

After updating itself the IAdaptedOutput must call refresh() on all its IAdaptedOutput children, nges in the adaptee. so the chain of IOutput 's refreshes themselves.


The documentation for this class was generated from the following file: