HydroCouple  1.0.0
Description of the HydroCouple Component-Based Model Coupling Interface Definitions
HydroCouple::ICloneableModelComponent Class Referenceabstract

The ICloneableModelComponent class. More...

#include <hydrocouple.h>

Inheritance diagram for HydroCouple::ICloneableModelComponent:
Collaboration diagram for HydroCouple::ICloneableModelComponent:

Public Member Functions

virtual ~ICloneableModelComponent ()
 
virtual ICloneableModelComponentparent () const =0
 Parent ICloneableModelComponent object from which current component was cloned from. More...
 
virtual ICloneableModelComponentclone ()=0
 Deep clones itself including cloning its Data::IArgument. More...
 
virtual QList< ICloneableModelComponent * > clones () const =0
 A list ICloneableModelComponent instances cloned from this IModelComponent instance. More...
 
- Public Member Functions inherited from HydroCouple::IModelComponent
virtual ~IModelComponent ()
 ~IModelComponent More...
 
virtual int index () const =0
 index More...
 
virtual void setIndex (int index)=0
 setIndex More...
 
virtual IModelComponentInfocomponentInfo () const =0
 Contains the metadata about this IModelComponent instance. More...
 
virtual QList< IArgument * > arguments () const =0
 Arguments needed to let the component do its work. An unmodifiable list of (modifiable) arguments must be returned that is to be used to get information about the arguments and to set argument values. More...
 
virtual ComponentStatus status () const =0
 Defines current status of the IModelComponent. See HydroCouple::Componentstatus for the possible values. More...
 
virtual QList< IInput * > inputs () const =0
 The list of consumer items for which a component can recieve values. More...
 
virtual QList< IOutput * > outputs () const =0
 The list of IOutputs for which a component can produce results. More...
 
virtual void initialize ()=0
 Initializes the current IModelComponent. More...
 
virtual QList< QString > validate ()=0
 Validates the populated instance of the IModelComponent. More...
 
virtual void prepare ()=0
 Prepares the IModelComponent for calls to the Update method. More...
 
virtual void update (const QList< IOutput * > &requiredOutputs=QList< IOutput * >())=0
 This method is called to let the component update itself, thus reaching its next state. More...
 
virtual void finish ()=0
 The finish() must be invoked as the last of any methods in the IModelComponent interface. More...
 
virtual const IWorkflowComponentworkflow () const =0
 workflow More...
 
virtual void setWorkflow (const IWorkflowComponent *workflow)=0
 setWorkflow More...
 
virtual int mpiNumOfProcesses () const =0
 mpiNumProcesses More...
 
virtual int mpiProcessRank () const =0
 mpiProcess is the MPI process/rank of this component. More...
 
virtual void mpiSetProcessRank (int processRank)=0
 mpiSetProcess More...
 
virtual QSet< int > mpiAllocatedProcesses () const =0
 mpiAllocatedProcesses are the list of MPI processes/ranks allocated to this component. More...
 
virtual void mpiAllocateProcesses (const QSet< int > &mpiProcessesToAllocate)=0
 mpiAllocateResources More...
 
virtual void mpiClearAllocatedProcesses ()=0
 mpiClearAllocatedProcesses More...
 
virtual int gpuPlatform (int mpiProcess) const =0
 gpuPlatform More...
 
virtual int gpuDevice (int mpiProcess) const =0
 gpuDevice More...
 
virtual int gpuMaxNumBlocksOrWorkGrps (int mpiProcess) const =0
 maxNumGPUBlocksOrWorkGrps specified the maximum number of CUDA blocks or OpenCL workgroups allocated for the specified MPI Process. More...
 
virtual void gpuAllocatedResources (int mpiProcess, int gpuPlatform, int gpuDevice, int maxNumGPUBlocksOrWorkGrps)=0
 gpuAllocatedResources More...
 
virtual void gpuClearAllocatedResources ()=0
 gpuClearAllocatedResources More...
 
virtual QString referenceDirectory () const =0
 referenceDirectory More...
 
virtual void setReferenceDirectory (const QString &referenceDirectory)=0
 setReferenceDirectory More...
 
- Public Member Functions inherited from HydroCouple::IIdentity
virtual ~IIdentity ()
 
virtual QString id () const =0
 Gets a unique identifier for the entity. More...
 
- Public Member Functions inherited from HydroCouple::IDescription
virtual ~IDescription ()
 
virtual QString caption () const =0
 Gets caption for the entity. More...
 
virtual void setCaption (const QString &caption)=0
 Sets caption for the entity. More...
 
virtual QString description () const =0
 Gets additional descriptive information for the entity. More...
 
virtual void setDescription (const QString &description)=0
 Gets additional descriptive information for the entity. More...
 
- Public Member Functions inherited from HydroCouple::IPropertyChanged
virtual ~IPropertyChanged ()
 

Additional Inherited Members

- Public Types inherited from HydroCouple::IModelComponent
enum  ComponentStatus {
  Created,
  Initializing,
  Initialized,
  Validating,
  Valid,
  WaitingForData,
  Invalid,
  Preparing,
  Updating,
  Updated,
  Done,
  Finishing,
  Finished,
  Failed
}
 HydroCouple::ComponentStatus is an enumerator that describes the status of a component over the course of its lifetime. More...
 
- Signals inherited from HydroCouple::IModelComponent
virtual void componentStatusChanged (const QSharedPointer< IComponentStatusChangeEventArgs > &statusChangedEvent)=0
 The componentStatusChanged() function must be implemented as a signal and emitted when Status of the component changes. More...
 
- Signals inherited from HydroCouple::IPropertyChanged
virtual void propertyChanged (const QString &propertyName)=0
 IPropertyChanged::propertyChanged() is called to emit signal/event when property of child class changes. More...
 

Detailed Description

Constructor & Destructor Documentation

virtual HydroCouple::ICloneableModelComponent::~ICloneableModelComponent ( )
inlinevirtual

Member Function Documentation

virtual ICloneableModelComponent* HydroCouple::ICloneableModelComponent::clone ( )
pure virtual

Deep clones itself including cloning its Data::IArgument.

Returns
A deep clone of the current component. Configuration files and output files must be written to a different location than those of the parent.
virtual QList<ICloneableModelComponent*> HydroCouple::ICloneableModelComponent::clones ( ) const
pure virtual

A list ICloneableModelComponent instances cloned from this IModelComponent instance.

Returns
A list of child components created from the current component.
virtual ICloneableModelComponent* HydroCouple::ICloneableModelComponent::parent ( ) const
pure virtual

Parent ICloneableModelComponent object from which current component was cloned from.

Returns
The parent ICloneableModelComponent from which the current component was created.

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