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[] = "OpenFLUID_Binding"; \ 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(); 153 static bool m_Initialized;
155 static int m_qapp_argc;
156 static char m_qapp_arg0[];
157 static char* m_qapp_argv[];
159 static std::string m_LastErrorMsg;
167 bool m_IsProject =
false;
168 bool m_IsDataset =
false;
170 std::string m_SourcePath =
"";
171 std::string m_OutputDir =
"";
173 bool m_IsSimulationRun =
false;
181 m_FluidXDesc(&m_FluidXListener)
201 std::map<openfluid::core::UnitsClass_t,unsigned int> getUnitsCountByClasses()
203 std::map<openfluid::core::UnitsClass_t,unsigned int> RetMap;
207 RetMap[UnitsByClass.first] = UnitsByClass.second.size();
234 std::setlocale(LC_NUMERIC,
"C");
236 m_Initialized =
true;
291 return m_LastErrorMsg.c_str();
349 const unsigned int Count = SimsPaths.size();
351 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
353 for (
unsigned int i=0;i<Count;i++)
355 Paths[i] = (
char*)malloc(SimsPaths[i].size()+1);
356 std::copy(SimsPaths[i].begin(), SimsPaths[i].end(), Paths[i]);
357 Paths[i][SimsPaths[i].size()] =
'\0';
390 const unsigned int Count = ExtraSimsPaths.size();
392 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
394 for (
unsigned int i=0;i<Count;i++)
396 Paths[i] = (
char*)malloc(ExtraSimsPaths[i].size()+1);
397 std::copy(ExtraSimsPaths[i].begin(), ExtraSimsPaths[i].end(), Paths[i]);
398 Paths[i][ExtraSimsPaths[i].size()] =
'\0';
459 const unsigned int Count = ObsPaths.size();
461 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
463 for (
unsigned int i=0;i<Count;i++)
465 Paths[i] = (
char*)malloc(ObsPaths[i].size()+1);
466 std::copy(ObsPaths[i].begin(), ObsPaths[i].end(), Paths[i]);
467 Paths[i][ObsPaths[i].size()] =
'\0';
500 const unsigned int Count = ExtraObsPaths.size();
502 char** Paths = (
char**)malloc(Count*
sizeof(
char*));
504 for (
unsigned int i=0;i<Count;i++)
506 Paths[i] = (
char*)malloc(ExtraObsPaths[i].size()+1);
507 std::copy(ExtraObsPaths[i].begin(), ExtraObsPaths[i].end(), Paths[i]);
508 Paths[i][ExtraObsPaths[i].size()] =
'\0';
525 openfluid::base::RunContextManager::instance()->setOutputDir(std::string(Path));
548 openfluid::base::RunContextManager::instance()->setInputDir(std::string(Path));
549 Data->m_FluidXDesc.
loadFromDirectory(openfluid::base::RunContextManager::instance()->getInputDir());
551 Data->m_IsSimulationRun =
false;
553 if (!Data->m_IsProject)
555 Data->m_IsDataset =
true;
556 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getInputDir();
564 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
566 catch (std::bad_alloc& E)
568 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
569 ". Possibly not enough memory available\n";
571 catch (std::exception& E)
573 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
577 m_LastErrorMsg =
"UNKNOWN ERROR\n";
580 Data->m_IsProject =
false;
581 Data->m_IsDataset =
false;
582 Data->m_SourcePath =
"";
607 if (!openfluid::base::RunContextManager::instance()->
openProject(std::string(Path)))
611 std::string(Path) +
" is not a correct project path");
614 Data->m_IsProject =
true;
615 Data->m_SourcePath = openfluid::base::RunContextManager::instance()->getProjectPath();
617 return Binding::openDataset(openfluid::base::RunContextManager::instance()->getInputDir().c_str());
621 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
623 catch (std::bad_alloc& E)
625 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
626 ". Possibly not enough memory available\n";
628 catch (std::exception& E)
630 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
634 m_LastErrorMsg =
"UNKNOWN ERROR\n";
661 openfluid::machine::SimulatorPluginsManager::instance()->unloadAllWares();
664 std::unique_ptr<openfluid::machine::MachineListener> Listener;
668 Listener = std::make_unique<BindingVerboseMachineListener>(mp_OutErr);
672 Listener = std::make_unique<openfluid::machine::MachineListener>();
680 mp_OutErr->
printfOut(
"%s",
"Building spatial domain...");
696 mp_OutErr->
printfOut(
"%s",
"Building model instance...");
715 mp_OutErr->
printfOut(
"%s",
"Building monitoring instance...");
732 m_OutputDir = openfluid::base::RunContextManager::instance()->getOutputDir();
748 m_IsSimulationRun =
true;
754 m_LastErrorMsg =
"OpenFLUID ERROR: " + std::string(E.
what()) +
"\n";
756 catch (std::bad_alloc& E)
758 m_LastErrorMsg =
"MEMORY ALLOCATION ERROR: " + std::string(E.what()) +
759 ". Possibly not enough memory available\n";
761 catch (std::exception& E)
763 m_LastErrorMsg =
"SYSTEM ERROR: " + std::string(E.what()) +
"\n";
767 m_LastErrorMsg =
"UNKNOWN ERROR\n";
785 mp_OutErr->
printfOut(
"Spatial domain is made of %i spatial units\n",
790 mp_OutErr->
printfOut(
" - %i units of class %s\n",UnitsClass.second.size(),UnitsClass.first.c_str());
796 mp_OutErr->
printfOut(
"Model is made of %i simulation items\n",m_FluidXDesc.
model().
items().size());
798 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
832 mp_OutErr->
printfOut(
" generator for variable %s on units %s\n",
839 mp_OutErr->
printfOut(
"Simulation period from %s to %s\n",
939 void setPeriod(
const char* BeginDate,
const char* EndDate)
941 std::string StrBeginDate(BeginDate);
942 std::string StrEndDate(EndDate);
967 std::string SimIDsStr(
"");
968 std::ostringstream ssSimIDs;
969 std::string sep =
"";
972 for (
const auto& Item : ModDesc.items())
976 ssSimIDs << sep << ModDesc.
getID(Item);
981 SimIDsStr = ssSimIDs.str();
998 std::string SimIDStr(SimID);
999 std::string ParamNamesStr(
"");
1000 std::ostringstream ssParamNames;
1001 std::string sep =
"";
1018 ssParamNames << sep << Param.first;
1022 ParamNamesStr = ssParamNames.str();
1041 std::string ParamValStr(
"");
1042 std::string SimIDStr(SimID);
1043 std::string ParamNameStr(ParamName);
1045 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1051 openfluid::ware::WareParams_t::iterator ItParam = Params.find(ParamNameStr);
1053 if (ItParam != Params.end())
1055 ParamValStr = (*ItParam).second;
1079 std::string SimIDStr(SimID);
1080 std::string ParamNameStr(ParamName);
1081 std::string ParamValStr(ParamVal);
1083 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1087 ModelInfos->setParameter(ParamNameStr,ParamValStr);
1103 std::string SimIDStr(SimID);
1104 std::string ParamNameStr(ParamName);
1106 for (
auto& ModelInfos : m_FluidXDesc.
model().
items())
1111 ModelInfos->eraseParameter(ParamNameStr);
1129 std::string VarNameStr(VarName);
1130 std::string UnitsClassStr(UnitsClass);
1131 std::string ParamNamesStr(
"");
1132 std::ostringstream ssParamNames;
1133 std::string sep =
"";
1135 for (
const auto& Item : m_FluidXDesc.
model().
items())
1143 ssParamNames << sep << Param.first;
1150 ParamNamesStr = ssParamNames.str();
1170 std::string UnitsClassStr(UnitsClass);
1171 std::string VarNameStr(VarName);
1172 std::string ParamNameStr(ParamName);
1173 std::string ParamValStr(
"");
1175 for (
const auto& ModelInfos : m_FluidXDesc.
model().
items())
1182 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1184 if (ItParam != Params.end())
1186 ParamValStr = (*ItParam).second;
1210 void setGeneratorParam(
const char* UnitsClass,
const char* VarName,
const char* ParamName,
const char* ParamVal)
1212 std::string UnitsClassStr(UnitsClass);
1213 std::string VarNameStr(VarName);
1214 std::string ParamNameStr(ParamName);
1215 std::string ParamValStr(ParamVal);
1217 for (
auto& ItModelInfos : m_FluidXDesc.
model().
items())
1223 ItModelInfos->setParameter(ParamNameStr,ParamValStr);
1241 std::string VarNamesStr(
"");
1242 std::string UnitsClassStr(UnitsClass);
1243 std::ostringstream ssVarNames;
1244 std::string sep =
"";
1246 for (
const auto& Item : m_FluidXDesc.
model().
items())
1256 VarNamesStr = ssVarNames.str();
1273 std::string ParamNamesStr(
"");
1274 std::ostringstream ssParamNames;
1275 std::string sep =
"";
1279 ssParamNames << sep << Param.first;
1283 ParamNamesStr = ssParamNames.str();
1300 std::string ParamNameStr(ParamName);
1301 std::string ParamValStr(
"");
1304 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1306 if (ItParam != Params.end())
1308 ParamValStr = (*ItParam).second;
1329 std::string ParamNameStr(ParamName);
1330 std::string ParamValStr(ParamVal);
1346 std::string ParamNameStr(ParamName);
1362 std::string ObsIDsStr(
"");
1363 std::ostringstream ssObsIDs;
1364 std::string sep =
"";
1367 for (
auto& ItItem : MonDesc.
items())
1369 ssObsIDs << sep << MonDesc.
getID(ItItem);
1373 ObsIDsStr = ssObsIDs.str();
1390 std::string ObsIDStr(ObsID);
1391 std::string ParamNamesStr(
"");
1392 std::ostringstream ssParamNames;
1393 std::string sep =
"";
1410 ssParamNames << sep << Param.first;
1414 ParamNamesStr = ssParamNames.str();
1433 std::string ParamValStr(
"");
1434 std::string ObsIDStr(ObsID);
1435 std::string ParamNameStr(ParamName);
1443 openfluid::ware::WareParams_t::const_iterator ItParam = Params.find(ParamNameStr);
1445 if (ItParam != Params.end())
1447 ParamValStr = (*ItParam).second;
1471 std::string ObsIDStr(ObsID);
1472 std::string ParamNameStr(ParamName);
1473 std::string ParamValStr(ParamVal);
1480 ObsInfos->setParameter(ParamNameStr,ParamValStr);
1497 std::string ObsIDStr(ObsID);
1498 std::string ParamNameStr(ParamName);
1504 ObsInfos->eraseParameter(ParamNameStr);
1519 std::map<openfluid::core::UnitsClass_t,unsigned int> UnitsCountByClasses;
1520 UnitsCountByClasses = getUnitsCountByClasses();
1522 const unsigned int Count = UnitsCountByClasses.size();
1524 char** Classes = (
char**)malloc(Count*
sizeof(
char*));
1527 for (
auto& ItUCC : UnitsCountByClasses)
1529 Classes[i] = (
char*)malloc(ItUCC.first.size()+1);
1530 std::copy(ItUCC.first.begin(), ItUCC.first.end(), Classes[i]);
1531 Classes[i][ItUCC.first.size()] =
'\0';
1550 return getUnitsCountByClasses().size();
1570 IDs = (
int*)malloc(IDsOfClass.size()*
sizeof(int));
1572 for (
const auto& ID : IDsOfClass)
1614 std::string UnitClassStr(UnitsClass);
1615 std::string AttrNamesStr(
"");
1616 std::ostringstream ssAttrNames;
1617 std::string sep =
"";
1621 ssAttrNames << sep << Name;
1625 AttrNamesStr = ssAttrNames.str();
1643 std::string UnitsClassStr(UnitsClass);
1644 std::string AttrNameStr(AttrName);
1645 std::string AttrValStr(AttrVal);
1665 const char*
getAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName)
1667 std::string UnitClassStr(UnitsClass);
1668 std::string AttrNameStr(AttrName);
1669 std::string AttrValStr(
"");
1696 void setAttribute(
const char* UnitsClass,
int UnitID,
const char* AttrName,
const char* AttrVal)
1698 std::string UnitClassStr(UnitsClass);
1699 std::string AttrNameStr(AttrName);
1700 std::string AttrValStr(AttrVal);
1724 std::string UnitClassStr(UnitsClass);
1725 std::string AttrNameStr(AttrName);
1752 const char* UnitsClass,
const char* UnitsIDs,
1753 const char* VarName,
int Precision)
1755 std::string BindingNameStr(BindingName);
1756 std::string UnitsClassStr(UnitsClass);
1757 std::string UnitsIDsStr(UnitsIDs);
1758 std::string VarNameStr(VarName);
1776 std::ostringstream ssPrec;
1777 ssPrec << Precision;
1778 std::string PrecStr(ssPrec.str());
1783 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsclass",
1785 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".unitsIDs",
1787 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".vars",
1789 ObsDesc.
setParameter(
"set."+BindingNameStr+UnitsClassStr+
".format",
Definition: SimulationBlob.hpp:53
const char * getSimulatorParamNames(const char *SimID)
Definition: Binding.hpp:996
const char * getSimulatorsIDs()
Definition: Binding.hpp:965
void setAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName, const std::string &AttrValue)
Definition: ObserverDescriptor.hpp:50
Definition: BindingAbstractOutErr.hpp:46
Definition: GeneratorDescriptor.hpp:54
void setModelGlobalParam(const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1327
static Binding * make()
Definition: Binding.hpp:248
static const char * getLastError()
Definition: Binding.hpp:289
Definition: MonitoringInstance.hpp:58
static char ** getExtraObserversPaths()
Definition: Binding.hpp:496
void setDefaultDeltaT(int DeltaT)
Definition: Binding.hpp:887
openfluid::core::DateTime getBeginDate() const
Definition: RunConfigurationDescriptor.hpp:81
static void addExtraObserversDirs(const std::string &Paths)
Definition: GeneratorDescriptor.hpp:54
Definition: Engine.hpp:75
void setPeriod(const char *BeginDate, const char *EndDate)
Definition: Binding.hpp:939
static void destroy(Binding *B)
Definition: Binding.hpp:262
static const char * getVersion()
Definition: Binding.hpp:275
static void resetExtraObserversDirs()
void eraseGlobalParameter(const openfluid::ware::WareParamKey_t &Key)
Definition: WareSetDescriptor.hpp:146
Definition: GeneratorDescriptor.hpp:54
openfluid::ware::WareID_t getID(ModelItemDescriptor *Item) const
std::map< WareParamKey_t, WareParamValue_t > WareParams_t
Definition: TypeDefs.hpp:128
const char * getObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1431
void setGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1210
static char ** getObserversPaths()
Definition: Binding.hpp:455
Definition: GeneratorDescriptor.hpp:51
const char * getGeneratorParamNames(const char *UnitsClass, const char *VarName)
Definition: Binding.hpp:1127
const char * getGeneratorParam(const char *UnitsClass, const char *VarName, const char *ParamName)
Definition: Binding.hpp:1168
static void setCurrentOutputDir(const char *Path)
Definition: Binding.hpp:523
static std::vector< std::string > getSimulatorsDirs()
void appendItem(T *Item)
Definition: WareSetDescriptor.hpp:156
static void addExtraObserversPaths(const char *Paths)
Definition: Binding.hpp:414
static Binding * openDataset(const char *Path)
Definition: Binding.hpp:538
void removeAttribute(const char *UnitsClass, const char *AttrName)
Definition: Binding.hpp:1722
SpatialUnitsByIDByClass_t & spatialUnits()
Definition: SpatialDomainDescriptor.hpp:101
Definition: CoupledModelDescriptor.hpp:52
SetDescription_t & items()
Definition: WareSetDescriptor.hpp:90
static Binding * openProject(const char *Path)
Definition: Binding.hpp:599
void loadFromDirectory(const std::string &DirPath)
Definition: ApplicationException.hpp:50
int getDeltaT() const
Definition: RunConfigurationDescriptor.hpp:101
unsigned int getUnitsCount() const
Definition: ModelInstance.hpp:65
Definition: SimulatorDescriptor.hpp:51
openfluid::fluidx::RunConfigurationDescriptor & runConfiguration()
Definition: FluidXDescriptor.hpp:194
unsigned short int runSimulation(int IsVerbose=false)
Definition: Binding.hpp:649
int findFirstItem(const openfluid::ware::WareID_t &ID) const
Definition: WareSetDescriptor.hpp:319
bool setFromISOString(const std::string &DateTimeStr)
Definition: MonitoringDescriptor.hpp:52
Class for easier binding with other programming languages.
Definition: Binding.hpp:149
static unsigned int getExtraObserversPathsCount()
Definition: Binding.hpp:482
Definition: ApplicationException.hpp:47
std::string getAttribute(const openfluid::core::UnitsClass_t &ClassName, const openfluid::core::UnitID_t &ID, const openfluid::core::AttributeName_t &AttrName) const
void setObserverParam(const char *ObsID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1469
static void buildMonitoringInstanceFromDescriptor(const openfluid::fluidx::MonitoringDescriptor &MonDesc, MonitoringInstance &MonInstance)
const char * getSimulationOutputDir()
Definition: Binding.hpp:858
std::string getAsString(std::string Format) const
std::set< std::string > getAttributesNames(const openfluid::core::UnitsClass_t &ClassName) const
unsigned int getUnitsClassesCount()
Definition: Binding.hpp:1548
unsigned int getUnitsIDsCount(const char *UnitsClass)
Definition: Binding.hpp:1592
std::set< int > getIDsOfClass(const openfluid::core::UnitsClass_t &ClassName) const
Definition: Listener.hpp:54
#define INIT_OPENFLUID_APPLICATION(ac, av)
Definition: Init.hpp:54
bool isClassNameExists(const openfluid::core::UnitsClass_t &ClassName) const
Definition: BindingVerboseMachineListener.hpp:50
void removeSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1101
bool isType(openfluid::ware::WareType MIType) const
virtual void printfOut(const char *fmt,...) const =0
const char * getObserversIDs()
Definition: Binding.hpp:1360
openfluid::ware::WareParams_t getGlobalParameters() const
Definition: WareSetDescriptor.hpp:136
void setDeltaT(const int DeltaT)
Definition: RunConfigurationDescriptor.hpp:106
const char * getPeriodEndDate()
Definition: Binding.hpp:920
Definition: FrameworkException.hpp:50
static unsigned int getObserversPathsCount()
Definition: Binding.hpp:441
const char * getModelGlobalParamNames()
Definition: Binding.hpp:1271
openfluid::ware::WareID_t getID(ObserverDescriptor *Item) const
static std::vector< std::string > getExtraSimulatorsDirs()
Definition: Environment.hpp:365
const char * getSimulatorParam(const char *SimID, const char *ParamName)
Definition: Binding.hpp:1039
const char * getModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1298
static char ** getExtraSimulatorsPaths()
Definition: Binding.hpp:386
void setBeginDate(const openfluid::core::DateTime BeginDate)
Definition: RunConfigurationDescriptor.hpp:86
static void init()
Definition: Binding.hpp:223
static void buildSimulationBlobFromDescriptors(const openfluid::fluidx::FluidXDescriptor &FluidXDesc, SimulationBlob &SimBlob)
void printSimulationInfo()
Definition: Binding.hpp:781
const char * getGeneratorsVarNames(const char *UnitsClass)
Definition: Binding.hpp:1239
static void resetExtraObserversPaths()
Definition: Binding.hpp:427
static void addExtraSimulatorsPaths(const char *Paths)
Definition: Binding.hpp:304
openfluid::core::UnitsClass_t getUnitsClass() const
GeneratorMethod getGeneratorMethod() const
void deleteAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName)
void setAttribute(const char *UnitsClass, int UnitID, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1696
#define STRING_TO_ALLOCATED_CARRAY(str, carray)
Definition: Binding.hpp:73
openfluid::core::VariableName_t getVariableName() const
void setEndDate(const openfluid::core::DateTime EndDate)
Definition: RunConfigurationDescriptor.hpp:96
void setParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
void setSimulatorParam(const char *SimID, const char *ParamName, const char *ParamVal)
Definition: Binding.hpp:1077
static unsigned int getSimulatorsPathsCount()
Definition: Binding.hpp:331
const char * getPeriodBeginDate()
Definition: Binding.hpp:902
int getDefaultDeltaT()
Definition: Binding.hpp:873
const char * getAttribute(const char *UnitsClass, int UnitID, const char *AttrName)
Definition: Binding.hpp:1665
static void buildModelInstanceFromDescriptor(const openfluid::fluidx::CoupledModelDescriptor &ModelDesc, ModelInstance &MInstance)
int * getUnitsIDs(const char *UnitsClass)
Definition: Binding.hpp:1562
static ExceptionContext computeContext(const std::string &AppName)
Definition: ApplicationException.hpp:76
openfluid::fluidx::SpatialDomainDescriptor & spatialDomain()
Definition: FluidXDescriptor.hpp:184
static std::vector< std::string > getExtraObserversDirs()
Definition: Environment.hpp:408
char ** getUnitsClasses()
Definition: Binding.hpp:1517
openfluid::fluidx::MonitoringDescriptor & monitoring()
Definition: FluidXDescriptor.hpp:214
const char * getObserverParamNames(const char *ObsID)
Definition: Binding.hpp:1388
Definition: GeneratorDescriptor.hpp:54
void setGlobalParameter(const openfluid::ware::WareParamKey_t &Key, const openfluid::ware::WareParamValue_t &Value)
Definition: WareSetDescriptor.hpp:110
openfluid::ware::WareParams_t & parameters()
const char * what() const
Definition: Exception.hpp:87
static void addExtraSimulatorsDirs(const std::string &Paths)
static unsigned int getExtraSimulatorsPathsCount()
Definition: Binding.hpp:372
void addAttribute(const openfluid::core::UnitsClass_t &ClassName, const std::string &AttrName, const std::string &DefaultValue, bool Check=true)
void removeModelGlobalParam(const char *ParamName)
Definition: Binding.hpp:1344
const char * getAttributesNames(const char *UnitsClass)
Definition: Binding.hpp:1612
static std::vector< std::string > getObserversDirs()
void createAttribute(const char *UnitsClass, const char *AttrName, const char *AttrVal)
Definition: Binding.hpp:1641
static void resetExtraSimulatorsPaths()
Definition: Binding.hpp:317
Definition: ModelItemDescriptor.hpp:51
static void resetExtraSimulatorsDirs()
Definition: IOListener.hpp:53
Definition: FluidXDescriptor.hpp:70
T & itemAt(unsigned int Index) const
Definition: WareSetDescriptor.hpp:198
Definition: Exception.hpp:52
void removeObserverParam(const char *ObsID, const char *ParamName)
Definition: Binding.hpp:1495
openfluid::core::DateTime getEndDate() const
Definition: RunConfigurationDescriptor.hpp:91
std::string getAsISOString() const
Definition: StringValue.hpp:88
void addVariablesExportAsCSV(const char *BindingName, const char *UnitsClass, const char *UnitsIDs, const char *VarName, int Precision)
Definition: Binding.hpp:1751
openfluid::fluidx::CoupledModelDescriptor & model()
Definition: FluidXDescriptor.hpp:174
Class for management of date and time information.
Definition: DateTime.hpp:116
static char ** getSimulatorsPaths()
Definition: Binding.hpp:345