base/PlugFunction.h File Reference

Header of generic pluggable function interface definition. More...


Namespaces

namespace  openfluid
namespace  openfluid::base

Classes

struct  openfluid::base::SignatureHandledItem
struct  openfluid::base::Signature
class  openfluid::base::PluggableFunction
 Abstract class for plugin interface. More...

Defines

#define PLUGFUNCTION_PROC_NAME   "GetPlugFunction"
#define PLUGSIGNATURE_PROC_NAME   "GetPlugSignature"
#define DECLARE_PLUGIN_HOOKS
#define DEFINE_FUNCTION_HOOK(pluginclassname)
#define BEGIN_SIGNATURE_HOOK
#define END_SIGNATURE_HOOK
#define DECLARE_SIGNATURE_ID(id)   ZeSignature->ID = id;
#define DECLARE_SIGNATURE_NAME(name)   ZeSignature->Name = name;
#define DECLARE_SIGNATURE_DESCRIPTION(desc)   ZeSignature->Description = desc;
#define DECLARE_SIGNATURE_DOMAIN(domain)   ZeSignature->Domain = domain;
#define DECLARE_SIGNATURE_PROCESS(process)   ZeSignature->Process = process;
#define DECLARE_SIGNATURE_METHOD(method)   ZeSignature->Method = method;
#define DECLARE_SIGNATURE_AUTHORNAME(name)   ZeSignature->Author = name;
#define DECLARE_SIGNATURE_AUTHOREMAIL(email)   ZeSignature->AuthorEmail = email;
#define DECLARE_SIGNATURE_VERSION(version)   ZeSignature->Version = version;
#define DECLARE_SIGNATURE_STATUS(status)   ZeSignature->Status = status;
#define DECLARE_SIGNATURE_SDKVERSION   ZeSignature->setSDKVersion(OFELIB_MAJORVER,OFELIB_MINORVER,OFELIB_REVISION);
#define DECLARE_FUNCTION_PARAM(name, description, unit)   ZeSignature->HandledData.FunctionParams.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT(""),description,unit));
#define DECLARE_SU_PRODUCED_VAR(name, description, unit)   ZeSignature->HandledData.ProducedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_UPDATED_VAR(name, description, unit)   ZeSignature->HandledData.UpdatedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_REQUIRED_VAR(name, description, unit)   ZeSignature->HandledData.RequiredVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_REQUIRED_PREVVAR(name, description, unit)   ZeSignature->HandledData.RequiredPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_USED_VAR(name, description, unit)   ZeSignature->HandledData.UsedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_USED_PREVVAR(name, description, unit)   ZeSignature->HandledData.UsedPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_REQUIRED_PROPERTY(name, description, unit)   ZeSignature->HandledData.RequiredProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_USED_PROPERTY(name, description, unit)   ZeSignature->HandledData.UsedProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_REQUIRED_INICOND(name, description, unit)   ZeSignature->HandledData.RequiredIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_SU_USED_INICOND(name, description, unit)   ZeSignature->HandledData.UsedIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));
#define DECLARE_RS_PRODUCED_VAR(name, description, unit)   ZeSignature->HandledData.ProducedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));
#define DECLARE_RS_UPDATED_VAR(name, description, unit)   ZeSignature->HandledData.UpdatedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));
#define DECLARE_RS_REQUIRED_VAR(name, description, unit)   ZeSignature->HandledData.RequiredVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));
#define DECLARE_RS_USED_VAR(name, description, unit)   ZeSignature->HandledData.UsedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));
#define DECLARE_RS_REQUIRED_PROPERTY(name, description, unit)   ZeSignature->HandledData.RequiredProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));
#define DECLARE_RS_REQUIRED_INICOND(name, description, unit)   ZeSignature->HandledData.RequiredIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));
#define DECLARE_GU_PRODUCED_VAR(name, description, unit)   ZeSignature->HandledData.ProducedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_GU_UPDATED_VAR(name, description, unit)   ZeSignature->HandledData.UpdatedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_GU_REQUIRED_VAR(name, description, unit)   ZeSignature->HandledData.RequiredVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_GU_REQUIRED_PREVVAR(name, description, unit)   ZeSignature->HandledData.RequiredPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_GU_USED_VAR(name, description, unit)   ZeSignature->HandledData.UsedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_GU_USED_PREVVAR(name, description, unit)   ZeSignature->HandledData.UsedPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_GU_REQUIRED_PROPERTY(name, description, unit)   ZeSignature->HandledData.RequiredProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_GU_REQUIRED_INICOND(name, description, unit)   ZeSignature->HandledData.RequiredIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));
#define DECLARE_SU_ORDERED_LOOP
#define DECLARE_SU_LIST_LOOP   std::list<openfluid::core::SurfaceUnit*>::iterator _M_SUListiter; \
#define BEGIN_SU_ORDERED_LOOP(suobj)
#define BEGIN_SU_LIST_LOOP(sulist, suobj)
#define DECLARE_RS_ORDERED_LOOP
#define DECLARE_RS_LIST_LOOP   std::list<openfluid::core::ReachSegment*>::iterator _M_RSListiter; \
#define BEGIN_RS_ORDERED_LOOP(rsobj)
#define BEGIN_RS_LIST_LOOP(rslist, rsobj)
#define DECLARE_GU_ORDERED_LOOP
#define DECLARE_GU_LIST_LOOP   std::list<openfluid::core::GroundwaterUnit*>::iterator _M_GUListiter; \
#define BEGIN_GU_ORDERED_LOOP(guobj)
#define BEGIN_GU_LIST_LOOP(gulist, guobj)
#define END_LOOP   }

Enumerations

enum  openfluid::base::FunctionTypeList
enum  openfluid::base::ModuleTypeList
enum  openfluid::base::FunctionStatusList { openfluid::base::EXPERIMENTAL, openfluid::base::BETA, openfluid::base::STABLE }


Detailed Description

Header of generic pluggable function interface definition.

Author:
Jean-Christophe FABRE <fabrejc@ensam.inra.fr>
Every simulation function must : To be linked to the OpenFLUID-engine kernel, the simulation function must have two hooks declarations.
  extern "C"
  {
    DLLIMPORT PluggableFunction* GetPlugFunction();
    DLLIMPORT PluggableFunction* GetPlugSignature();
  };
returning the signature and an instance of the derived class inherited from the PluggableFunction class.

Define Documentation

#define BEGIN_GU_LIST_LOOP ( gulist,
guobj   ) 

Value:

for(_M_GUListiter=gulist->begin(); _M_GUListiter != gulist->end(); _M_GUListiter++) \
  { \
    guobj = *_M_GUListiter; \
Macro for the begining of a loop processing a list of GUs
Parameters:
[out] gulist pointer to a list of openfluid::core::GroundwaterUnit
[out] guobj pointer to a openfluid::core::GroundwaterUnit object, pointing to the current processed GU

#define BEGIN_GU_ORDERED_LOOP ( guobj   ) 

Value:

for(_M_GUiter=_M_GUsList->begin(); _M_GUiter != _M_GUsList->end(); _M_GUiter++) \
  { \
    guobj = *_M_GUiter; \
Macro for the begining of a loop processing GUs, following their process order
Parameters:
[out] guobj pointer to a openfluid::core::GroundwaterUnit object, pointing to the current processed GU

#define BEGIN_RS_LIST_LOOP ( rslist,
rsobj   ) 

Value:

for(_M_RSListiter=rslist->begin(); _M_RSListiter != rslist->end(); _M_RSListiter++) \
  { \
    rsobj = *_M_RSListiter; \
Macro for the begining of a loop processing a list of RSs
Parameters:
[out] rslist pointer to a list of openfluid::core::ReachSegment
[out] rsobj pointer to a openfluid::core::ReachSegment object, pointing to the current processed RS

#define BEGIN_RS_ORDERED_LOOP ( rsobj   ) 

Value:

for(_M_RSiter=_M_RSsList->begin(); _M_RSiter != _M_RSsList->end(); _M_RSiter++) \
  { \
    rsobj = *_M_RSiter; \
Macro for the begining of a loop processing RSs, following their process order
Parameters:
[out] rsobj pointer to a openfluid::core::ReachSegment object, pointing to the current processed RS

#define BEGIN_SIGNATURE_HOOK

Value:

openfluid::base::Signature* GetPlugSignature() \
  { \
    openfluid::base::Signature* ZeSignature = new openfluid::base::Signature(); \
    ZeSignature->setSDKVersion(OFELIB_MAJORVER,OFELIB_MINORVER,OFELIB_REVISION);
Macro for the beginning of definition of signature hook

#define BEGIN_SU_LIST_LOOP ( sulist,
suobj   ) 

Value:

for(_M_SUListiter=sulist->begin(); _M_SUListiter != sulist->end(); _M_SUListiter++) \
  { \
    suobj = *_M_SUListiter; \
Macro for the begining of a loop processing a list of SUs
Parameters:
[out] sulist pointer to a list of openfluid::core::SurfaceUnit
[out] suobj pointer to a openfluid::core::SurfaceUnit object, pointing to the current processed SU

#define BEGIN_SU_ORDERED_LOOP ( suobj   ) 

Value:

for(_M_SUiter=_M_SUsList->begin(); _M_SUiter != _M_SUsList->end(); _M_SUiter++) \
  { \
    suobj = *_M_SUiter; \
Macro for the begining of a loop processing SUs, following their process order
Parameters:
[out] suobj pointer to a openfluid::core::SurfaceUnit object, pointing to the current processed SU

#define DECLARE_FUNCTION_PARAM ( name,
description,
unit   )     ZeSignature->HandledData.FunctionParams.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT(""),description,unit));

Macro for declaration of a function parameter

Parameters:
[in] name name of the parameter
[in] description description of the parameter
[in] unit unit of the parameter. Could be an empty string if there is no unit

#define DECLARE_GU_LIST_LOOP   std::list<openfluid::core::GroundwaterUnit*>::iterator _M_GUListiter; \

Macro for declaration of a loop processing a list of GUs

#define DECLARE_GU_ORDERED_LOOP

Value:

std::list<openfluid::core::GroundwaterUnit*>::iterator _M_GUiter; \
  std::list<openfluid::core::GroundwaterUnit*>* _M_GUsList = mp_CoreData->getSpatialData()->getGUsOrderedList();
Macro for declaration of a loop processing GUs, following their process order

#define DECLARE_GU_PRODUCED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.ProducedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of a produced variable on all GUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_GU_REQUIRED_INICOND ( name,
description,
unit   )     ZeSignature->HandledData.RequiredIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of a required initial condition on all GUs

Parameters:
[in] name name of the initial condition
[in] description description of the initial condition
[in] unit unit of the initial condition. Could be an empty string if there is no unit

#define DECLARE_GU_REQUIRED_PREVVAR ( name,
description,
unit   )     ZeSignature->HandledData.RequiredPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of a required variable on all GUs, using a value produced on a previous time step

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_GU_REQUIRED_PROPERTY ( name,
description,
unit   )     ZeSignature->HandledData.RequiredProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of a required property on all GUs

Parameters:
[in] name name of the property
[in] description description of the property
[in] unit unit of the property. Could be an empty string if there is no unit

#define DECLARE_GU_REQUIRED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.RequiredVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of a required variable on all GUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_GU_UPDATED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.UpdatedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of an updated variable on all GUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_GU_USED_PREVVAR ( name,
description,
unit   )     ZeSignature->HandledData.UsedPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of an used variable on all GUs, using a value produced on a previous time step

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_GU_USED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.UsedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("GU"),description,unit));

Macro for declaration of an used variable on all GUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_PLUGIN_HOOKS

Value:

extern "C" \
  { \
    DLLIMPORT openfluid::base::PluggableFunction* GetPlugFunction(); \
    DLLIMPORT openfluid::base::Signature* GetPlugSignature(); \
  };
Macro for declaration of function and signature hooks

#define DECLARE_RS_LIST_LOOP   std::list<openfluid::core::ReachSegment*>::iterator _M_RSListiter; \

Macro for declaration of a loop processing a list of RSs

#define DECLARE_RS_ORDERED_LOOP

Value:

std::list<openfluid::core::ReachSegment*>::iterator _M_RSiter; \
  std::list<openfluid::core::ReachSegment*>* _M_RSsList = mp_CoreData->getSpatialData()->getRSsOrderedList();
Macro for declaration of a loop processing RSs, following their process order

#define DECLARE_RS_PRODUCED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.ProducedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));

Macro for declaration of a produced variable on all RSs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_RS_REQUIRED_INICOND ( name,
description,
unit   )     ZeSignature->HandledData.RequiredIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));

Macro for declaration of a required initial condition on all RSs

Parameters:
[in] name name of the initial condition
[in] description description of the initial condition
[in] unit unit of the initial condition. Could be an empty string if there is no unit

#define DECLARE_RS_REQUIRED_PROPERTY ( name,
description,
unit   )     ZeSignature->HandledData.RequiredProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));

Macro for declaration of a required property on all RSs

Parameters:
[in] name name of the property
[in] description description of the property
[in] unit unit of the property. Could be an empty string if there is no unit

#define DECLARE_RS_REQUIRED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.RequiredVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));

Macro for declaration of a required variable on all RSs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_RS_UPDATED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.UpdatedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));

Macro for declaration of an updated variable on all RSs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_RS_USED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.UsedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("RS"),description,unit));

Macro for declaration of an used variable on all RSs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_SIGNATURE_AUTHOREMAIL ( email   )     ZeSignature->AuthorEmail = email;

Macro for declaration of the function author email

#define DECLARE_SIGNATURE_AUTHORNAME ( name   )     ZeSignature->Author = name;

Macro for declaration of the function author name

