openfluid::base::PluggableFunction Class Reference

Abstract class for plugin interface. More...

List of all members.

Public Member Functions

 PluggableFunction ()
virtual ~PluggableFunction ()
virtual bool initParams (openfluid::core::FuncParamsMap_t Params)=0
virtual bool prepareData ()=0
virtual bool checkConsistency ()=0
virtual bool initializeRun (const SimulationInfo *SimInfo)=0
virtual bool runStep (const SimulationStatus *SimStatus)=0
virtual bool finalizeRun (const SimulationInfo *SimInfo)=0

Protected Member Functions

void OPENFLUID_GetVariable (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::TimeStep_t Step, openfluid::core::ScalarValue *Value)
void OPENFLUID_GetVariable (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::TimeStep_t Step, openfluid::core::VectorValue *Value)
void OPENFLUID_GetInputData (openfluid::core::Unit *UnitPtr, openfluid::core::InputDataName_t InputName, openfluid::core::ScalarValue *Value)
bool OPENFLUID_IsInputDataExist (openfluid::core::Unit *UnitPtr, openfluid::core::InputDataName_t InputName)
bool OPENFLUID_IsVariableExist (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName)
bool OPENFLUID_IsScalarVariableExist (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName)
bool OPENFLUID_IsVectorVariableExist (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName)
bool OPENFLUID_IsVariableExist (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::TimeStep_t Step)
bool OPENFLUID_IsScalarVariableExist (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::TimeStep_t Step)
bool OPENFLUID_IsVectorVariableExist (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::TimeStep_t Step)
void OPENFLUID_AppendVariable (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::ScalarValue Value)
void OPENFLUID_AppendVariable (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::VectorValue &Value)
void OPENFLUID_SetVariable (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::TimeStep_t Step, openfluid::core::ScalarValue Value)
void OPENFLUID_SetVariable (openfluid::core::Unit *UnitPtr, openfluid::core::VariableName_t VarName, openfluid::core::TimeStep_t Step, openfluid::core::VectorValue Value)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, double *Value)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, long *Value)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, float *Value)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, int *Value)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, std::string *Value)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, std::vector< std::string > *Values)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, std::vector< double > *Values)
bool OPENFLUID_GetFunctionParameter (openfluid::core::FuncParamsMap_t Params, openfluid::core::FuncParamKey_t ParamName, std::vector< long > *Values)
void OPENFLUID_GetEvents (openfluid::core::Unit *UnitPtr, openfluid::core::DateTime BeginDate, openfluid::core::DateTime EndDate, openfluid::core::EventsCollection *Events)
void OPENFLUID_AppendEvent (openfluid::core::Unit *UnitPtr, openfluid::core::Event &Ev)
bool OPENFLUID_IsUnitClassExist (openfluid::core::UnitClass_t ClassName)
bool OPENFLUID_GetUnitsCount (openfluid::core::UnitClass_t ClassName, unsigned int *UnitsCount)
void OPENFLUID_RaiseWarning (std::string Sender, openfluid::core::TimeStep_t TimeStep, std::string Msg)
void OPENFLUID_RaiseWarning (std::string Sender, std::string Msg)
void OPENFLUID_RaiseError (std::string Sender, openfluid::core::TimeStep_t TimeStep, std::string Msg)
void OPENFLUID_RaiseError (std::string Sender, std::string Msg)
void OPENFLUID_RaiseError (std::string Sender, std::string Source, openfluid::core::TimeStep_t TimeStep, std::string Msg)
void OPENFLUID_RaiseError (std::string Sender, std::string Source, std::string Msg)
bool OPENFLUID_GetRunEnvironment (std::string Key, std::string *Value)
bool OPENFLUID_GetRunEnvironment (std::string Key, bool *Value)

Protected Attributes

openfluid::core::CoreRepository * mp_CoreData


Detailed Description

Abstract class for plugin interface.

Abstract class for plugin interface, defining the minimal structure for a simulation function
All simulation functions must inherit from this class.

Author:
Jean-Christophe FABRE <fabrejc@supagro.inra.fr>

Constructor & Destructor Documentation

openfluid::base::PluggableFunction::PluggableFunction (  ) 

Constructor

virtual openfluid::base::PluggableFunction::~PluggableFunction (  )  [virtual]

Virtual destructor


Member Function Documentation

virtual bool openfluid::base::PluggableFunction::checkConsistency (  )  [pure virtual]

Checks the function consistency. Called by the kernel.

virtual bool openfluid::base::PluggableFunction::finalizeRun ( const SimulationInfo SimInfo  )  [pure virtual]

Called by the kernel.

virtual bool openfluid::base::PluggableFunction::initializeRun ( const SimulationInfo SimInfo  )  [pure virtual]

Called by the kernel.

virtual bool openfluid::base::PluggableFunction::initParams ( openfluid::core::FuncParamsMap_t  Params  )  [pure virtual]

Initializes function parameters of the function, given as a hash map. Called by the kernel.

