39 #ifndef __OPENFLUID_UTILS_BINDING_HPP__ 40 #define __OPENFLUID_UTILS_BINDING_HPP__ 45 #include <QCoreApplication> 47 #include <openfluid/config.hpp> 73 #define STRING_TO_ALLOCATED_CARRAY(str,carray) \ 74 char* carray = (char*)malloc((str.length()+1)*sizeof(char)); \ 75 strcpy(carray,str.c_str()); 84 #define OPENFLUID_BINDING_DEFINE(erroutclass)\ 85 bool openfluid::utils::Binding::m_Initialized = false; \ 86 int openfluid::utils::Binding::m_qapp_argc = 1; \ 87 char openfluid::utils::Binding::m_qapp_arg0[] = "ROpenFLUID"; \ 88 char* openfluid::utils::Binding::m_qapp_argv[] = { openfluid::utils::Binding::m_qapp_arg0 , NULL }; \ 89 std::string openfluid::utils::Binding::m_LastErrorMsg = ""; \ 90 const openfluid::utils::BindingAbstractOutErr* openfluid::utils::Binding::mp_OutErr = new erroutclass(); 150 static bool m_Initialized;
152 static int m_qapp_argc;
153 static char m_qapp_arg0[];
154 static char* m_qapp_argv[];
156 static std::string m_LastErrorMsg;
164 bool m_IsProject =
false;
165 bool m_IsDataset =
false;
167 std::string m_SourcePath =
"";
168 std::string m_OutputDir =
"";
170 bool m_IsSimulationRun =
false;
178 m_FluidXDesc(&m_FluidXListener)
198 std::map<openfluid::core::UnitsClass_t,unsigned int> getUnitsCountByClasses()
200 std::map<openfluid::core::UnitsClass_t,unsigned int> RetMap;
204 if (RetMap.find(ItUnits.getUnitsClass()) == RetMap.end())
205 RetMap[ItUnits.getUnitsClass()] = 0;
206 RetMap[ItUnits.getUnitsClass()]++;
233 std::setlocale(LC_NUMERIC,
"C");
235 m_Initialized =
true;
289 return m_LastErrorMsg.c_str();
347 const unsigned int Count = SimsPaths.size();
349 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
351 for (
unsigned int i=0;i<Count;i++)
353 Paths[i] = (
char*)malloc(SimsPaths[i].size()+1);
354 std::copy(SimsPaths[i].begin(), SimsPaths[i].end(), Paths[i]);
355 Paths[i][SimsPaths[i].size()] =
'\0';
388 const unsigned int Count = ExtraSimsPaths.size();
390 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
392 for (
unsigned int i=0;i<Count;i++)
394 Paths[i] = (
char*)malloc(ExtraSimsPaths[i].size()+1);
395 std::copy(ExtraSimsPaths[i].begin(), ExtraSimsPaths[i].end(), Paths[i]);
396 Paths[i][ExtraSimsPaths[i].size()] =
'\0';
457 const unsigned int Count = ObsPaths.size();
459 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
461 for (
unsigned int i=0;i<Count;i++)
463 Paths[i] = (
char*)malloc(ObsPaths[i].size()+1);
464 std::copy(ObsPaths[i].begin(), ObsPaths[i].end(), Paths[i]);
465 Paths[i][ObsPaths[i].size()] =
'\0';
498 const unsigned int Count = ExtraObsPaths.size();
500 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
502 for (
unsigned int i=0;i<Count;i++)
504 Paths[i] = (
char*)malloc(ExtraObsPaths[i].size()+1);
505 std::copy(ExtraObsPaths[i].begin(), ExtraObsPaths[i].end(), Paths[i]);
506 Paths[i][ExtraObsPaths[i].size()] =
'\0';
523 openfluid::base::RunContextManager::instance()->setOutputDir(std::string(Path));
546 openfluid::base::RunContextManager::instance()->setInputDir(std::string(Path));
547 Data->m_FluidXDesc.
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
549 Data->m_IsSimulationRun =
false;
551 if (!Data->m_IsProject)
553 Data->m_IsDataset =
true;
554 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getInputDir();
562 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
564 catch (std::bad_alloc& E)
566 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
567 ". Possibly not enough memory available\n";
569 catch (std::exception& E)
571 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
575 m_LastErrorMsg =
"UNKNOWN ERROR\n";
578 Data->m_IsProject =
false;
579 Data->m_IsDataset =
false;
580 Data->m_SourcePath =
"";
605 if (!openfluid::base::RunContextManager::instance()->
openProject(std::string(Path)))
609 std::string(Path) +
" is not a correct project path");
612 Data->m_IsProject =
true;
613 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getProjectPath();
615 return Binding::openDataset(openfluid::base::RunContextManager::instance()->getInputDir().c_str());
619 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
621 catch (std::bad_alloc& E)
623 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
624 ". Possibly not enough memory available\n";
626 catch (std::exception& E)
628 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
632 m_LastErrorMsg =
"UNKNOWN ERROR\n";
659 openfluid::machine::SimulatorPluginsManager::instance()->unloadAllWares();
662 std::unique_ptr<openfluid::machine::MachineListener> Listener;
674 mp_OutErr->
printfOut(
"%s",
"Building spatial domain...");
690 mp_OutErr->
printfOut(
"%s",
"Building model instance...");
709 mp_OutErr->
printfOut(
"%s",
"Building monitoring instance...");
726 m_OutputDir = openfluid::base::RunContextManager::instance()->getOutputDir();
742 m_IsSimulationRun =
true;
748 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
750 catch (std::bad_alloc& E)
752 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
753 ". Possibly not enough memory available\n";
755 catch (std::exception& E)
757 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
761 m_LastErrorMsg =
"UNKNOWN ERROR\n";
780 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsInfos;
786 if (UnitsInfos.find(ClassName) == UnitsInfos.end())
787 UnitsInfos[ClassName] = 0;
789 UnitsInfos[ClassName]++;
792 mp_OutErr->
printfOut(
"Spatial domain is made of %i spatial units\n",
795 for (
auto& ItUnitsInfos : UnitsInfos)
797 mp_OutErr->
printfOut(
" - %i units of class %s\n",ItUnitsInfos.second,ItUnitsInfos.first.c_str());
839 mp_OutErr->
printfOut(
" generator for variable %s on units %s\n",
846 mp_OutErr->
printfOut(
"Simulation period from %s to %s\n",
945 void setPeriod(
const char* BeginDate,
const char* EndDate)
947 std::string StrBeginDate(BeginDate);
948 std::string StrEndDate(EndDate);
973 std::string SimIDsStr(
"");
974 std::ostringstream ssSimIDs;
975 std::string sep =
"";
978 for (
auto& ItItem : AdvModDesc.items())
982 ssSimIDs << sep << AdvModDesc.
getID(ItItem);
987 SimIDsStr = ssSimIDs.str();
1004 std::string SimIDStr(SimID);
1005 std::string ParamNamesStr(
"");
1006 std::ostringstream ssParamNames;
1007 std::string sep =
"";
1024 ssParamNames << sep << ItParam.first;
1028 ParamNamesStr = ssParamNames.str();
1047 std::string ParamValStr(
"");
1048 std::string SimIDStr(SimID);
1049 std::string ParamNameStr(ParamName);
1057 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1059 if (ItParam != Params.end())
1061 ParamValStr = (*ItParam).second;
1085 std::string SimIDStr(SimID);
1086 std::string ParamNameStr(ParamName);
1087 std::string ParamValStr(ParamVal);
1093 ItModelInfos->setParameter(ParamNameStr,ParamValStr);
1109 std::string SimIDStr(SimID);
1110 std::string ParamNameStr(ParamName);
1117 ItModelInfos->eraseParameter(ParamNameStr);
1135 std::string VarNameStr(VarName);
1136 std::string UnitsClassStr(UnitsClass);
1137 std::string ParamNamesStr(
"");
1138 std::ostringstream ssParamNames;
1139 std::string sep =
"";
1149 ssParamNames << sep << ItParam.first;
1156 ParamNamesStr = ssParamNames.str();
1176 std::string UnitsClassStr(UnitsClass);
1177 std::string VarNameStr(VarName);
1178 std::string ParamNameStr(ParamName);
1179 std::string ParamValStr(
"");
1188 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1190 if (ItParam != Params.end())
1192 ParamValStr = (*ItParam).second;
1216 void setGeneratorParam(
const char* UnitsClass,
const char* VarName,
const char* ParamName,
const char* ParamVal)
1218 std::string UnitsClassStr(UnitsClass);
1219 std::string VarNameStr(VarName);
1220 std::string ParamNameStr(ParamName);
1221 std::string ParamValStr(ParamVal);
1229 ItModelInfos->setParameter(ParamNameStr,ParamValStr);
1247 std::string VarNamesStr(
"");
1248 std::string UnitsClassStr(UnitsClass);
1249 std::ostringstream ssVarNames;
1250 std::string sep =
"";
1262 VarNamesStr = ssVarNames.str();
1279 std::string ParamNamesStr(
"");
1280 std::ostringstream ssParamNames;
1281 std::string sep =
"";
1285 ssParamNames << sep << ItParam.first;
1289 ParamNamesStr = ssParamNames.str();
1306 std::string ParamNameStr(ParamName);
1307 std::string ParamValStr(
"");
1310 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1312 if (ItParam != Params.end())
1314 ParamValStr = (*ItParam).second;
1335 std::string ParamNameStr(ParamName);
1336 std::string ParamValStr(ParamVal);
1352 std::string ParamNameStr(ParamName);
1368 std::string ObsIDsStr(
"");
1369 std::ostringstream ssObsIDs;
1370 std::string sep =
"";
1373 for (
auto& ItItem : AdvMonDesc.items())
1375 ssObsIDs << sep << AdvMonDesc.
getID(ItItem);
1379 ObsIDsStr = ssObsIDs.str();
1396 std::string ObsIDStr(ObsID);
1397 std::string ParamNamesStr(
"");
1398 std::ostringstream ssParamNames;
1399 std::string sep =
"";
1416 ssParamNames << sep << ItParam.first;
1420 ParamNamesStr = ssParamNames.str();
1439 std::string ParamValStr(
"");
1440 std::string ObsIDStr(ObsID);
1441 std::string ParamNameStr(ParamName);
1449 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1451 if (ItParam != Params.end())
1453 ParamValStr = (*ItParam).second;
1477 std::string ObsIDStr(ObsID);
1478 std::string ParamNameStr(ParamName);
1479 std::string ParamValStr(ParamVal);
1486 ItObsInfos->setParameter(ParamNameStr,ParamValStr);
1503 std::string ObsIDStr(ObsID);
1504 std::string ParamNameStr(ParamName);
1510 ItObsInfos->eraseParameter(ParamNameStr);
1525 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1526 UnitsCountByClasses = getUnitsCountByClasses();
1528 std::map<openfluid::core::UnitsClass_t,unsigned int>::iterator ItUCC;
1529 const unsigned int Count = UnitsCountByClasses.size();
1531 char** Classes = (
char**)malloc(Count*
sizeof(
char*));
1534 for (
auto& ItUCC : UnitsCountByClasses)
1536 Classes[i] = (
char*)malloc(ItUCC.first.size()+1);
1537 std::copy(ItUCC.first.begin(), ItUCC.first.end(), Classes[i]);
1538 Classes[i][ItUCC.first.size()] =
'\0';
1557 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1558 UnitsCountByClasses = getUnitsCountByClasses();
1560 return UnitsCountByClasses.size();
1580 IDs = (
int*)malloc(Count*
sizeof(
int));
1585 if (ItUnits.getUnitsClass() == std::string(UnitsClass))
1587 IDs[i] = ItUnits.getID();
1607 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1608 UnitsCountByClasses = getUnitsCountByClasses();
1610 unsigned int Count = 0;
1612 if (UnitsCountByClasses.find(std::string(UnitsClass)) != UnitsCountByClasses.end())
1614 Count = UnitsCountByClasses[std::string(UnitsClass)];
1632 std::string UnitClassStr(UnitsClass);
1633 std::string AttrNamesStr(
"");
1634 std::ostringstream ssAttrNames;
1635 std::string sep =
"";
1638 for (std::string ItName : AdvDomDesc.getAttributesNames(UnitsClass))
1640 ssAttrNames << sep << ItName;
1644 AttrNamesStr = ssAttrNames.str();
1662 std::string UnitClassStr(UnitsClass);
1663 std::string AttrNameStr(AttrName);
1664 std::string AttrValStr(AttrVal);
1668 if (ItAttr.getUnitsClass() == UnitClassStr)
1670 for (
auto & ItUnitData : ItAttr.attributes())
1672 ItUnitData.second[AttrNameStr] = AttrValStr;
1690 const char*
getAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName)
1692 std::string UnitClassStr(UnitsClass);
1693 std::string AttrNameStr(AttrName);
1694 std::string AttrValStr(
"");
1698 if (ItAttr.getUnitsClass() == UnitClassStr)
1700 openfluid::fluidx::AttributesDescriptor::UnitIDAttribute_t::const_iterator ItUnitData =
1701 ItAttr.attributes().find(UnitID);
1702 if (ItUnitData != ItAttr.attributes().end())
1704 if ((*ItUnitData).second.find(AttrNameStr) != (*ItUnitData).second.end())
1706 AttrValStr = (*ItUnitData).second.at(AttrNameStr);
1730 void setAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName,
const char* AttrVal)
1732 std::string UnitClassStr(UnitsClass);
1733 std::string AttrNameStr(AttrName);
1734 std::string AttrValStr(AttrVal);
1738 if (ItAttr.getUnitsClass() == UnitClassStr)
1740 openfluid::fluidx::AttributesDescriptor::UnitIDAttribute_t::iterator ItUnitData =
1741 ItAttr.attributes().find(UnitID);
1742 if (ItUnitData != ItAttr.attributes().end())
1744 if ((*ItUnitData).second.find(AttrNameStr) != (*ItUnitData).second.end())
1746 (*ItUnitData).second[AttrNameStr] = AttrValStr;
1766 std::string UnitClassStr(UnitsClass);
1767 std::string AttrNameStr(AttrName);
1771 if (ItAttr.getUnitsClass() == UnitClassStr)
1773 for (
auto& ItUnitData : ItAttr.attributes())
1774 ItUnitData.second.erase(AttrNameStr);
1793 const char* UnitsClass,
const char* UnitsIDs,
1794 const char* VarName,
int Precision)
1796 std::string BindingNameStr(BindingName);
1797 std::string UnitsClassStr(UnitsClass);
1798 std::string UnitsIDsStr(UnitsIDs);
1799 std::string VarNameStr(VarName);
1804 if (AdvMonDesc.findFirstItem(
"export.vars.files.csv") < 0)
1808 AdvMonDesc.itemAt(AdvMonDesc.findFirstItem(
"export.vars.files.csv"));
1816 std::ostringstream ssPrec;
1817 ssPrec << Precision;
1818 std::string PrecStr(ssPrec.str());
1823 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsclass",
1825 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsIDs",
1827 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".vars",
1829 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".format",
std::map< WareParamKey_t, WareParamValue_t > WareParams_t
Definition: TypeDefs.hpp:130
Definition: Exception.hpp:52
static std::vector< std::string > getExtraSimulatorsDirs()
Definition: Environment.hpp:319
Definition: AdvancedDomainDescriptor.hpp:91
openfluid::ware::WareID_t getID(ObserverDescriptor *Item) const
int findFirstItem(const openfluid::ware::WareID_t &ID) const
Definition: AdvancedWareSetDescriptor.hpp:270
int getDefaultDeltaT()
Definition: Binding.hpp:880
void setGlobalParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
Definition: WareSetDescriptor.hpp:106
static char ** getSimulatorsPaths()
Definition: Binding.hpp:343
unsigned int getUnitsClassesCount()
Definition: Binding.hpp:1555
void setEndDate(const openfluid::core::DateTime EndDate)
Definition: RunDescriptor.hpp:86
static Binding * openDataset(const char *Path)
Definition: Binding.hpp:536
void addVariablesExportAsCSV(const char *BindingName, const char *UnitsClass, const char *UnitsIDs, const char *VarName, int Precision)
Definition: Binding.hpp:1792
static void addExtraSimulatorsDirs(const std::string &Paths)
SetDescription_t & items()
Definition: WareSetDescriptor.hpp:86
Definition: ModelInstance.hpp:68
Definition: SimulatorDescriptor.hpp:52
const char * getObserverParamNames(const char *ObsID)
Definition: Binding.hpp:1394
const char * getAttribute(const char *UnitsClass, int UnitID, const char *AttrName)
Definition: Binding.hpp:1690
const char * getObserversIDs()
Definition: Binding.hpp:1366
static unsigned int getSimulatorsPathsCount()
Definition: Binding.hpp:329
void removeModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1350
static void addExtraSimulatorsPaths(const char *Paths)
Definition: Binding.hpp:302
std::list< AttributesDescriptor > & attributes()
Definition: SpatialDomainDescriptor.hpp:77
openfluid::fluidx::SpatialDomainDescriptor & spatialDomainDescriptor()
Definition: FluidXDescriptor.hpp:155
Definition: GeneratorDescriptor.hpp:52
void removeSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1107
Definition: BindingAbstractOutErr.hpp:46
const char * getModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1304
const char * getGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName)
Definition: Binding.hpp:1174
static const char * getVersion()
Definition: Binding.hpp:273
static void resetExtraObserversPaths()
Definition: Binding.hpp:425
void setGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1216
Definition: MachineListener.hpp:55
void setDefaultDeltaT(int DeltaT)
Definition: Binding.hpp:894
static void buildSimulationBlobFromDescriptors(const openfluid::fluidx::FluidXDescriptor &FluidXDesc, SimulationBlob &SimBlob)
static std::vector< std::string > getSimulatorsDirs()
const char * getGeneratorsVarNames(const char *UnitsClass)
Definition: Binding.hpp:1245
static unsigned int getObserversPathsCount()
Definition: Binding.hpp:439
static ExceptionContext computeContext(const std::string &AppName)
Definition: ApplicationException.hpp:74
int * getUnitsIDs(const char *UnitsClass)
Definition: Binding.hpp:1572
const char * what() const
Definition: Exception.hpp:87
const char * getModelGlobalParamNames()
Definition: Binding.hpp:1277
Definition: GeneratorDescriptor.hpp:55
Definition: AdvancedModelDescriptor.hpp:52
Definition: SimulationBlob.hpp:52
void setObserverParam(const char *ObsID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1475
std::list< SpatialUnitDescriptor > & spatialUnits()
Definition: SpatialDomainDescriptor.hpp:71
bool setFromISOString(const std::string &DateTimeStr)
virtual void printfOut(const char *fmt,...) const =0
int getDeltaT() const
Definition: RunDescriptor.hpp:89
Definition: MonitoringInstance.hpp:57
void eraseGlobalParameter(const openfluid::ware::WareParamKey_t &Key)
Definition: WareSetDescriptor.hpp:140
Definition: ApplicationException.hpp:50
const char * getAttributesNames(const char *UnitsClass)
Definition: Binding.hpp:1630
void setAttribute(const char *UnitsClass, int UnitID, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1730
const char * getPeriodEndDate()
Definition: Binding.hpp:926
static void resetExtraSimulatorsDirs()
void setPeriod(const char *BeginDate, const char *EndDate)
Definition: Binding.hpp:945
openfluid::fluidx::MonitoringDescriptor & monitoringDescriptor()
Definition: FluidXDescriptor.hpp:164
static char ** getExtraSimulatorsPaths()
Definition: Binding.hpp:384
Definition: Engine.hpp:75
static void resetExtraObserversDirs()
openfluid::fluidx::RunDescriptor & runDescriptor()
Definition: FluidXDescriptor.hpp:158
void removeAttribute(const char *UnitsClass, const char *AttrName)
Definition: Binding.hpp:1764
openfluid::ware::WareID_t getID(ModelItemDescriptor *Item) const
static Binding * openProject(const char *Path)
Definition: Binding.hpp:597
static char ** getExtraObserversPaths()
Definition: Binding.hpp:494
Definition: GeneratorDescriptor.hpp:55
Definition: ObserverDescriptor.hpp:49
static void buildMonitoringInstanceFromDescriptor(const openfluid::fluidx::MonitoringDescriptor &MonDesc, MonitoringInstance &MonInstance)
Definition: FluidXDescriptor.hpp:68
#define INIT_OPENFLUID_APPLICATION(ac, av)
Definition: Init.hpp:54
Class for easier binding with other programming languages.
Definition: Binding.hpp:146
static unsigned int getExtraObserversPathsCount()
Definition: Binding.hpp:480
Definition: AdvancedMonitoringDescriptor.hpp:53
#define STRING_TO_ALLOCATED_CARRAY(str, carray)
Definition: Binding.hpp:73
openfluid::core::DateTime getBeginDate() const
Definition: RunDescriptor.hpp:77
std::string getAsISOString() const
static void addExtraObserversDirs(const std::string &Paths)
static unsigned int getExtraSimulatorsPathsCount()
Definition: Binding.hpp:370
const char * getSimulatorParamNames(const char *SimID)
Definition: Binding.hpp:1002
static char ** getObserversPaths()
Definition: Binding.hpp:453
Definition: StringValue.hpp:91
char ** getUnitsClasses()
Definition: Binding.hpp:1523
const char * getGeneratorParamNames(const char *UnitsClass, const char *VarName)
Definition: Binding.hpp:1133
openfluid::fluidx::CoupledModelDescriptor & modelDescriptor()
Definition: FluidXDescriptor.hpp:152
void setParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
Definition: ModelItemDescriptor.hpp:52
void setDeltaT(const int DeltaT)
Definition: RunDescriptor.hpp:92
Definition: BindingVerboseMachineListener.hpp:50
void setModelGlobalParam(const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1333
void removeObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1501
Definition: Listener.hpp:55
openfluid::core::VariableName_t getVariableName() const
const char * getObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1437
void createAttribute(const char *UnitsClass, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1660
void printSimulationInfo()
Definition: Binding.hpp:776
const char * getPeriodBeginDate()
Definition: Binding.hpp:908
const char * getSimulatorsIDs()
Definition: Binding.hpp:971
void appendItem(I *Item)
Definition: AdvancedWareSetDescriptor.hpp:163
static void addExtraObserversPaths(const char *Paths)
Definition: Binding.hpp:412
static std::vector< std::string > getObserversDirs()
GeneratorMethod getGeneratorMethod() const
static std::vector< std::string > getExtraObserversDirs()
Definition: Environment.hpp:358
openfluid::ware::WareParams_t & parameters()
static void buildModelInstanceFromDescriptor(const openfluid::fluidx::CoupledModelDescriptor &ModelDesc, ModelInstance &MInstance)
static void destroy(Binding *B)
Definition: Binding.hpp:260
std::string UnitsClass_t
Definition: TypeDefs.hpp:71
static void resetExtraSimulatorsPaths()
Definition: Binding.hpp:315
void setBeginDate(const openfluid::core::DateTime BeginDate)
Definition: RunDescriptor.hpp:80
Definition: GeneratorDescriptor.hpp:55
bool isType(openfluid::ware::WareType MIType) const
openfluid::core::DateTime getEndDate() const
Definition: RunDescriptor.hpp:83
static void init()
Definition: Binding.hpp:222
unsigned int getUnitsIDsCount(const char *UnitsClass)
Definition: Binding.hpp:1605
openfluid::ware::WareParams_t getGlobalParameters() const
Definition: WareSetDescriptor.hpp:130
static void setCurrentOutputDir(const char *Path)
Definition: Binding.hpp:521
static const char * getLastError()
Definition: Binding.hpp:287
Class for management of date and time information.
Definition: DateTime.hpp:132
std::string getAsString(std::string Format) const
openfluid::core::UnitsClass_t getUnitsClass() const
const char * getSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1045
void loadFromDirectory(const std::string &DirPath)
void setSimulatorParam(const char *SimID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1083
static Binding * make()
Definition: Binding.hpp:246
Definition: ApplicationException.hpp:47
const char * getSimulationOutputDir()
Definition: Binding.hpp:865
Definition: IOListener.hpp:54
Definition: GeneratorDescriptor.hpp:55
unsigned short int runSimulation(int IsVerbose=false)
Definition: Binding.hpp:647