#define DECLARE_SIGNATURE_DESCRIPTION ( desc   )     ZeSignature->Description = desc;

Macro for declaration of the function description

#define DECLARE_SIGNATURE_DOMAIN ( domain   )     ZeSignature->Domain = domain;

Macro for declaration of the function application domain

#define DECLARE_SIGNATURE_ID ( id   )     ZeSignature->ID = id;

Macro for declaration of the function ID

#define DECLARE_SIGNATURE_METHOD ( method   )     ZeSignature->Method = method;

Macro for declaration of the function application numerical method

#define DECLARE_SIGNATURE_NAME ( name   )     ZeSignature->Name = name;

Macro for declaration of the function name

#define DECLARE_SIGNATURE_PROCESS ( process   )     ZeSignature->Process = process;

Macro for declaration of the function application processes

#define DECLARE_SIGNATURE_SDKVERSION   ZeSignature->setSDKVersion(OFELIB_MAJORVER,OFELIB_MINORVER,OFELIB_REVISION);

Macro for declaration of SDK version used to build the function

#define DECLARE_SIGNATURE_STATUS ( status   )     ZeSignature->Status = status;

Macro for declaration of the function status

#define DECLARE_SIGNATURE_VERSION ( version   )     ZeSignature->Version = version;

Macro for declaration of the function version

#define DECLARE_SU_LIST_LOOP   std::list<openfluid::core::SurfaceUnit*>::iterator _M_SUListiter; \

Macro for declaration of a loop processing a list of SUs

#define DECLARE_SU_ORDERED_LOOP

Value:

std::list<openfluid::core::SurfaceUnit*>::iterator _M_SUiter; \
  std::list<openfluid::core::SurfaceUnit*>* _M_SUsList = mp_CoreData->getSpatialData()->getSUsOrderedList();
Macro for declaration of a loop processing SUs, following their process order

#define DECLARE_SU_PRODUCED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.ProducedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of a produced variable on all SUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_SU_REQUIRED_INICOND ( name,
description,
unit   )     ZeSignature->HandledData.RequiredIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of a required initial condition on all SUs

Parameters:
[in] name name of the initial condition
[in] description description of the initial condition
[in] unit unit of the initial condition. Could be an empty string if there is no unit

#define DECLARE_SU_REQUIRED_PREVVAR ( name,
description,
unit   )     ZeSignature->HandledData.RequiredPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of a required variable on all SUs, using a value produced on a previous time step

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_SU_REQUIRED_PROPERTY ( name,
description,
unit   )     ZeSignature->HandledData.RequiredProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of a required property on all SUs

Parameters:
[in] name name of the property
[in] description description of the property
[in] unit unit of the property. Could be an empty string if there is no unit

#define DECLARE_SU_REQUIRED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.RequiredVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of a required variable on all SUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_SU_UPDATED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.UpdatedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of an updated variable on all SUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_SU_USED_INICOND ( name,
description,
unit   )     ZeSignature->HandledData.UsedIniconds.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of a used initial condition on all SUs

Parameters:
[in] name name of the initial condition
[in] description description of the initial condition
[in] unit unit of the initial condition. Could be an empty string if there is no unit

#define DECLARE_SU_USED_PREVVAR ( name,
description,
unit   )     ZeSignature->HandledData.UsedPrevVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of an used variable on all SUs, using a value produced on a previous time step

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DECLARE_SU_USED_PROPERTY ( name,
description,
unit   )     ZeSignature->HandledData.UsedProps.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of a used property on all SUs

Parameters:
[in] name name of the property
[in] description description of the property
[in] unit unit of the property. Could be an empty string if there is no unit

#define DECLARE_SU_USED_VAR ( name,
description,
unit   )     ZeSignature->HandledData.UsedVars.push_back(openfluid::base::SignatureHandledItem(wxT(name),wxT("SU"),description,unit));

Macro for declaration of an used variable on all SUs

Parameters:
[in] name name of the variable
[in] description description of the variable
[in] unit unit of the variable. Could be an empty string if there is no unit

#define DEFINE_FUNCTION_HOOK ( pluginclassname   ) 

Value:

openfluid::base::PluggableFunction* GetPlugFunction() \
  { \
    return new pluginclassname(); \
  }
Macro for definition of function hook
Parameters:
[in] pluginclassname The name of the class to instanciate

#define END_LOOP   }

Macro for the ending of a loop

#define END_SIGNATURE_HOOK

Value:

return ZeSignature; \
  }
Macro for the end of definition of signature hook

#define PLUGFUNCTION_PROC_NAME   "GetPlugFunction"

Function hook name

#define PLUGSIGNATURE_PROC_NAME   "GetPlugSignature"

Signature hook name


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