void openfluid::base::PluggableFunction::OPENFLUID_AppendEvent ( openfluid::core::Unit UnitPtr,
openfluid::core::Event Ev 
) [protected]

Appends an event on a unit

Parameters:
[in] UnitPtr a Unit
[in] Event the event to append

void openfluid::base::PluggableFunction::OPENFLUID_AppendVariable ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::VectorValue Value 
) [protected]

Appends a distributed vector variable value for a unit at the end of the previously added values for this variable

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the variable
[in] Value the added value of the variable

void openfluid::base::PluggableFunction::OPENFLUID_AppendVariable ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::ScalarValue  Value 
) [protected]

Appends a distributed scalar variable value for a unit at the end of the previously added values for this variable

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the variable
[in] Value the added value of the variable

void openfluid::base::PluggableFunction::OPENFLUID_GetEvents ( openfluid::core::Unit UnitPtr,
openfluid::core::DateTime  BeginDate,
openfluid::core::DateTime  EndDate,
openfluid::core::EventsCollection Events 
) [protected]

Gets discrete events happening on a unit during a time period

Parameters:
[in] UnitPtr a Unit
[in] BeginDate the beginning of the time period
[in] EndDate the ending of the time period
[out] EventColl the collection of event corresponding to the request

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
std::vector< long > *  Values 
) [protected]

Gets a function parameter vector of values from the parameters set, as a vector of long ints

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Values the vector of values of the requested parameter

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
std::vector< double > *  Values 
) [protected]

Gets a function parameter vector of values from the parameters set, as a vector of doubles

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Values the vector of values of the requested parameter

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
std::vector< std::string > *  Values 
) [protected]

Gets a function parameter vector of values from the parameters set, as a vector of strings

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Values the vector of values of the requested parameter

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
std::string *  Value 
) [protected]

Gets a function parameter value from the parameters set, as a string

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Value the value of the requested parameter

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
int *  Value 
) [protected]

Gets a function parameter value from the parameters set, as an int

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Value the value of the requested parameter

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
float *  Value 
) [protected]

Gets a function parameter from the parameters set, as a float

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Value the value of the requested parameter

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
long *  Value 
) [protected]

Gets a function parameter value from the parameters set, as a long int

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Value the value of the requested parameter

bool openfluid::base::PluggableFunction::OPENFLUID_GetFunctionParameter ( openfluid::core::FuncParamsMap_t  Params,
openfluid::core::FuncParamKey_t  ParamName,
double *  Value 
) [protected]

Gets a function parameter from the parameters set, as a double

Parameters:
[in] Params the parameters set for the simulation function
[in] ParamName the name of the requested parameter
[out] Value the value of the requested parameter

void openfluid::base::PluggableFunction::OPENFLUID_GetInputData ( openfluid::core::Unit UnitPtr,
openfluid::core::InputDataName_t  InputName,
openfluid::core::ScalarValue Value 
) [protected]

Gets a distributed property for a unit

Parameters:
[in] UnitPtr a Unit
[in] InputName the name of the requested property
[out] Value the value of the requested property

bool openfluid::base::PluggableFunction::OPENFLUID_GetRunEnvironment ( std::string  Key,
bool *  Value 
) [protected]

Gets an environment boolean value associated to a Key

Parameters:
[in] Key the sender of the message
[out] Value the value associated with the environment key

bool openfluid::base::PluggableFunction::OPENFLUID_GetRunEnvironment ( std::string  Key,
std::string *  Value 
) [protected]

Gets an environment string value associated to a Key

Parameters:
[in] Key the sender of the message
[out] Value the value associated with the environment key

bool openfluid::base::PluggableFunction::OPENFLUID_GetUnitsCount ( openfluid::core::UnitClass_t  ClassName,
unsigned int *  UnitsCount 
) [protected]

Returns the number of units of the class if the queried unit class exists

Parameters:
[in] ClassName the queried class name
[out] UnitsCount the queried class name
Returns:
false if the unit class does not exist

void openfluid::base::PluggableFunction::OPENFLUID_GetVariable ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::TimeStep_t  Step,
openfluid::core::VectorValue Value 
) [protected]

Gets the distributed variable value for a unit at a time step

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable
[in] Step the time step for the value of the requested variable
[out] Value the value of the requested variable (vector)

void openfluid::base::PluggableFunction::OPENFLUID_GetVariable ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::TimeStep_t  Step,
openfluid::core::ScalarValue Value 
) [protected]

Gets the distributed variable value for a unit at a time step

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable
[in] Step the time step for the value of the requested variable
[out] Value the value of the requested variable (scalar)

bool openfluid::base::PluggableFunction::OPENFLUID_IsInputDataExist ( openfluid::core::Unit UnitPtr,
openfluid::core::InputDataName_t  InputName 
) [protected]

Returns true if a distributed input data exists, false otherwise

Parameters:
[in] UnitPtr a Unit
[in] InputName the name of the queried variable

bool openfluid::base::PluggableFunction::OPENFLUID_IsScalarVariableExist ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::TimeStep_t  Step 
) [protected]

Returns true if a distributed scalar variable exists and if a value has been set for the given step, false otherwise

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable
[in] Step the time step for the value of the variable

bool openfluid::base::PluggableFunction::OPENFLUID_IsScalarVariableExist ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName 
) [protected]

Returns true if a distributed scalar variable exists, false otherwise

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable

bool openfluid::base::PluggableFunction::OPENFLUID_IsUnitClassExist ( openfluid::core::UnitClass_t  ClassName  )  [protected]

Returns true if the queried unit class exists

Parameters:
[in] ClassName the queried class name

bool openfluid::base::PluggableFunction::OPENFLUID_IsVariableExist ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::TimeStep_t  Step 
) [protected]

Returns true if a distributed variable exists and if a value has been set for the given step, false otherwise (searches both scalar and vector variables)

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable
[in] Step the time step for the value of the variable

bool openfluid::base::PluggableFunction::OPENFLUID_IsVariableExist ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName 
) [protected]

Returns true if a distributed variable exists, false otherwise (searches both scalar and vector variables)

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable

bool openfluid::base::PluggableFunction::OPENFLUID_IsVectorVariableExist ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::TimeStep_t  Step 
) [protected]

Returns true if a distributed vector variable exists and if a value has been set for the given step, false otherwise

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable
[in] Step the time step for the value of the variable

bool openfluid::base::PluggableFunction::OPENFLUID_IsVectorVariableExist ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName 
) [protected]

Returns true if a distributed vector variable exists, false otherwise

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the requested variable

void openfluid::base::PluggableFunction::OPENFLUID_RaiseError ( std::string  Sender,
std::string  Source,
std::string  Msg 
) [protected]

Raises an error message to the kernel. This stops the simulation the next time the kernel has the control

Parameters:
[in] Sender the sender of the message
[in] Source of the message (location in the sender)
[in] Msg the content of the message

void openfluid::base::PluggableFunction::OPENFLUID_RaiseError ( std::string  Sender,
std::string  Source,
openfluid::core::TimeStep_t  TimeStep,
std::string  Msg 
) [protected]

Raises a time-marked error message to the kernel. This stops the simulation the next time the kernel has the control

Parameters:
[in] Sender the sender of the message
[in] Source of the message (location in the sender)
[in] TimeStep the time step number when the message occurred
[in] Msg the content of the message

void openfluid::base::PluggableFunction::OPENFLUID_RaiseError ( std::string  Sender,
std::string  Msg 
) [protected]

Raises an error message to the kernel. This stops the simulation the next time the kernel has the control

Parameters:
[in] Sender the sender of the message
[in] Msg the content of the message

void openfluid::base::PluggableFunction::OPENFLUID_RaiseError ( std::string  Sender,
openfluid::core::TimeStep_t  TimeStep,
std::string  Msg 
) [protected]

Raises a time-marked error message to the kernel. This stops the simulation the next time the kernel has the control

Parameters:
[in] Sender the sender of the message
[in] TimeStep the time step number when the message occurred
[in] Msg the content of the message

void openfluid::base::PluggableFunction::OPENFLUID_RaiseWarning ( std::string  Sender,
std::string  Msg 
) [protected]

Raises a warning message to the kernel. This do not stops the simulation

Parameters:
[in] Sender the sender of the message
[in] Msg the content of the message

void openfluid::base::PluggableFunction::OPENFLUID_RaiseWarning ( std::string  Sender,
openfluid::core::TimeStep_t  TimeStep,
std::string  Msg 
) [protected]

Raises a time-marked warning message to the kernel. This do not stops the simulation

Parameters:
[in] Sender the sender of the message
[in] TimeStep the time step number when the message occurred
[in] Msg the content of the message

void openfluid::base::PluggableFunction::OPENFLUID_SetVariable ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::TimeStep_t  Step,
openfluid::core::VectorValue  Value 
) [protected]

Sets a distributed vector variable value for a unit at a time step

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the variable
[in] Step the time step for the value of the variable
[in] Value the added value of the variable

void openfluid::base::PluggableFunction::OPENFLUID_SetVariable ( openfluid::core::Unit UnitPtr,
openfluid::core::VariableName_t  VarName,
openfluid::core::TimeStep_t  Step,
openfluid::core::ScalarValue  Value 
) [protected]

Sets a distributed scalar variable value for a unit at a time step

Parameters:
[in] UnitPtr a Unit
[in] VarName the name of the variable
[in] Step the time step for the value of the variable
[in] Value the added value of the variable

virtual bool openfluid::base::PluggableFunction::prepareData (  )  [pure virtual]

Prepares data. Called by the kernel.

virtual bool openfluid::base::PluggableFunction::runStep ( const SimulationStatus SimStatus  )  [pure virtual]

Called by the kernel.


Member Data Documentation

openfluid::core::CoreRepository* openfluid::base::PluggableFunction::mp_CoreData [protected]

Pointer to the core repository (const). It should be used with care. Prefer to use the OPENFLUID_Xxxx methods.


Generated using Doxygen 1.5.8
Creative Commons License Creative Commons By-NC-ND license