HydroCouple  2.0.0
HydroCouple 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 ()=0
 ~ICloneableModelComponent destructor More...
 
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 list< ICloneableModelComponent * > clones () const =0
 A list ICloneableModelComponent instances cloned from this IModelComponent instance. More...
 
- Public Member Functions inherited from HydroCouple::IModelComponent
virtual ~IModelComponent ()=0
 IModelComponent::~IModelComponent destructor. More...
 
virtual IModelComponentInfocomponentInfo () const =0
 Contains the metadata about this IModelComponent instance. More...
 
virtual vector< 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 vector< IInput * > inputs () const =0
 The list of consumer items for which a component can recieve values. More...
 
virtual vector< 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 vector< string > 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 vector< IOutput * > &requiredOutputs=vector< 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 is the workflow that this component is part of. 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 set< int > mpiAllocatedProcesses () const =0
 mpiAllocatedProcesses are the set of MPI processes/ranks allocated to this component. More...
 
virtual void mpiAllocateProcesses (const set< int > &mpiProcessesToAllocate)=0
 mpiAllocateResources allocates the specified MPI processes/ranks to this component. More...
 
virtual void mpiClearAllocatedProcesses ()=0
 mpiClearAllocatedProcesses More...
 
virtual string referenceDirectory () const =0
 referenceDirectory More...
 
virtual void setReferenceDirectory (const string &referenceDirectory)=0
 setReferenceDirectory More...
 
virtual void registerComponentStatusChangedListener (const function< void(const shared_ptr< IComponentStatusChangeEventArgs > &)> &statusChangedEventListener)=0
 The registerComponentStatusChangedListener() method registers a listener to be called when the status of the component changes. More...
 
virtual void deRegisterComponentStatusChangedListener (const function< void(const shared_ptr< IComponentStatusChangeEventArgs > &)> &statusChangedEventListener)=0
 The deRegisterComponentStatusChangedListener() method deregisters a listener that is called when the status of the component changes. 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...
 

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...
 

Detailed Description

Constructor & Destructor Documentation

◆ ~ICloneableModelComponent()

virtual HydroCouple::ICloneableModelComponent::~ICloneableModelComponent ( )
pure virtual

~ICloneableModelComponent destructor

Member Function Documentation

◆ clone()

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. Cloning can only occur after the parent component has been initialized successfully. Cloned components must also be initialized.

◆ clones()

virtual list<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.

◆ parent()

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: