Acoustic Research Tool (ART)  v0.10
ARTItimeModule Class Reference

This class provides a generic interface for all time-domain simulations and is used by the ARTtimeSimulator class.

All time modules have to be derived from this class and have to implement the addIPort(), setCurrentIndex() and simulateCurrentIndex() methods.

Inheritance diagram for ARTItimeModule:
ARTobject ARTcell addModule amplificationModule ARTtimeModule DWGconeJunctionModule DWGcylinderJunctionModule genericDelayModule heavisideModule impulseModule inputFunctionModule multiplicationModule rectangularModule simpleDelayModule sinewaveModule

Classes

class  FPortType
 This class represents an input function or lookup table. More...
class  globalParameterType
 This class represents all parameters which have global scope within the time module they are associated with. More...
class  IPortType
 This class represents all input ports of time modules and actually refers to an existing output/function port. More...
class  localParameterType
 This class represents all parameters which only have local scope within the time module they are associated with. More...
class  OPortType
 This class represents all output ports of time modules and saves the actual values of each time index and the evaluation expression. More...
class  PortType
 Parent class of all port types (input, output, function) which can be added to a time module. More...
class  timeProperty
 This is the generic class representing all types of attributes which can be added to a time module. More...

Public Member Functions

 ARTItimeModule (const string &name, const string &sds="", const string &lds="", const string &htm="")
 Constructor of the ARTItimeModule class.
 ARTItimeModule (const ARTItimeModule &orig)
 Copy constructor which creates a new time module based on the given time module.
virtual ARTItimeModuleCreate (const string &name, const string &sds="", const string &lds="", const string &htm="")=0
 Factory function which creates a new interface time module object based on the current child class implementation.
virtual void addIPort (const string &name, const ARTdataProp *refPort)=0
 Adds a new input port to the current time module.
virtual ARTdataPropgetPort (const string &name)
 Returns a pointer to the port object with the given name.
virtual void setLocalParameter (const string &name, const string &expr)
 Sets the definition of the local parameter with the given name.
virtual void setLocalParameter (const string &name, const std::complex< double > &val)
 Sets the definition of the local parameter with the given name.
virtual void setLocalParameter (const string &name, const double val)
 Sets the definition of the local parameter with the given name.
virtual void addGlobalParameter (const ARTdataProp *parameter)
 Adds a global parameter to the current time module by registering it to all output ports and local parameters.
virtual void removeGlobalParameter (const string &name)
 Removes the definition of the given global parameter from all output ports and local parameters.
virtual void setSimulator (ARTsimulator *sim)
 Sets the simulator of the current time module and all its output ports.
virtual void setCurrentIndex (int idx)=0
 Sets the current time module and all output ports to the given time index.
virtual void simulateCurrentIndex (int idx)=0
 Triggers the evaluation of all output ports of the time module for the given time index.
virtual ~ARTItimeModule ()
 Destructor of the ARTItimeModule class.
- Public Member Functions inherited from ARTobject
 ARTobject (const string name, const string sds="", const string lds="", const string htm="")
 objects must have a name, the rest is optional
 ARTobject (const ARTobject &orig)
 copy constructor
virtual ARTcellclone ()
ARTpropertyGetProperties (ARTproperty *pos)
 iterate through property list (pass NULL to restart iteration, receive NULL after last element)
ARTpropertyFindProperty (const string nam)
 find and return named property (or return NULL if no match)
ARTpropertyAppendProperty (const string name, const string sds="", const string lds="", const string htm="")
 Append new property with given name to ARTobject.
ARTdataPropAppendDataProp (const string name, ARTvariant *val, const string sds="", const string lds="", const string htm="")
 append new data property with given name to ARTobject
ARTdataPropAppendDataProp (const string name, const double val, const string sds="", const string lds="", const string htm="")
ARTdataPropAppendDataProp (const string name, const float val, const string sds="", const string lds="", const string htm="")
ARTdataPropAppendDataProp (const string name, const string val, const string sds="", const string lds="", const string htm="")
ARTdataPropAppendDataProp (const string name, const int val, const string sds="", const string lds="", const string htm="")
ARTdataPropAppendDataProp (const string name, const string *val, const string sds="", const string lds="", const string htm="")
ARTdataPropAppendDataProp (ARTdataProp *dataProp)
ARTlistPropAppendListProp (const string name, const string sds="", const string lds="", const string htm="")
 append new listableProperty with given name
bool DeleteProperty (ARTproperty *prp)
 delete current property (which was recently accessed by GetProperties, FindProperty or AppendProperty)
ARTmethodGetMethods (ARTmethod *pos)
 iterate through method list (pass NULL to restart iteration, receive NULL after last element)
ARTmethodFindMethod (const string nam)
 find and return named method (or return NULL if no match)
ARTmethodAppendMethod (const string name, const string sds="", const string lds="", const string htm="")
 append new method with given name
bool DeleteMethod (ARTmethod *mtd)
 delete current method (which was recently accessed by GetProperties, FindProperty or AppendProperty)
void SetPropertyList (list< ARTproperty * > &l)
void CopyPropertyListEntries (ARTobject *obj)
 copies properties from other objects (also copying the objects of all list-entries). OVERWRITES list own list!
void CopyMethodListEntries (ARTobject *obj)
 copies methods from other objects (also copying the objects of all list-entries). OVERWRITES list own list!
list< ARTproperty * > GetPropertyList ()
list< ARTmethod * > GetMethodList ()
- Public Member Functions inherited from ARTcell
 ARTcell (const string name="", const string sds="", const string lds="", const string htm="")
 ARTcell (const ARTcell &orig)
const string & GetName () const
const string & GetShortDescription () const
const string & GetLongDescription () const
const string & GetHelpFilename () const
void SetName (const string name)

Protected Attributes

ARTtimeSimulator_simulator
 Simulator object to which the current time module belongs.
- Protected Attributes inherited from ARTobject
list< ARTproperty * > propertyList_
list< ARTproperty * >::iterator piter_
list< ARTmethod * > methodList_
list< ARTmethod * >::iterator miter_
- Protected Attributes inherited from ARTcell
string name_
 Identifier of ARTObject.
string shortDesc_
 Short Description of ARTObject (single line hint)
string longDesc_
 Long Description of ARTObject (multi line text)
string helpFile_
 File name of HTML help file for ARTObject.

Constructor & Destructor Documentation

ARTItimeModule::ARTItimeModule ( const string &  name,
const string &  sds = "",
const string &  lds = "",
const string &  htm = "" 
)
inlineexplicit

Constructor of the ARTItimeModule class.

Parameters
[in]nameRepresents the unique identifier of the time module.
[in]sdsShort description (single line) of the time module.
[in]ldsLong description of the time module.
[in]htmPath to help file in HTML format.
ARTItimeModule::ARTItimeModule ( const ARTItimeModule orig)
inline

Copy constructor which creates a new time module based on the given time module.

Parameters
[in]origThe original time module to copy.

Member Function Documentation

void ARTItimeModule::addGlobalParameter ( const ARTdataProp parameter)
virtual

Adds a global parameter to the current time module by registering it to all output ports and local parameters.

Parameters
[in]parameterPointer to the global parameter object.
Exceptions
ARTerrorIf the given object is no valid global parameter or there is another property with the same name.

Reimplemented in ARTtimeModule.

virtual void ARTItimeModule::addIPort ( const string &  name,
const ARTdataProp refPort 
)
pure virtual

Adds a new input port to the current time module.

Parameters
[in]nameLocally unique identifier of the new input port.
[in]refPortPointer to an existing output port which will be associated with the new input port.
Exceptions
ARTerrorIf the given name already exists for another object in the current time module.

Implemented in DWGconeJunctionModule, DWGcylinderJunctionModule, DWGcylinderModule, fractionalDelayModule, sinewaveModule, multiplicationModule, addModule, ARTtimeModule, simpleDelayModule, amplificationModule, rectangularModule, heavisideModule, impulseModule, and inputFunctionModule.

virtual ARTItimeModule* ARTItimeModule::Create ( const string &  name,
const string &  sds = "",
const string &  lds = "",
const string &  htm = "" 
)
pure virtual

Factory function which creates a new interface time module object based on the current child class implementation.

Parameters
[in]nameRepresents the unique identifier of the time module.
[in]sdsShort description (single line) of the time module.
[in]ldsLong description of the time module.
[in]htmPath to help file in HTML format.

Implemented in DWGconeJunctionModule, DWGconeModule, DWGcylinderJunctionModule, DWGcylinderModule, fractionalDelayModule, sinewaveModule, multiplicationModule, addModule, ARTtimeModule, simpleDelayModule, amplificationModule, rectangularModule, heavisideModule, impulseModule, and inputFunctionModule.

ARTdataProp * ARTItimeModule::getPort ( const string &  name)
virtual

Returns a pointer to the port object with the given name.

Exceptions
ARTerrorIf no port with the given name could be found in the current module.

Reimplemented in DWGconeJunctionModule, DWGcylinderJunctionModule, DWGcylinderModule, fractionalDelayModule, sinewaveModule, multiplicationModule, addModule, simpleDelayModule, amplificationModule, rectangularModule, heavisideModule, impulseModule, and inputFunctionModule.

void ARTItimeModule::removeGlobalParameter ( const string &  name)
virtual

Removes the definition of the given global parameter from all output ports and local parameters.

Parameters
[in]nameThe name of the global parameter.
Exceptions
ARTerrorIn case no global parameter with the given name could be found in the current time module.

Reimplemented in ARTtimeModule.

virtual void ARTItimeModule::setCurrentIndex ( int  idx)
pure virtual

Sets the current time module and all output ports to the given time index.

Parameters
[in]idxThe time index which will be set.

Implemented in DWGconeJunctionModule, DWGcylinderJunctionModule, DWGcylinderModule, fractionalDelayModule, sinewaveModule, multiplicationModule, addModule, ARTtimeModule, simpleDelayModule, amplificationModule, rectangularModule, heavisideModule, impulseModule, and inputFunctionModule.

void ARTItimeModule::setLocalParameter ( const string &  name,
const string &  expr 
)
virtual

Sets the definition of the local parameter with the given name.

Parameters
[in]nameName of the parameter.
[in]exprThe new evaluation expression of the local parameter.
Exceptions
Ifno local parameter with the given name could be found within the current time module.
void ARTItimeModule::setLocalParameter ( const string &  name,
const std::complex< double > &  val 
)
virtual

Sets the definition of the local parameter with the given name.

Parameters
[in]nameName of the parameter.
[in]valThe new complex value of the local parameter.
Exceptions
Ifno local parameter with the given name could be found within the current time module.
void ARTItimeModule::setLocalParameter ( const string &  name,
const double  val 
)
virtual

Sets the definition of the local parameter with the given name.

Parameters
[in]nameName of the parameter.
[in]valThe new complex value of the local parameter.
Exceptions
Ifno local parameter with the given name could be found within the current time module.
void ARTItimeModule::setSimulator ( ARTsimulator sim)
virtual

Sets the simulator of the current time module and all its output ports.

Parameters
[in]simA pointer to a valid ARTtimeSimulator object.
virtual void ARTItimeModule::simulateCurrentIndex ( int  idx)
pure virtual

Triggers the evaluation of all output ports of the time module for the given time index.

Parameters
[in]idxThe time index which will be simulated.

Implemented in DWGconeJunctionModule, DWGcylinderJunctionModule, DWGcylinderModule, fractionalDelayModule, sinewaveModule, multiplicationModule, addModule, ARTtimeModule, simpleDelayModule, amplificationModule, rectangularModule, heavisideModule, impulseModule, and inputFunctionModule.

Member Data Documentation

ARTtimeSimulator* ARTItimeModule::_simulator
protected

Simulator object to which the current time module belongs.